Home » ExcelVBA Rangeオブジェクト » 表示形式 » VBAで表示形式を設定する-NumberFormatLocalプロパティ

VBAで表示形式を設定する-NumberFormatLocalプロパティ

対象:Excel2003, Excel2007, Excel2010, Excel2013

「excel2007 vba 通貨型のマイナスの時の書式に()が勝手に付く」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

例えば、
Sub サンプル()
 Dim var As Currency
 var = -10000
 ActiveCell.Value = var
End Sub
というマクロを実行したときに、
「(\10,000)」
といった書式になってしまった原因と解決方法を探している方でしょう。

[スポンサードリンク]

表示形式を設定するサンプルマクロ

書式を指定したいのであれば、コードの中で、値の代入だけではなく、書式設定も行いましょう。


Sub 数値の書式設定を行う例()
 Dim var As Currency

 var = -10000
 ActiveCell.NumberFormatLocal = "\#,##0;[赤]\-#,##0"
 ActiveCell.Value = var
End Sub

サンプルマクロの解説

Rangeオブジェクトの、NumberFormatLocalプロパティを使うと、数値の書式設定を行うことができます。

上記の「"\#,##0;[赤]\-#,##0"」が、数値をどう表示するのかを指定しています。

[セルの書式設定]ダイアログ-[表示形式]でユーザー定義書式を設定するのと同じ記号を使って指定をします。

「;」の前の「\#,##0」がプラス・正の数値とゼロの書式、
「;」の後の「[赤]\-#,##0」がマイナス・負の数値の書式です。

「\」(円マーク)と「,」(桁区切りカンマ)を入れるようにして、マイナス・負の数値の場合には「-」(マイナス符号)を円マークの後に入れて、赤色で表示することを指定しています。

関連語句
VBA, Visual Basic for Applications
[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » 表示形式 » VBAで表示形式を設定する-NumberFormatLocalプロパティ

TrackBack:3

TrackBack URL
NumberFormatLocalとNumberFormatの違い from インストラクターのネタ帳
Excel(エクセル)VBAの、NumberFormatLocalとNumberFormatの違いをサンプルファイル付きでご説明しています。
マクロで日付書式を設定・変更する from インストラクターのネタ帳
Excel(エクセル)マクロで、日付を年号の含んだ和暦表示にするには、NumberFormatLocalプロパティで書式を設定します。
Columns(1).NumberFormatLocal = "@"の意味 from インストラクターのネタ帳
Excel VBAの、Columns(1).NumberFormatLocal = "@"というオブジェクト式の意味を解説しています。

Home » ExcelVBA Rangeオブジェクト » 表示形式 » VBAで表示形式を設定する-NumberFormatLocalプロパティ

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

.