VBAのプログラムを書く上で、操作をしたい対象を指定できるかはとても重要です。
今回は、Excelのオブジェクトの指定の仕方を解説したいと思います。
セルの選択の仕方
セルの選択の仕方は下記方法があります。
- Rangeプロパティ
- Cellsプロパティ VBA逆引き編で解説したページを見る
単一セルの選択方法
1つのセルを選択する方法です。
1つのセルの塗りつぶしをする、1つのセルの値を取得する等の際使用します。
例文では【C5】のセルを指定しています。

Rangeプロパティの場合
- 構文:Range(“セル番号”).Select
- 例文:Range(“C5”).Select
Cellsプロパティの場合
- 構文:Cells(行,列).Select
- 例文:Cells(5,3).Select
複数セルの選択方法
複数のセルを範囲選択した状態です。指定範囲の値を別の場所に貼り付けたい等の際使用します。
例文では【A1~C4】のセル範囲を指定しています。

Rangeプロパティの場合
- 例文:Range(“A1:C4”).Select
Cellsプロパティの場合
- 例文:Range(Cells(1,1),Cells(4,3)).Select
離れたセルの選択方法
離れたセルを指定する方法です。
範囲指定ではなく、Ctrlキーで何カ所かセルを指定している状態です。
Cellsの時はUnionメソッドを使う必要あります。
例文では【A1】【B2】【C3】のセルを指定しています。

Rangeプロパティの場合
- 例文:Range(“A1,B2,C3”).Select
Cellsプロパティの場合
- 例文:Union(Cells(1,1),Cells(2,2),Cells(3,3)).Select
行、列の選択の仕方
行の選択の仕方
行番号とはExcelの左端に表示されている1,2,3,4…と続く数字の事です。
横並びにセルを一括で指定したい時使用します。
行番号の指定にはRowsを使用します。
行番号で指定すると、指定行のA列~XFD列までの16,384 列分が選択状態になります。余談ですが、Ctrlキー の操作で最終列まで飛びます。
例文では5行目、3~5行目の選択状態を紹介しています。


一行選択の仕方
- 構文:Rows(行番号).Select
- 例文:Rows(5).Select
複数行の選択の仕方
- 構文:Rows(“行番号①:行番号②”).Select
- 例文:Rows(“3:5”).Select
列の選択の仕方
列番号とはExcelの上部に表示されているA,B,C,D…と続くアルファベットの事です。
縦並びにセルを一括で指定したい時に使用します。
列番号の指定はColumnsを指定します。

列番号で指定すると、指定列の1行目~最終行までが選択状態になります。Excelの最終行は1,048,576行です。余談ですが、Ctrlキー の操作で最終行まで飛びます。

一列選択の仕方
- 構文①:Columns(列番号).Select
- 構文②:Columns(“列記号”).Select
- 例文①:Columns(5).Select
複数列の選択の仕方
- 構文:Columns(“列記号①:列記号②”)
- 例文:Columns(“A:D”)
シート全体の選択の仕方
下記の通りの記述でシート全体を選択状態になります。
Cells.Select
ワークブック、ワークシートの指定の仕方
ブックやシートはインデックス番号での指定も可能です。
ブックのインデックス番号は開いたのが早い順に1~
シートはブック内の左側のタブの順に1~です。
ワークブックの指定
- 構文 :Workbooks(“ワークブック名”)
- 例文①:Workbooks(“VBA講座.xlsx”)
- 例文②:Workbooks(1)
※一番最初に開いたブック
ワークシートの指定
- 構文 :Worksheets(“ワークシート名”)
- 例文①:Worksheets(“VBAをはじめてみよう“)
- 例文②:Worksheets(2)
※左から2番目のシート
オブジェクトの階層について
プログラム内で、1つのブック内の1枚のシートで完結するならば
「A3のセルの色を変えて!」という指示で伝わりますが、複数のシート、又はブック間で処理を行うプログラムを作成する際は「Aのブックの1番左のシートのA3のセルの色の値を参照して!」と
きちんと頭から指定してあげなければなりません。
その際下記の階層の大きい順番に指定するきまりがあります。

Application(Excel) > ブック > シート > セル
最上位はExcelでApplicationですが、こちらは省略可能です。
ブックからの指定が必要となりますが、ブック名とシート名は省略した場合は
アクティブブック、アクティブシートを指定した事になります。
例文① 「Book1」というブック内「Sheet1」というシートのセル「A1」の値を取得する
Workbooks(“Book1.xlsx”).Worksheets(“Sheet1”). Range(“A1”).Value
例文② アクティブシートのセル「A1」の値を取得する
Range(“A1”).Value
今回はオブジェクトの指定の仕方という事で以下紹介させていただきました
- セルの選択
- 行、列の選択
- ワークブック、ワークシートの選択
次回はよく使う「Withステートメント」についてご紹介予定です。
最後まで読んでいただきありがとうございました

