今回はセル範囲を指定するCellsプロパティの使い方を紹介します。Rangeプロパティとはセルの指定方法が違い、行番号と列番号の数字で指定します。実際にコードを作って動かしてみましょう。
エクセルVBA-セル範囲の指定(Cells)
目次
セルの選択
単一セルを選択する
サンプルコード
Sub CellsTest1()
Cells(3, 4).Select
End Sub
Cells(3, 4)はセルD3のこと。Cells(行番号,列番号)で指定するのが基本です。実行すると下の図のような選択になります。
連続する複数セルを選択する
Cellsプロパティは単一セルかシート全体セルしか指定ができないので、Cells単体では複数セルの選択はできません。ここではRangeプロパティとの併用で指定する方法を紹介します。
サンプルコード
Sub CellsTest2()
Range(Cells(1, 1), Cells(3, 4)).Select
End Sub
Range(Cells(1, 1), Cells(3, 4))はセルA1からセルD3のこと。実行すると下の図のような選択になります。
連続しない複数セル選択
こちらもCellsだけではできません。離れた複数セルを選択する場合は、Unionというメソッドを使います。イメージとしてはキーボードのCtrlを押しながらクリックしてセルを選択する操作に近いです。
サンプルコード
Sub CellsTest3()
Union(Cells(1, 1), Cells(3, 4)).Select
End Sub
Union(Cells(1, 1), Cells(3, 4))はセルA1とD3のこと。実行すると下の図のような選択になります。
列全体の選択
1列全体の選択
列全体を選択する場合は、EntireColumnプロパティを使います。EntireColumnプロパティは指定したセルがある列全体を指定します。
サンプルコード
Sub CellsTest4()
Cells(1, 1).EntireColumn.Select
End Sub
Cells(1, 1).EntireColumnは列A全体のこと。実行すると下の図のような選択になります。
連続する複数列全体の選択
連続する複数セル選択で使用したRangeと、列全体の選択で使用したEntireColumnの合わせ技になります。
サンプルコード
Sub CellsTest5()
Range(Cells(1, 1), Cells(1, 3)).EntireColumn.Select
End Sub
Range(Cells(1, 1), Cells(1, 3)).EntireColumnは列Aから列Cまで全体のこと。実行すると下の図のような選択になります。
連続しない複数列全体の選択
今度は連続しない複数セル選択で使用したUnionと、列全体の選択で使用したEntireColumnの合わせ技になります。
サンプルコード
Sub CellsTest6()
Union(Cells(1, 1), Cells(1, 3)).EntireColumn.Select
End Sub
Union(Cells(1, 1), Cells(1, 3)).EntireColumnは列Aと列Cの全体のこと。実行すると下の図のような選択になります。
行全体の選択
1行全体の選択
行全体を選択する場合は、EntireRowプロパティを使います。EntireRowプロパティは指定したセルがある行全体を指定します。
サンプルコード
Sub CellsTest7()
Cells(1, 1).EntireRow.Select
End Sub
Cells(1, 1).EntireRowは行1全体のこと。実行すると下の図のような選択になります。
連続する複数行全体の選択
連続する複数セル選択で使用したRangeと、行全体の選択で使用したEntireRowの合わせ技になります。
サンプルコード
Sub CellsTest8()
Range(Cells(1, 1), Cells(5, 1)).EntireRow.Select
End Sub
Range(Cells(1, 1), Cells(5, 1)).EntireRowは行1から行5まで全体のこと。実行すると下の図のような選択になります。
連続しない複数行全体の選択
連続しない複数セル選択で使用したUnionと、行全体の選択で使用したEntireRowの合わせ技になります。
サンプルコード
Sub CellsTest9()
Union(Cells(1, 1), Cells(3, 1), Cells(5, 1)).EntireRow.Select
End Sub
Union(Cells(1, 1), Cells(3, 1), Cells(5, 1)).EntireRowは行1と行3と行5の全体のこと。実行すると下の図のような選択になります。
シート全体の選択
サンプルコード
Sub CellsTest10()
Cells.Select
End Sub
Cellsは選択しているシート全体のこと。実行すると下の図のような選択になります。
変数を使ったセル指定
Cellsを使う一番のメリットは変数が使ってセルの指定ができる点です。ここでは簡単な対話型プログラムを作ってセルの選択をしてみましょう。
サンプルコード
Sub CellsTest11()
Dim R As Integer '選択したいセルの行番号格納
Dim C As Integer '選択したいセルの列番号格納
R = InputBox("選択したいセルの行番号を入力してください。")
C = InputBox("選択したいセルの列番号を入力してください。")
Cells(R, C).Select
End Sub
実行すると入力を求めてきます。これがInputBoxの動作でそこで入力した値をRという変数と、Cという変数に格納します。ここでの詳細は省きますが、変数とは値を格納する箱のようなものだと思ってください。箱に入れている値を好きな時に使うことができます。今回は行番号に【5】、列番号に【4】を入力しましたので、セルD5が選択されました。何度でも実行できるので動かして変化を実感してください。
まとめ
Cellsでのセル指定方法について説明しました。状況によってRangeとの使い分けが必要となりますが、変数を使用してセルを指定するのであればCellsを使うことになり、固定されたセルを指定する時はRangeを使います。実際にプログラムを作る上で変数は絶対に使用しますので、Cellsも重要な要素となります。しっかりマスターしてください。
新着記事