Home » Excel VBA Rangeオブジェクト » 表示形式 » Excel VBAで表示形式を設定する-Range.NumberFormatLocal

Excel VBAで表示形式を設定する-Range.NumberFormatLocal

対象:Excel2003, Excel2007, Excel2010, Excel2013

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

例えば、

Sub sample()
 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

NumberFormatLocalプロパティで表示形式を設定

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

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

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

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

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

最終更新日時:2023-07-18 16:42

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » 表示形式 » Excel VBAで表示形式を設定する-Range.NumberFormatLocal

「表示形式」の記事一覧

検索


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

.