複数のセル範囲を一つの Range オブジェクトに代入できる
Dim range1 As Range
Set range1 = Range("C2:D3,E4:F5,G6:H7")
Range.Count
を使う
''--- Range 内のセル数
Debug.Print "セル数: " & range1.Count
'' セル数: 12
Range.Address()
を使う
''--- Range のセル番地
Debug.Print "セル番地($C$R): " & range1.Address()
Debug.Print "セル番地( C$R): " & range1.Address(True, False)
Debug.Print "セル番地($C R): " & range1.Address(False)
Debug.Print "セル番地( C R): " & range1.Address(False, False)
'' セル番地($C$R): $C$2:$D$3,$E$4:$F$5,$G$6:$H$7
'' セル番地( C$R): C$2:D$3,E$4:F$5,G$6:H$7
'' セル番地($C R): $C2:$D3,$E4:$F5,$G6:$H7
'' セル番地( C R): C2:D3,E4:F5,G6:H7
Range.Row
, Range.Column
を使う
''--- Range の最初の行番号
Debug.Print "先頭行: " & range1.Row
''--- Range の最初の列番号
Debug.Print "先頭列: " & range1.Column
'' 先頭行: 2
'' 先頭列: 3
Next
で下→右の順に移動していく
''--- Range 内の各セルの For Each
Dim k As Range
For Each k In range1
Debug.Print k.Address
Next
'' $C$2
'' $D$2
'' $C$3
'' $D$3
'' $E$4
'' $F$4
'' $E$5
'' $F$5
'' $G$6
'' $H$6
'' $G$7
'' $H$7
当たり前だと思っていることでもいざまとめようとすると分かっていないことに気づくよね