エクセルのセルに 0001 などの数値を入力しても、0001 と表示されずに 1 や日付 などで表示されてしまいます。これはセルの書式設定で、設定された書式で認識されるためです。
マクロで数値を文字列として入力する簡単な方法は、数値の先頭に「’」シングルクォーテーションを付けると文字列で認識されます。
この記事では、数値を文字列にする方法を4つ紹介します。
目次
数値を文字列としてセルに入力する方法
エクセルで「0001」などの数値を文字列としてセルに入力するには、「’」シングルクォーテーションを入力値の先頭に付けます。

文字列として入力されます。

「’」シングルクォーテーションで数値を文字列として入力する
文字列の入力値の先頭に「’」シングルクォーテーションを付けます。
Sub サンプル2505()
Range("B3") = "'0123"
End Sub
マクロの実行結果

Format関数で文字列に設定する
「’」” Format(a, “0000”)の書式で数値を文字列にします。
Sub サンプル2510()
Dim a As Integer
a = 123
Range("C2").Select
ActiveCell.Value = "'" Format(a, "0000")
End Sub
マクロの実行結果
セルC2に「0123」が、文字列として入力されます。

NumberFormat = “@”で文字列にする
NumberFormat = “@” を使うと、指定した範囲のセルを「文字列」として設定します。
Sub サンプル2515()
Range("B2:E4").Select
ActiveCell.NumberFormat = "@"
Range("B2:E4").Value = "0123"
End Sub
マクロの実行結果
セルB2からセルE4までを、文字列に設定します。

Format(a, “0000”)で文字列にする
アクティブセルの表示書式を、Format関数で設定します。
Sub サンプル2520()
Dim a As Integer
a = 123
Range("B2").Select
ActiveCell.Value = Format(a, "0000")
End Sub
マクロの実行結果

まとめ
数値を文字列としてセルに入力するには、次の方法があります。
- 数値の先頭に「’」シングルクォーテーションを付ける
- Format関数で文字列に設定する
- NumberFormat = “@”で文字列にする
- Format(a, “0000”)で文字列にする