ExcelのVBAの書き方について相談です。複数の非連続なセルを選択したい時、今はRange(\u0026quot;C16,C47,E22,E53,F22,F53,G22,G53,H22,H53\u0026quot;)のような書き方をしているのですが、Union(Range(\u0026quot;C16\u0026quot;),Range(\u0026quot;C47\u0026quot;), _ Range(\u0026quot;E22\u0026quot;),Range(\u0026quot;E53\u0026quot;), _ Range(\u0026quot;F22\u0026quot;),Range(\u0026quot;F53\u0026quot;), _ Range(\u0026quot;G22\u0026quot;),Range(\u0026quot;G53\u0026quot;), _ Range(\u0026quot;H22\u0026quot;),Range(\u0026quot;H53\u0026quot;))こういう書き方もあると知りました。どちらの方が良いとかあるのでしょうか?一応255を超える予定はありません。個人的にはRangeの方が書きやすくていいのですが、常識とかよくあるルールとか(ワークシートの変数がwsみたいな)があれば教えていただきたいです。

Excel

1件の回答

回答を書く

1186287

2026-04-14 21:45

+ フォロー

Union の方が便利ですね。なぜなら、ループ処理での拡大が容易だからです。

ご提示の例でいうと、下記のような書き方が可能です。敢えて構造を意識すると、Constでループの始点と終点を指定することで、拡張性が高まります。

Const R1 = 22
Const R2 = 53
Const C1 = 5
Const C2 = 8
Dim rng As Range, c As Long

Set rng = Union(Range(\u0026quot;C16\u0026quot;),Range(\u0026quot;C47\u0026quot;))

For c = C1 to C2
Set rng = Union(rng, Cells(R1,c), Cells(R2, c))
Next c

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有