VBAで数値をゼロ埋めして文字列に変換する方法【左詰/右詰パディング対応】

目次

概要

Excelでは、「45」を「00045」にしたり、「45」を「45000」にしたりと、数値にゼロを付け足して一定の桁数に揃える処理が必要になる場面があります。これは伝票番号、ID、コード生成、文字列整形などさまざまな業務で活用されます。

本記事では、VBAを使って数値にゼロを追加する方法を「左側にゼロ追加(ゼロ埋め)」「右側にゼロ追加(桁揃え)」の2パターンに分けてご紹介いたします。

サンプルコード

Sub PadNumbersWithZeros()

    Dim padTemplate As String
    Dim totalLength As Long
    Dim cell As Range

    ' 5桁のゼロ文字列を作成(パディング用)
    padTemplate = String(5, "0")
    totalLength = Len(padTemplate)

    ' A列:左側にゼロを追加して5桁に揃える(例:48 → 00048)
    For Each cell In Range("C3:C6")
        cell.Value = Right(padTemplate & cell.Value, totalLength)
    Next cell

    ' B列:右側にゼロを追加して5桁に揃える(例:48 → 48000)
    For Each cell In Range("D3:D6")
        cell.Value = Left(cell.Value & padTemplate, totalLength)
    Next cell

End Sub

コード解説

String(5, "0")

  • 5個の「0」を連結した文字列(”00000″)を作成します。
  • String(桁数, 文字) という構文は、任意の文字を指定回数繰り返すために使います。

Right(padTemplate & 値, 長さ)

  • 左側にゼロを付加した上で、指定した桁数だけ右側を切り出すことで、左詰めのゼロ埋めになります。
  • 例: "00000" & 48"0000048"Right(..., 5)"00048"

Left(値 & padTemplate, 長さ)

  • 右側にゼロを付加した上で、指定した桁数だけ左側を切り出すことで、右詰めのゼロ埋めになります。
  • 例: 48 & "00000""4800000"Left(..., 5)"48000"

応用例

処理内容使用例
左側にゼロを追加「45」→「00045」(伝票番号、IDなど)
右側にゼロを追加「12」→「12000」(数値→桁合わせ文字列)

注意点

  • この方法では結果は文字列としてセルに代入されます。後続の数値演算には使用できません。
  • 元のセルに数式が含まれている場合、上書きされるため注意が必要です。
  • 桁数を変えたい場合は String(5, "0")5 の部分を任意の数字に変更してください。

まとめ

本記事では、Excel VBAを使って数値をゼロ埋めして文字列に変換する方法を、以下の2パターンに分けて解説いたしました。

変換内容使用関数結果例
左側にゼロ追加Right("00000" & 値, 5)37 → 00037
右側にゼロ追加Left(値 & "00000", 5)37 → 37000

ゼロ埋め処理は、帳票整理や管理番号の整形など、実務で広く活用されています。ぜひ日々の業務にご活用ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次