セルや範囲を指定する方法をこの記事でまとめていきます。
Cells
インデックスで単一のセルを指定 Cells(1,1)
1 2 3 |
Sub Test() Cells(1,1).Select End Sub |
1行1列目、つまり A1のセルを選択しています。
変数で単一のセルを指定 Cells(n,m)
1 2 3 4 5 6 7 |
Sub test() Dim n As Long Dim m As Long n = 2 m = 2 Cells(n, m).Select End Sub |
Cellsプロパティは変数を使って指定することができます。
nとmを宣言し、それぞれ2を代入することで、2行2列のセル(B2)を選択しています。
シート全体を指定 Cells.Select
1 2 3 |
Sub Test() Cells.Select End Sub |
全てのセルを選択することもできます。
Range
Rangeで単一のセルを指定 Range(” ? “)
1 2 3 |
Sub Test() Range("A1").Select End Sub |
A1のセルを指定しています。
Rangeで離れた位置にある単一のセルを指定 Range(“?”,”?”)
1 2 3 |
Sub Test() Range("A1,D4").Select End Sub |
セルA1とセルD4を同時に指定します。
Rangeで範囲を指定 Range(” ? : ? “)
1 2 3 |
Sub Test() Range("A1:C3").Select End Sub |
1 2 3 |
Sub Test() Range("A1","C3").Select End Sub |
A1からC3までの範囲を指定しています。
RangeとCellsを組み合わせる Range(Cells(?,?),Cells(?,?))
1 2 3 |
Sub Test() Range(Cells(1,1),Cells(3,3)).Select End Sub |
Cellsプロパティと組み合わせて範囲を指定することもできます。
RangeとCellsと変数で指定 Range(Cells(x,y), Cells(n,m))
1 2 3 4 5 6 7 |
Sub Test() Dim n As Long Dim m As Long n = 3 m = 5 Range(Cells(n, 2), Cells(m, 2)).Select End Sub |
3行2列目〜5行2列目までを選択しています。
実務では何行目・何列目までセルに値が入力されているかわからないことが多いため、変数を使った指定をすることができれば役に立ちます。
行・列全体を指定する
Rowsプロパティ Rows(?)
Rowsプロパティで1行目を指定
1 2 3 |
Sub Test() Rows(1).Select End Sub |
columnsプロパティ Columns(?)
Columnsプロパティで1行目を指定
1 2 3 |
Sub Test() Columns(1).Select End Sub |
rangeで行全体を指定
1行目全体を指定
1 2 3 |
Sub Test() Range("1:1") End Sub |
Rangeで列全体を指定
1列目全体を指定
1 2 3 |
Sub Test() Range("A:A") End Sub |
Entirerowプロパティで行全体を指定
1 2 3 4 5 6 |
Sub Test() Range("B3").EntireRow.Select 'Cellsを使う場合 Cells(2,3).EntireColumn.Select End Sub |
EntireColumnプロパティで列全体を指定
1 2 3 4 5 6 |
Sub Test() Range("B3").EntireColumn.Select 'Cellsを使う場合 Cells(3,2).EntireColumn.Select End Sub |
Findメソッドで検索した範囲を指定
Findで検索
大量に存在するデータの中で、特定の値や文字を含むセルや行・列だけを選択したい時があります。
その場合はFindメソッドを使います。
1 2 3 4 5 |
Sub Test() Dim A as Range Set A = Range("B:B").Find("佐藤") A.Select End Sub |
変数Aを宣言し、B列の中で「佐藤」と入力されているセルを検索します。
B列の中に「佐藤」と入力されているセルがあれば、Aに代入されます。
「佐藤」を含むセルを選択しています。
この方法では、「佐藤」が複数含まれていても、最初のセルしか選択されません。
「佐藤」が複数含まれているセルや行・列すべてに操作を行いたい場合は、繰り返し処理など別の方法が必要になります。
特定の列の何行目に指定した文字があるのかを調べる方法はこちらの記事にもまとめています。
まとめ
マクロを組むにはどのセルで操作を行うか、範囲を指定することが必須です。
範囲指定の方法は複数あるので、状況に応じて使い分けられるように繰り返し確認して忘れないようにしておきましょう。
コメント