VBA開発

0埋めして桁数を揃える(Format関数/Right関数)

桁数を揃えないといけない

エクセルVBAを使用し、桁数を揃えたい場合があります。
数値のゼロで埋める事が多く、その場合ゼロ埋め(ゼロパディング、ゼロフィル)といいます。

■例
・会員番号(顧客番号)の桁数を揃えるため、数字の前に0をつけたい
・商品コードの桁数揃えるため、数字の左側に0をつけたい

桁数を揃えるサンプルコード

Format関数もしくはRight関数を使用しゼロ埋めして、表示桁を合わせます。

コードサンプル

'■指定した番号を0埋めする(ゼロパディング、ゼロフィル)
Public Sub sample()
        
    '■Right関数の場合
    MsgBox Right("00000" & 2, 5)  '→00002
    MsgBox Right("00000" & 10, 5) '→00010
    
    '■Right関数と変数を上手く使う場合
    Dim str As String
    str = "00000"
    MsgBox Right(str & 100, 5) '→00100
 
    '■Format関数を使用する場合
    MsgBox Format(2, "00000")  '→00002
    MsgBox Format(10, "00000") '→00010
 
    '■Right関数と変数を上手く使う場合
    str = "00000"
    MsgBox Format(100, str) '→00100
 
End Sub

注意事項

Cells(1,1)=Format(2, “00000”)のように、セルに値を反映するコードの場合は注意必要です
セルの表示形式によって0がカットされてしまうため、0埋め出来ない場合があります。

■エラー回避方法
1.シングルクォーテーションを前に挿入して強制的に文字列にする
2.セルの表示形式を文字列形式に変更しましょう。
※オススメは2です。
1の場合他システムとの連携時、シングルクォーテーションが読み込めなく、
エラーが発生可能性があるため

関連記事

シート全体を文字列形式にする場合は、以下参照してください。
「ActiveSheetを文字列形式にする」処理をパーツ化する【ExcelVBA】

 

コメント

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