VBATips

a~zまで(アルファベット)連続入力して採番する【Asc関数/For~Next】【ExcelVBA】

連番を振るのは数字が多いですが、まれにアルファベットで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まで処理したい場合はこちらの記事を参照してください。

コメント

タイトルとURLをコピーしました