対象: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
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
[スポンサードリンク]
- Newer:エッセンスを濃縮した講座で効率よくVBAを学べた
- Older:ショートカットキーが割り当てられているコマンドを確認する
Home » Excel VBA Rangeオブジェクト » 表示形式 » Excel VBAで表示形式を設定する-Range.NumberFormatLocal