Excel VBAでRangeをまとめる

9月 2nd, 2012

あるセルに「A1,A2,B1,B2」と入力し、VBAでこれらのアドレスを全て選択するメソッド作りたくて、下記コードをVBAで作成。

input_val =Cells(x,y).value
Range(input_val).select

おお、できたできた!!!

調子こいて、うん十件以上のアドレスをセットして・・・_| ̄|○

VBAが内部で落ちてます。どーしてだろう。

どうやら、Rangeに渡すパラメータ数が多いようで。

少なくするには、Unionメソッドを使うと、RangeオブジェクトとRangeオブジェクトを
1つのRangeオブジェクトにまとめられるらしい。
おお、これだよこれ。欲しかったのは。

早速、浮かんだコードをコーディング。

addr = split(input_val ,”,”)
set allRange = Range(addr(0))
for i = 1 To ubound(addr)
set newRange = Range(addr(i))
allRange = union(allRange , newRange )
next
allRange.select

これでいけるはず!

Leave a Reply