即効テクニック

セル操作関連のテクニック

セルを特定する

(Excel 97/2000/2002/2003/2007)
セルを選択するには、選択したいセル(Rangeオブジェクト)のSelectメソッドを使います。 次のコードは、アクティブシートのセルA1を選択します。
Sub Sample1()
  Range("A1").Select
End Sub
選択したいセルを特定するには、このようにRangeプロパティかCellsプロパティを使うのが一般的です。 Rangeプロパティは、セルのアドレスを引数に指定し、Cellsプロパティは行位置と列位置を表す数値を指定します。 Rangeプロパティでは、次のように複数セルを指定することも可能です。
Sub Sample2()
  Range("A1:C1").Select
End Sub   
上記のコードは、セル範囲A1:C1を選択します。 引数内で使用した「:」は範囲を表す演算子です。 ほかにも、共通範囲を表す演算子である半角スペースや連続しない範囲を表すカンマ(,)などを使ってセルを特定することもできます。 次のコードは、セル範囲C3:C10とセル範囲B4:D4が交差するセルC4を選択します。
Sub Sample3()
  Range("C3:C10 B4:D4").Select
End Sub   
実は、セルを特定するRangeプロパティに、引数は2つ用意されています。 Range(範囲の開始セル,範囲の終端セル) それぞれの引数には、セルのアドレスを表す文字列か、セル(Rangeオブジェクト)を指定します。 次のコードは、セル範囲A1:C3を選択します。
Sub Sample4()
  Range("A1", "C3").Select
End Sub   
または、文字列ではなくRangeオブジェクトで指定すると、次のようになります。
Sub Sample5()
  Range(Range("A1"), Range("C3")).Select
End Sub   
この使い方は、For Nextステートメントで特定の範囲を操作するときに便利です。 次のコードは、セル範囲A1:D20を1行おきに塗りつぶします。
Sub Sample6()
  Dim i As Long
  For i = 1 To 20 Step 2
    Range(Cells(i, 1), Cells(i, 4)).Interior.ColorIndex = 15
  Next i
End Sub   
次のように工夫すると、選択したセル範囲を1行おきに塗りつぶすのも簡単です。
Sub Sample7()
  Dim i As Long, S As Long, E As Long
  S = Selection(1).Column
  E = Selection(Selection.Count).Column
  For i = Selection(1).Row To Selection(Selection.Count).Row Step 2
    Debug.Print i
    Range(Cells(i, S), Cells(i, E)).Interior.ColorIndex = 15
  Next i
End Sub