数値を指定した桁数で表示するVBAをコピペ可能な形式で紹介します。
今回は以下の二通りの方法について紹介します。
- 数値を指定の桁数で表示する
- 文字列として指定の桁数を表示する
前者は、例えば、表示のみを変更する目的で使用します。
後者の場合は、外部のファイルに読み込ませる場合や数値では都合が悪い場合に使用することになります。
それでは、それぞれについてVBAを紹介します。
数値を指定の桁数で表示する方法2パターン
数値を指定の桁数で表示する場合
この方法は、単純に見た目の桁数を変更する目的で使用します。
1 | sh.Range("A:A").NumberFormatLocal = "000" |
上記はA列の数値の書式を3桁表示するVBAです。
やっている内容としては、「セルの書式設定」から桁数を表示しているのみに過ぎません。
つまり、表示は”000″ですがセル自体は数値であり、他のファイルに出力すると一桁になることに注意してください。
「数値」では”005″のように数字より前の”0″を持つことができないのです。
表示さえ3桁になってくれれば問題ないという人はこれでOKです。
他のブックやファイルに、桁数を維持したまま転記したいという方は続いて次の項をご覧ください。
文字列として指定の桁数を表示するVBA
先に述べたように、「数値」は“005”のように“0”の桁を持つことはできません。
それでは、どうすれば指定の桁数で維持することができるのか。
答えは、「文字列」にしてあげる、です。
「文字列」であれば”0“を数字の頭に残すことができます。
セル上で表現すると、「‘005」のように数字の頭に「‘」(シングルクォーテーション)をつけてあげる操作に近いです。
そして、この文字列化をVBAで行うと以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 | Dim ra As Range Dim d As Range Set ra = Range("A1:A100") ra.NumberFormatLocal = "@" For Each d In ra If Len(d) < 3 Then d.Value = Format(d.Value, "000") End If Next d |
少し解説すると、
A1~A100セルをraと定義。
↓
“@”で文字列に変更。
↓
数値が3桁未満である限り、raの範囲で繰り返し実行。
(今回はすべての数値を3桁で示したいので、3桁未満としています。)
これなら他のファイル(例えばcsv)に書き出す場合でも、数値として書き出すので“0”の桁を維持することができます。
コピペで使用できると思いますのでぜひ試してみてください。
コメント