|
>ループはこんなのでいけると思います。
>
> Dim i As Long
> For i = UCase(Asc("l")) To UCase(Asc("q")) ' 小さい方を先に書く
> Totals (Chr(i))
>
AAとかになると
このループ問題があるので
こっちに修正します
列を番号で考えなくていいので楽にかけると思います。
Private Sub CommandButton1_Click()
Dim i As Long
' For i = Range("l1").Column To Range("q1").Column
For i = StrToColNum("l") To StrToColNum("q")
Totals (ColNumToStr(i))
' MsgBox ColNumToStr(i)
Next
End Sub
下の関数を定義しておくと
列の文字だけほしいときに便利です。
Public Function ColNumToStr(ByVal Value As Long) As String
' 数字を入れると 列の文字を返す
' 1 なら A が返ってきます
ColNumToStr = Replace(Cells(1, Value).Address(0, 0), "1", "")
End Function
Public Function StrToColNum(ByVal Value As String) As Long
' aとかbとかいれると 列数を返す。
' a なら 1 が返ってきます
StrToColNum = Range(Value & 1).Column
End Function
|
|