即効テクニック |
セルを選択するには、選択したいセル(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