「excel vba for a to z」
という検索キーワードに気付きました。
Excel VBAのFor~Next文で「aからzまで」という条件を指定するには、どうすればいいのか探していらしたのでしょう。
もしかしたら
Dim i As String
For i = "a" To "z"
といったコードを試したのかもしれませんが、For~Next文のカウンター変数に文字列型は指定できませんから、これでは「型が一致しません。」というコンパイルエラーが出てしまいます。
直値を使ったaからzまでのFor~Nextループ
具体的に何をしたかったのかは不明ですけれど、以下のSubプロシージャが参考になるでしょう。Dim i As Long
For i = 97 To 122
Debug.Print i; vbTab; Chr(i)
Next i
End Sub
実行するとVBEのイミディエイトウィンドウに、カウンター変数iの値と、Chr関数で変換されたアルファベットが出力されます。
アルファベット「a」のASCIIコード「97」から、「z」の「122」までという条件で、
For i = 97 To 122
「aからzまで」というFor~Nextループになります。
小文字の「aからzまで」ではなく大文字の「AからZまで」というFor~Nextループにしたければ、
For i = 97 To 122
の条件を
For i = 65 To 90
にしてください。
Asc関数を使ったaからzまでのFor~Nextループ
上述のFor i = 97 To 122
の意味がわかったら、以下のようにVBAのAsc関数を使ったFor~Nextループも確認しましょう。
Dim i As Long
For i = Asc("a") To Asc("z")
Debug.Print i; vbTab; Chr(i)
Next i
End Sub
結果は先のSubプロシージャと同じです。
こちらを「AからZまで」というFor~Nextループにしたければ、
For i = Asc("a") To Asc("z")
の部分を
For i = Asc("A") To Asc("Z")
とするだけです。
Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » aからzまでFor~Nextループ-Chr関数・Asc関数