いつもお世話になります。

変数で
set a=range("a1:B10")
という使いかたしますよね。そこで質問なんですが、複数個の範囲を変数に放り込みたい時は如何すればいいのでしょうか?


set a=range("a1:B10")、range("g7:h13")、・・・
みたいな感じです。

宜しくお願いします。

A 回答 (3件)

Dim a As Excel.Range



set a = Range("a1:B10,g7:h13")

で、OKですよ。
    • good
    • 0
この回答へのお礼

回答有難うございます。

こげに簡単なもんで良かったとは!!目からうろこです。

有難うございました。

お礼日時:2003/11/03 20:08

Sheet1のA1:C3に値


11213
212
3
を入れて下記を標準モジュールに作り実行して結果は正しかったので、ご参考にしてください。
コメントの「’」を外して、MSGBOXの1つを残して実行
して見てください。
Sub test01()
' Dim a(10) As Range
Dim a As Range
Worksheets("sheet1").Activate
b = Array(Range("a1:a3"), Range("b1:b2"), Range("c1:c2"))
For i = 0 To 2
Set a = b(i)
'MsgBox WorksheetFunction.Sum(a)
' MsgBox a.Cells(1, 1)
MsgBox WorksheetFunction.Sum(b(i))
Next
End Sub
私は初級的な使い手なので、オブジェクト変数にRangeをセットするのはほとんど必要を感じたことはなく、使いこなせていませんが。
    • good
    • 0
この回答へのお礼

imogasiさん、度々有難うございます。

Array関数を使ったやり方は、応用が利きそうなので、覚えておきます。

いつも解かり易いコードを作って頂き、大変参考になります。

有難うございました。また宜しくお願いします。m(_ _)m

お礼日時:2003/11/03 20:06

' 必要分だけ変数を配列でもってそこに代入していきます。



Dim a(1)

Set a(0)=Range("a1:B10")
Set a(1)=Range("g7:h13")

' って感じでしょうか?
    • good
    • 0
この回答へのお礼

回答有難うございます。

set a = Range("a1:B10,g7:h13")でいけるみたいです。

有難うございました。

お礼日時:2003/11/03 20:01

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


人気Q&Aランキング