好きなおでんの具材ドラフト会議しましょう

Rows(\"10:20\").select という記述が可能ですが、この10と20を変数ro1とro2で指定したいのですが、Rows( ro1 & ":" & ro2).select ではエラーになってしまいます。
どのようにすれば良いでしょうか?

A 回答 (3件)

> エラーになってしまいます。



エラーの”内容”を書かないと。。

> 実際には、Activeシートでなく別シートの行を選択したかったので、

Select メソッドは、ActiveSheet 以外のモノに対して実行すると失敗します。
つまり、「Activeシートでなく別シートの行」は Select できません。
これは VBA の仕様です。

  Sheet1.Activate
  Rows(ro1 & ":" & ro2).Select

のように Select する直前に、Sheet1 を Active にしてやれば良いでしょう。

ActiveSheet を切り替えたくないのであれば、コードを最適化します。
例えば、行の削除なら

  Sheet1.Rows(ro1 & ":" & ro2).Delete

のように シートを Active にしたり、行を Select する必要はありません。
    • good
    • 6

エラーになった場合、どのタイミングでどのようなエラーになったかを書いていただかないと回答が難しいです。

少なくとも以下のマクロでは10:20行目が選択されましたが…

Sub Macro3()
Dim ro1, ro2 As Long
 ro1 = 10
 ro2 = 20
 Rows(ro1 & ":" & ro2).Select
End Sub
    • good
    • 4
この回答へのお礼

ありがとうございます。
実際には、Activeシートでなく別シートの行を選択したかったので、
Sheet1.Rows(ro1 & ":" & ro2) とやりましたが、これがいけなかったのでしょうか?

お礼日時:2007/09/10 16:39

\マークの意味がよくわかりませんが、おそらく10行目から20行目までを範囲指定したい、と言う意味かとお見受けしました。

お答えします。
これで大丈夫です。

Ro1 = 10
Ro2 = 20
ActiveSheet.Rows(Ro1 & ":" & Ro2).Select

もしエラーが出るようなら、どのようなエラーか教えて下さい。
私はこれで大丈夫でした。
    • good
    • 0
この回答へのお礼

ありがとうございます。¥マークは、投稿したら自動的に付いてしまいました。
実際には、Activeシートでなく別シートの行を選択したかったので、
Sheet1.Rows(ro1 & ":" & ro2) とやりましたが、これがいけなかったのでしょうか?

お礼日時:2007/09/10 16:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報