目次
概要
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
- 1 →
targetCell.Value = ...
元のセルの値をそのまま変換し、置き換えます。必要に応じて別の列に出力するよう修正も可能です。
応用例
- 顧客コード(例:
CUS-001
、CUS-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を使用して、数値に任意の接頭文字列を付けたうえで、ゼロ埋めされた形式に変換する方法をご紹介いたしました。
元の値 | 結果 |
---|---|
1 | ABC-001 |
23 | ABC-023 |
456 | ABC-456 |
この形式は、管理番号やラベル付けに非常に便利で、Excelを活用した業務効率化にも役立ちます。