VBAで数値を「ABC-001」のような形式に変換する方法【ゼロ埋め+接頭文字列】

目次

概要

Excelでは、1・2・3のような単純な数値を、「ABC-001」「ABC-002」といった形式に変換したい場面があります。これは社内管理番号やコード番号としてよく使われるパターンです。

手作業で桁を揃えるのは大変ですが、VBAを使えば複数のセルに一括で接頭文字列+ゼロ埋め番号を設定することができます。

本記事では、VBAを用いて数値を「ABC-001」のような文字列に変換する方法をご紹介いたします。

サンプルコード

Sub ConvertNumberToCode()

    Dim targetCell As Range
    For Each targetCell In Range("B3:B6")
        targetCell.Value = Format(targetCell.Value, "ABC-000")
    Next targetCell

End Sub

コード解説

  • Range("B3:B6")
    変換対象のセル範囲です。ここに 1、2、3、4 のような数値が入力されていると仮定しています。
  • Format(値, "ABC-000")
    Format 関数を使って、数値を "ABC-" という接頭文字とともに3桁のゼロ埋め形式に変換します。
    • 1 → ABC-001
    • 12 → ABC-012
    • 123 → ABC-123
  • targetCell.Value = ...
    元のセルの値をそのまま変換し、置き換えます。必要に応じて別の列に出力するよう修正も可能です。

応用例

  • 顧客コード(例:CUS-001CUS-002
  • 商品ID(例:PRD-045
  • 請求書番号(例:INV-100
  • 社員番号(例:EMP-003

接頭文字部分は "ABC-" の代わりに任意のラベルに置き換え可能です。

注意点

  • 元の値が数値であることが前提です。文字列や空白セルには変換できません。
  • ゼロ埋めの桁数を変えたい場合は "ABC-0000"(4桁)などに調整可能です。
  • 元の値を保持したい場合は、別セルに出力する形式に書き換えてください。

応用コード(別列に出力)

Sub ConvertAndOutputToAnotherColumn()

    Dim i As Long
    For i = 3 To 6
        Cells(i, "C").Value = Format(Cells(i, "B").Value, "ITEM-000")
    Next i

End Sub

このコードでは、B列の数値をもとに、C列に "ITEM-000" 形式で出力します。

まとめ

本記事では、VBAを使用して、数値に任意の接頭文字列を付けたうえで、ゼロ埋めされた形式に変換する方法をご紹介いたしました。

元の値結果
1ABC-001
23ABC-023
456ABC-456

この形式は、管理番号やラベル付けに非常に便利で、Excelを活用した業務効率化にも役立ちます。

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

この記事を書いた人

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

目次