【Excel VBA】セル番号を指定してセルを参照する…Rangeプロパティ

[Excel VBA]

「セルA1」「セルA3~E8」というように、セル番号を明記してセルを参照するには、Rangeプロパティを使用します。

スポンサーリンク

書式

Worksheetオブジェクト.Range(Cell1, [Cell2])

引数で指定したセルを参照するRangeオブジェクトを返します。読み取り専用のプロパティです。

Worksheetオブジェクトを省略した場合は、アクティブシートのセルが返されます。

引数

引数 指定 説明
Cell1 必須 セル、またはセル範囲を表す文字列を指定。セル番号や名前を指定できる。
[Cell2]も指定する場合は、Rangeオブジェクトも指定可。
Cell2 省略可 指定内容は[Cell1]と同様。
[Cell2]を指定した場合、[Cell1]を始点、[Cell2]を終点とするセル範囲が取得される。

使用例

セルやセル範囲の指定

引数にA1形式のセル番号や名前を指定します。連続する範囲を表す「:」や、複数の範囲を表す「,」を使って、さまざまなセルを参照できます。

単一セルの指定

Range("B2").Select
セルB2を選択する

セル範囲の指定

Range("B2:D4").Select
セルB2~D4を選択する
Range("B2", "D4").Select
セルB2~D4を選択する

メモ

「Range("始点:終点")」と「Range("始点","終点")」の使い分け
「Range("B2:D4")」と「Range("B2","D4")」はいずれもセルB2を始点、セルD4を終点とするセル範囲を表します。今回のように、始点と終点のセルが決まっている場合はどちらの記述も使えます。
始点と終点が流動的な場合は、引数にRangeオブジェクトを指定できる後者の構文が役に立ちます。例えば、始点が i 行 j 列のセル、終点がアクティブセルの場合、「Range(Cells(i, j), ActiveCell)」のように記述できます。

離れたセルの指定

Range("B2,B4,D2:D4").Select
セルB2とB4とD2~D4を選択する

注意

「Range("B2,D4")」と「Range("B2","D4")」の違いに注意!
「Range("B2,D4")」は「セルB2とセルD4」(離れた複数のセル)を表し、「Range("B2","D4")」は「セルB2~D4」(連続するセル範囲)を表します。違いに注意しましょう。

名前の指定

Range("集計行").Select
「集計行」という名前が付いたセル範囲を選択する

 

行や列の指定

始点の行番号と終点の行番号、または始点の列番号と終点の列番号を「:」で区切って指定します。

単一行の指定

Range("2:2").Select
行2を選択する

複数行の指定

Range("2:4").Select
行2~4を選択する

単一列の指定

Range("B:B").Select
列Bを選択する

複数列の指定

Range("B:D").Select
列B~Dを選択する

メモ

行や列を取得するその他のプロパティ
行を参照するにはRowsプロパティやEntireRowプロパティ、列を参照するにはColumnsプロパティやEntireColumnプロパティを使う方法もあります。

特定のワークシートのセルの指定

Rangeプロパティの前にワークシートを指定しない場合、アクティブシートのセルが取得されます。アクティブシート以外のセルを取得したい場合は、ワークシートを指定します。

特定のワークシートのセルの指定

Worksheets("Sheet3").Range("A1").Value = "売上表"
「Sheet3」という名前のワークシートのセルA1に「売上表」と入力する

関連知識 RangeオブジェクトのRangeプロパティ

RangeオブジェクトもRangeプロパティを持ちます。Rangeオブジェクトで指定したセルを基準として、相対的な位置にあるセルが返されます。

Rangeオブジェクト.Range(Cell1, [Cell2])

RangeオブジェクトのRangeプロパティ

Range("B2").Range("A1").Select
セルB2から始まる範囲の先頭のセルであるセルB2が選択される
Range("B2").Range("C2").Select
セルB2から始まる範囲の2行3列目のセルD3が選択される
スポンサーリンク

関連記事