型番など文字列に0をつけて桁数を揃える

 

Sub test()
    ' 型番など文字列に0をつけて桁数を揃える


    Dim myNum As Long
    Dim i As Long

    ' 出力先セルの表示形式を文字列に変換
    Range("B3:B11").NumberFormatLocal = "@"

    
    For i = 3 To 11
    
            ' 対象セルの文字数を取得(Len関数機能は文字列の数を取得する
            myNum = Len(CStr(Cells(i, 1).Value))
            
            ' 不足桁数に0を入れる(string関数機能は、特定文字を重複する)
            Cells(i, 2) = String(4 - myNum, "0") & Cells(i, 1)
        
            ' 文字数を格納する変数を初期化する
            myNum = 0
    
    Next i

End Sub

 

 

実行結果

 

 

 

汎用化したコード

 

Sub test()
' 型番など文字列に0をつけて桁数を揃える


    Dim myNum As Long
    Dim i As Long
    Dim myMax As Long       '最終行
    
    Const myStart As Long = 3       'データ開始行
    Const IntputC As Long = 1       '元データ列番号
    Const OutputC As Long = 2       '出力先列番号
    Const myLenth As Long = 4       '揃いたい桁数
    
    '最終行を取得
    myMax = Cells(Rows.Count, IntputC).End(xlUp).Row

    ' 出力先セルの表示形式を文字列に変換
    Range(Cells(myStart, OutputC), Cells(myMax, OutputC)).NumberFormatLocal = "@"

    
    For i = myStart To myMax
    
            ' 対象セルの文字数を取得(Len関数機能は文字列の数を取得する)
            myNum = Len(CStr(Cells(i, IntputC).Value))
            
            ' 不足桁数に0を入れる(string関数機能は、特定文字を重複する)
            Cells(i, OutputC) = String(myLenth - myNum, "0") & Cells(i, IntputC)
        
            ' 文字数を格納する変数を初期化する
            myNum = 0
    
    Next i


End Sub

 

 

 

― ― ― ― ― ― ― ― ― ― → Excel VBA基礎入門もくじ へ戻る 

 

参考記事