◆変数を使用してセルを選択・参照する方法
VBA でセルを選択するには通常、Range または Cells のどちらかを使います。
どちらか好み(?)の方法を使えば良いわけです。
Range はどこのセルを参照しているのか感覚的にピンと来ます。
Cells は 行・列 をループで廻す場合に便利です。
@ Range("A1") スタイルの場合
For i = 1 To 10
Range("A" & Format(i)).Select
Next
i を Format を使って文字に変換します。
「&」で文字の結合を行って、
"A" + "1" = "A1" にしています。
A Cells(row,column) スタイルの場合
この場合は、row と column に変数を使うだけです。
For xRow = 1 To 10
For xColumn = 2 To 5
Cells(xRow, xColumn).Select
Next
Next
B 列番号からアルファベットへ・アルファベットから列番号への変換
"A","BC"の列番号は?
列番号が 45 のアルファベットの表記は?
@ A のどちらかを使ってセルを選択するにしても、上記を考えるケースは
出てきますよね。
手で数えるのでは大変です。
aa = Columns("BC").Column
とすることで Column番号 55 を得ることが出来ます。
aa = Columns(45).Column
とすれば $AS:$AS の列番号が得られます。
$ が邪魔な時は
aa = Columns(45).Address(RowAbsolute:=False, ColumnAbsolute:=False)
とすることで、結果は AS:AS になります。
AS だけにするには、Mid 関数等を使うしかないようです。
もっと良い方法をご存知の方は是非メールで教えてください。
C 選択されたセルを順番に参照する方法
あらかじめセルを選択しておいて、順番に参照する方法もあります。
Dim LoopArea As Range
Set LoopArea = Selection
For i = 1 To LoopArea.Count
LoopArea.Cells(i).Value = i
Next
この方法は飛び飛びにセルを選択した場合にはうまく行きません。