【VBA道場】#15 表示形式を設定(3桁カンマ区切り)
問題
A1~A9までの数字を3桁カンマ区切り(例.1,000)で表示せよ。
完成見本
解答
Sub vba_doujyou_15()
’変数の宣言
Dim i As Long
’1から9まで繰り返す
For i = 1 To 9
’3桁のカンマ区切りに表示形式を変更
Sheets("Sheet1").Range("A" & i) = Format(Range("A" & i), "#,###")
Next i
End Sub
サンプルファイル(マクロ無)
マクロなしのファイルはこちらからご利用いただけます。
VBA道場15 サンプルファイル(マクロ無)
1 ファイル 7.83 KB
サンプルファイル(マクロ有)
今回のマクロはこちらからダウンロードしてご使用いただけます。
VBA道場15 サンプルファイル(マクロ有)
1 ファイル 13.37 KB
解説
Format(object,書式)
object:対象となるRangeオブジェクト
書式:省略可能
セルに表示形式を設定したい時、一般的にはNumberFormatLocalプロパティなどを使って、表示形式を設定します。
NumberFormatLocalプロパティに関してはVBA道場6を参照してください。
しかし、3桁カンマを設定するだけであれば、もっと簡単な方法があります。
それがFormat関数を使う方法です。
Format関数には、最初に設定したいセルを入れ、そのあとに表示形式を入れます。
今回は、3桁区切りにしたいので、「”#,###”」を指定しました。
Format(Range("A" & i), "#,###")
他の表示形式にすることもできます。
例えば…
A1セルの内容:12345
Format(Cells(1,1),"###,###")) ' 12,345
Format(Cells(1,1),"000,000")) ' 012,345
Format(Cells(1,1), "0.00%")) ' 1234500.00%
その他詳しい書式はこちらを参照ください。
今回の場合はA1~A9まで繰り返したいので、以下の通りに繰り返し条件も追加しました。
For i = 1 To 9
Sheets("Sheet1").Range("A" & i) = Format(Range("A" & i), "#,###")
Next i
こうすることで、コード3行で9行分の処理を書くことができます。
終わりに
今日は表示形式を設定する方法について勉強しました。
3桁ごとにカンマを付けるだけで非常に読みやすい資料になります。
ちょっとしたことではありますが、是非活用してみてください!
今日はここまで。
おすすめ参考書
Amazon
たった1秒で仕事が片付くExcel自動化の教科書
いちばんやさしいExcelVBAの教本
ExcelVBA逆引き辞典 パーフェクト
楽天
いちばんやさしいExcelVBA
|
すらすら読めるExcelVBA
|
VBA逆引き大辞典
|