Skip to content

Instantly share code, notes, and snippets.

@ytez
Last active March 11, 2022 02:48
Show Gist options
  • Save ytez/0f32ce6a5553c91d7049a15cd2422f0a to your computer and use it in GitHub Desktop.
Save ytez/0f32ce6a5553c91d7049a15cd2422f0a to your computer and use it in GitHub Desktop.
[VBA] Cells, Range 使い方

[VBA] Cells, Range 使い方

Range の代入

複数のセル範囲を一つの Range オブジェクトに代入できる

Dim range1 As Range
Set range1 = Range("C2:D3,E4:F5,G6:H7")

Range 内のセル個数

Range.Count を使う

''--- Range 内のセル数
Debug.Print "セル数: " & range1.Count

'' セル数: 12

Range のセル番地

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 の先頭の行番号・列番号

Range.Row, Range.Column を使う

''--- Range の最初の行番号
Debug.Print "先頭行: " & range1.Row

''--- Range の最初の列番号
Debug.Print "先頭列: " & range1.Column

'' 先頭行: 2
'' 先頭列: 3

Range 内の各セルの For Each

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

備考

当たり前だと思っていることでもいざまとめようとすると分かっていないことに気づくよね

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment