Step 3_1 セルの選択

VBAではセルを「Rangeオブジェクト」と表現します。
セルの場合は、Worksheet や Workbook と違って、コレクションというのがあ りません。複数のセルを扱う場合も、Rangeオブジェクトとして扱われます。
VBAを使えばユーザー操作に比べるとはるかに手際よくセルを操作することが できます。

■セルの選択

★セル番地を指定してセルを選択するには

  • 次の例ではセルA3を選択します
    Range("A3").Select

★連続するセル範囲を選択するには

  • 次の例ではセル[A1:C5]を範囲選択します
    Range("A1:C5").Select

★離れたセル範囲を選択するには

  • 次の例ではセル[A1:A5]と「C1:C5]の離れたセルを範囲選択します
    Range("A1:A5,C1:C5").Select

★名前を付けたセル範囲を選択するには

  • 次の例では「売上集計」という名前が定義してあります。
    Range("売上集計").Select

★行/列全体を選択するには

  • 引数を「"1:1"」「"A:A"」のように指定すると、行/列を全選択できます。
    次の例ではB列を選択しています。
    Range("B:B").Select

■Cellsプロパティを使ったセルの選択

★Cellsプロパティを使ってセルを選択するには

  • 次の例ではどちらもセルB5を選択しますが、Selectメソッドの代わりにActivateメソッドを使用しています。 Cellsプロパティの場合はRangeプロパティとは行と列の表記が逆で、「Cells(行,列)」となります。
    Cells(5, 2).Activate
    Cells(5, "B").Activate

★Cellsプロパティを使って全セルを選択するには

  • 引数なしで使用します。
  • Cellsプロパティが参照できるのは「1つのセル」か「全セル」だけです。名前を使ってセルを参照することもできません
    Cells.Select

★連続番号入力

  • CellsプロパティはRangeプロパティと組み合わせないとセル範囲を参照できないという デメリットはありますが、引数に数値変数を使用できるというメリットがあります。
  • 次の例ではiという数値変数を使用しています。
     Dim i As Integer
     
     For i = 1 To 10
        Cells(i, i) = i
     Next i
    

★非アクティブシートからセルを選択するには

  • Rangeオブジェクトに対してSelectメソッドやActiveメソッドを使用する時には、そのセルを含むシートがアクティブになっていなければなりません。
  • 次の例は「売上集計」シートが非アクティブ状態で実行する場合です。
    Worksheets("売上集計").Activate
    Range("B5:J12").Select