Home » ExcelVBA Rangeオブジェクト » 表示形式 » Excel VBAで数値を文字列に変換して先頭に0を付けるE

Excel VBAで数値を文字列に変換して先頭に0を付けるE

対象:Excel2007, Excel2010, Excel2013

「数値の前に0追加して文字列へ変換」
という検索が、このサイト・インストラクターのネタ帳で行われていました。

検索ログをチェックしてみると
「エクセル vba 数値 文字列に変換」
「エクセル マクロ 数値 文字列変換」
といった検索でのアクセスも時々あります。

「vba 数値 文字列 変換」
といった検索だけでは、本当のところ何をしたかったのかがわかりませんが、ここでは、数値を文字列に変換して、先頭に「0」(ゼロ)を付加するマクロをいくつかご紹介しておきます。

[スポンサードリンク]

A1セルの数値を文字列に変換して先頭に0を付加するサンプルマクロ

以下のようなマクロで、A1セルを文字書式に変更して、先頭に「0」を付加して「0123」のようなデータにできます。

Sub A1セルの数値を文字列に変換して先頭に0を付加する()
 With Range("A1")
  .NumberFormatLocal = "@"
  .Value = Format(.Value, "0000")
 End With
End Sub

A1セルのNumberFormatLocalプロパティに「@」を指定することで文字列書式を設定して、
 With Range("A1")
  .NumberFormatLocal = "@"

Format関数を使ってゼロ埋めを行って4桁の数字にしています。
  .Value = Format(.Value, "0000")

選択セルの数値を文字列に変換して先頭に0を付加するサンプルマクロ

以下のようなマクロにすれば、選択されているセルを文字列書式に設定して、先頭に「0」を付加することができます。

Sub 選択セルの数値を文字列に変換して先頭に0を付加する()
 Dim rng As Range

 For Each rng In Selection
  With rng
   .NumberFormatLocal = "@"
   .Value = Format(.Value, "0000")
  End With
 Next rng
End Sub

選択されている全セルに対してループを回して、
 Dim rng As Range
 For Each rng In Selection

先と同様に文字列書式を設定して
  With rng
   .NumberFormatLocal = "@"

ゼロ埋めを行っています。
   .Value = Format(.Value, "0000")

A列の数値を文字列に変換して先頭に0を付加する

以下のようなマクロにすれば、A列のセルに文字書式を設定して、先頭に「0」を付加することができます。

Sub A列の数値を文字列に変換して先頭に0を付加する()
 Dim i As Long

 For i = 1 To Range("A1").End(xlDown).Row
  With Cells(i, "A")
   .NumberFormatLocal = "@"
   .Value = Format(.Value, "0000")
  End With
 Next i
End Sub

A1セルからA列の最終行までループを回して、
 For i = 1 To Range("A1").End(xlDown).Row
  With Cells(i, "A")

先の二つのマクロと同じことをやっています。
   .NumberFormatLocal = "@"
   .Value = Format(.Value, "0000")

関連語句
VBA, Visual Basic for Applications

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » 表示形式 » Excel VBAで数値を文字列に変換して先頭に0を付けるE

「表示形式」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.