連番を振るのは数字が多いですが、まれにアルファベットでa~zまでで採番したいケースがあります。
単純にFor~NextでLoopすればよいのですが、Asc関数をうまく使う必要があります。
a~zで採番するサンプルコード
使用したい文字(小文字なのか大文字なのか、半角文字なのか全角文字なのか)でコードをコピペしてください。
'■a~zまでを自動採番するプロシージャ Public Sub sample() Dim i As Long '■半角小文字の場合 For i = Asc("A") To Asc("Z") Debug.Print Chr(i) Next i '■半角大文字の場合 For i = Asc("A") To Asc("Z") Debug.Print Chr(i) Next i '■全角小文字の場合 For i = Asc("a") To Asc("z") Debug.Print Chr(i) Next i '■全角大文字の場合 For i = Asc("A") To Asc("Z") Debug.Print Chr(i) Next i End Sub
その他
実際にはa~zをセルに書き込む場合がほとんどかと思います。
下記のようなパーツを作成していますのでお使いください。
'■指定回数のアルファベットの連番を作成するパーツ Public Sub call_AtoZ(rng As Range, flg As Long) Dim i As Long Dim chk As Long: chk = 1 Dim sRow As Long: sRow = rng.Row For i = Asc("a") To Asc("z") '■セルにa~zまで値を入れる Cells(sRow, rng.Column) = Chr(i) '■指定された回数になれば本関数から抜ける If chk = flg Then Exit Sub sRow = sRow + 1 chk = chk + 1 Next i End Sub
実際の使い方
Public Sub sample() '■セルA1からaから採番し、10個目の文字を採番すれば、採番終了する Call call_AtoZ(Range("A1"), 10) 'セルA1→a 'セルA2→b 'セルA3→c 'セルA4→d 'セルA5→e '・ '・ '・ 'セルA10→j End Sub
関連記事
a~zでは足りず、a~zzまでやaa~zzまで処理したい場合はこちらの記事を参照してください。
コメント