• ベストアンサー

エクセルのVBAで行選択

エクセルVBAで、連続してない2行(たとえば10行目と13行目)を選択する場合 Sub test02() Dim x As Long, y As Long x = 10 y = 13 Range(x & ":" & x & "," & y & ":" & y).Select End Sub でできましたが、もっと簡単に書く方法はないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

union(rows(10),rows(13)).Select

mocodne
質問者

お礼

ありがとうございます。 歳のせいかUnionなんてコードをすっかり忘れていました。 Sub test03() Dim x As Long, y As Long x = 10 y = 13 Union(Rows(x), Rows(y)).Select End Sub で目的を達成出来ました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

Sub test01() Set Rng = Union(Range("12:12"), Range("15:15")) Rng.Select End Sub のようなのはどうだろう。 こう書けても、選択したのちに何をしたいのか書かないと、この書き方が適当かどうか言えないように思うが。 ・2行の書式設定 ・2行の値のクリア ・2行の各セルの値の処理 3番目の場合は、メリットがあるかな

mocodne
質問者

お礼

Union(Rows(x), Rows(y)).Select ですっきりしました。 ありがとうございます。

すると、全ての回答が全文表示されます。
  • mdmp2
  • ベストアンサー率55% (438/787)
回答No.2

十分簡単にできていると思います。 選択する行がその都度変わるのだと思いますので、No.1 さんの回答のunion(rows(10),rows(13)).Select の10と13 をx, y にすると良いと思います。(動作確認しておりません。) 選択する行を、マクロ実行中に指定するなら inputbox 関数を使ってx とy の値をマクロ実行中に入力するようにすると良いと思います。

mocodne
質問者

お礼

お察しの通り選択する行がその都度変わります。 そのため変数にしているのですが、今の書き方は書きにくいし見にくいです。 Union(Rows(x), Rows(y)).Select ですっきりしました。

すると、全ての回答が全文表示されます。

関連するQ&A