[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が選択される |
スポンサーリンク