セルの指定方法にはRangeプロパティを使用する方法とCellsプロパティを使用する方法とがあります。
RangeプロパティとCellsプロパティはいずれも指定したセル(Range オブジェクト)を返します。
Rangeプロパティを使用する方法では、"A1"、"B2"などの形式でセルを指定し、
Cellsプロパティを使用する方法では、行番号と列番号によりセルを指定します。
以下の例では、Rangeプロパティを使用しValueプロパティに値をセットしています。
Range("A1").Value="EXCEL VBA"
以下の例では、Cellsプロパティを使用しValueプロパティに値をセットしています。
Cells(1,1).Value="EXCEL VBA"
上記の例では、いずれもアクティブなシートのセル"A1"に"EXCEL VBA"という文字列がセットされます。 ここにアクティブなシートとは、以下のような状態にあるシートを指します。
アクティブでないシートのセルに同じようにデータをセットするには、まず 目的のシートをワークシートプロパティにより指定し、Activateメソッドにより シートをアクティブな状態にします。
Worksheets("シート名").Activate
その後、同様に目的のシートをワークシートプロパティにより指定しRangeプロパティまたはCellsプロパティで セルを指定してデータをセットします。
以下の例では、Worksheetプロパティにより"Sheet2"を指定してセルA1にデータをセットしています。
Worksheets("Sheet2").Activate
Worksheets("Sheet2").Range("A1").Value="EXCEL VBA"
Worksheets("Sheet2").Activate
Worksheets("Sheet2").Cells(1,1).Value="EXCEL VBA"
セルには、Valueプロパティの他にもさまざまなプロパティが用意されています。 以下の例では、セルにデータをセット後、セルの高さ(RowHeightプロパティ)と 幅(ColumnWidthプロパティに)に値をセットすることにより変えています。
Worksheets("Sheet2").Activate
Worksheets("Sheet2").Range("A1").Value="EXCEL VBA"
Worksheets("Sheet2").Range("A1").RowHeight=20
Worksheets("Sheet2").Range("A1").ColumnWidth=20
Worksheets("Sheet2").Activate
Worksheets("Sheet2").Cells(1,1).Value="EXCEL VBA"
Worksheets("Sheet2").Cells(1,1).RowHeight=20
Worksheets("Sheet2").Cells(1,1).ColumnWidth=20
上記の例の様に同じプロパティに対して繰り返しプロパティをセットする場合 Withステートメントを使用することができます。 まず、Worksheets("Sheet2")が4回連続で使用されているので以下の様に With~End Withで処理をくくります。
With Worksheets("Sheet6")
.Activate
.Range("A1").Value = "EXCEL VBA"
.Range("A1").RowHeight = 20
.Range("A1").ColumnWidth = 20
End With
次に.Range("A1")が3回連続で使用されているのでこれも With~End Withで処理をくくります。
With Worksheets("Sheet6")
.Activate
With .Range("A1")
.Value = "EXCEL VBA"
.RowHeight = 20
.ColumnWidth = 20
End With
End With
最後にセルの指定に関してですが、VBAでは変数によりセル指定する機会が 多いのでCellsプロパティによる指定方法をマスターすることをお勧めします。