【VBA道場】#15 表示形式を設定(3桁カンマ区切り) 

ExcelVBA

【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

 

サンプルファイル(マクロ無)

マクロなしのファイルはこちらからご利用いただけます。

 

サンプルファイル(マクロ有)

今回のマクロはこちらからダウンロードしてご使用いただけます。

 

解説

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

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

スラスラ読めるExcel VBAふりがなプログラミング [ リブロワークス ]
価格:2035円(税込、送料無料) (2021/4/22時点)

楽天で購入

 

 

 

VBA逆引き大辞典

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Excel VBA逆引き辞典パーフェクト第3版 [ 田中亨 ]
価格:2838円(税込、送料無料) (2021/4/22時点)

楽天で購入

 

 

タイトルとURLをコピーしました