Home » ExcelVBA Rangeオブジェクト » 表示形式 » VBAで千円単位表示書式を設定する

VBAで千円単位表示書式を設定する

対象:Excel2010, Excel2013, Windows版Excel2016

「excel vba 千円表示」
「エクセルvba 千円単位」
「excel2010 VBA 千円単位表示」
といった検索キーワードでのアクセスが時折あります。

Excelでは「#,##0,」のようなユーザー定義書式を設定することで、セルに入力されている数値を、千円単位表示にできます。

[スポンサードリンク]

これをVBAから行うには、どのようなコードを書けばいいのかを探していた方による検索でしょう。

千円単位のユーザー定義書式を設定するサンプルマクロ

以下のSubプロシージャを実行すると、A1:A5セルに千円単位表示のユーザー定義書式が設定されます。
Sub 千円単位表示にする_A1からA5セル()
 Range("A1:A5").NumberFormatLocal = "#,##0,"
End Sub

A1:A5セルを選択して、千円単位表示にするユーザー定義書式「#,##0,」を設定する操作をマクロ記録すると、
  Range("A1:A5").Select
  Selection.NumberFormatLocal = "#,##0,"
というコードが作られます。

この2行をまとめたのが、上記Subプロシージャの、
  Range("A1:A5").NumberFormatLocal = "#,##0,"
です。

SelectionをRange取得のコードに変更する

拙著「いちばんやさしいExcel VBAの教本」のLesson 55 『マクロ記録で使われる「Select」と「Selection」について学習しましょう』で、

セルに対する操作をマクロ記録した場合、Selectionプロパティは、セルを取得していることがほとんどですから、Selectionで書かれているコードを、Rangeオブジェクトを取得するコードに変更することが、汎用的に使えるExcelマクロへの第一歩となります。
と書きました。

A1:A5セルを選択して、千円単位表示のユーザー定義書式を設定する操作をマクロ記録して作らたコード、
  Range("A1:A5").Select
  Selection.NumberFormatLocal = "#,##0,"
をまとめて、
  Range("A1:A5").NumberFormatLocal = "#,##0,"
にするのも、その一例です。

.NumberFormatLocalの前を書き換えてみよう

「.NumberFormatLocal」の前は、Rangeオブジェクトを取得するさまざまなコード(オブジェクト式)に書き換えられます。

拙著p.217でお伝えしているRangeプロパティの2つの引数を使った
  Range("A1", "A5").NumberFormatLocal = "#,##0,"
でも、A1:A5セルのユーザー定義書式が千円単位表示になります。

拙著p.220でお伝えしているRangeプロパティの2つの引数にCellsプロパティを組み合わせた
  Range(Cells(1, 1), Cells(5, 1)).NumberFormatLocal = "#,##0,"
でもやっぱり、A1:A5セルのユーザー定義書式が千円単位表示になります。

拙著p.230でお伝えしているColumnsプロパティを使った
  Columns(1).NumberFormatLocal = "#,##0,"
にすれば、1列目全体のユーザー定義書式が千円単位表示になります。

Range.EntireColumnプロパティを使って
  Range("A1").EntireColumn.NumberFormatLocal = "#,##0,"
でも1列目全体のユーザー定義書式が千円単位表示になります。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » 表示形式 » VBAで千円単位表示書式を設定する

「表示形式」の記事一覧

検索


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

.