このページでは、セルの書式設定画面の表示形式タブに対応するプロパティについて説明します。
表示形式 – NumberFormatLocal プロパティ
セルまたはレンジの表示形式は NumberFormatLocal プロパティにユーザー定義を設定することで変更することができます。ユーザー定義の表示形式を設定するとセル内の編集した値(.Value値)は変わらずにその見た目(.Text値)が変わります。
数値・その他の表示形式設定例
次のサンプルマクロは数値に関する表示形式を設定する例です。同じ値を設定しても、表示形式により表示のされかたが変わるのがわかると思います。
Sub sample6_10()
'表示形式設定
Range("A1:A4").NumberFormatLocal = "G/標準"
Range("B1:B4").NumberFormatLocal = _
"_ \* #,##0_ ;[赤]_ \* -#,##0_ ;_ \* "" - ""_ ;_ @_ "
'値設定
Range("A1,B1").Value = 12345
Range("A2,B2").Value = -98
Range("A3,B3").Value = 0
Range("A4,B4").Value = "あああ"
End Sub
数値形式の書式について
上記のRange(“B1:B4”)に設定したような数値形式の表示形式は、値の状態によって4つの書式を設定することができます。各書式はセミコロン(;)で区切ります。
- 1番目の書式 ・・・ 正の数の場合の書式
- 2番目の書式 ・・・ 負の数の場合の書式
- 3番目の書式 ・・・ ゼロの場合の書式
- 4番目の書式 ・・・ 文字列の場合の書式
記号 | 説明 |
---|---|
_ (アンダースコア) |
1文字分の余白を確保する。 |
¥ | ¥記号を表示する。 |
* | 数値の桁数によって¥記号の位置がずれないようにする。 |
# | 1桁の数字を表示する。ゼロの場合は何も表示されない。 |
, (カンマ) |
数値を1000単位で区切る。 |
0 | 1桁の数字を表示する。ゼロも表示する。 |
[色] | 文字色(黒、赤、緑、青、水、黄、紫、白)を指定する。 |
– (マイナス) |
マイナス符号を表示する。 |
“文字列” | 文字列を表示する。※VBAでダブルクォーテーション(“)自体を文字列として設定したい場合は2つ続けて(“”)設定します。 |
@ | 入力値をそのまま表示する。 |
日付・時刻の表示形式設定例
次のサンプルマクロは日時に関する表示形式を設定する例です。同じ日時でも表示形式によりさまざまな表現が可能であることがわかると思います。
Sub sample6_11()
Dim myForm(1 To 7) As String
Dim i As Integer
'表示形式(7パターン)を配列に格納
myForm(1) = "yy/mm/dd aaa"
myForm(2) = "yyyy/m/d aaaa"
myForm(3) = "ge.mm.dd"
myForm(4) = "ggge""年""m""月""d""日"""
myForm(5) = "mmm. d, yyyy (ddd.)"
myForm(6) = "mmmm d, yyyy (dddd)"
myForm(7) = "h:mm:ss"
'タイトルを編集
Range("A1").Value = "設定値"
Range("B1").Value = "表示形式"
Range("C1").Value = "表示結果"
Range("A1:C1").Interior.Color = vbGreen
'値設定
Range("A2:A8,C2:C8").Value = "2013/4/8 16:05"
'表示形式設定
For i = 1 To 7
Cells(i + 1, 2).Value = myForm(i)
Cells(i + 1, 3).NumberFormatLocal = myForm(i)
Next i
'セル幅の自動調整
Columns("A:C").AutoFit
End Sub