「数値の前に0追加して文字列へ変換」
という検索が、このサイト・インストラクターのネタ帳で行われていました。
検索ログをチェックしてみると
「エクセル vba 数値 文字列に変換」
「エクセル マクロ 数値 文字列変換」
といった検索でのアクセスも時々あります。
「vba 数値 文字列 変換」
といった検索だけでは、本当のところ何をしたかったのかがわかりませんが、ここでは、数値を文字列に変換して、先頭に「0」(ゼロ)を付加するマクロをいくつかご紹介しておきます。
A1セルの数値を文字列に変換して先頭に0を付加するサンプルマクロ
以下のようなマクロで、A1セルを文字書式に変更して、先頭に「0」を付加して「0123」のようなデータにできます。
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」を付加することができます。
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」を付加することができます。
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")
- Newer:VBAでどうしてそのような書き方をするのか理解できた
- Older:Word VBAで単語数をカウントする-Range.ComputeStatistics(wdStatisticWords)
Home » Excel VBA Rangeオブジェクト » 表示形式 » Excel VBAで数値を文字列に変換して先頭に0を付けるE