サイトについて      連絡先   検索

VBA セルに表示形式を設定する

はじめに

Excel VBA のセルに表示形式を設定する方法を紹介します。

Range.NumberFormatLocal プロパティか Cells.NumberFormatLocal プロパティで表示形式を設定できます。

表示形式

Excel で表示形式を設定するには、セルを右クリックして「セルの書式設定」をクリックします。

1

セルに表示形式を設定する

Range の引数にセル名を指定すると、そのセルに表示形式を設定できます。

セル「A1」に表示形式を設定するには Range("A1").NumberFormatLocal のように指定します。

Range("A1").NumberFormatLocal = "G/標準"
Range("A2").NumberFormatLocal = "yyyy/m/d"
Range("A3").NumberFormatLocal = "@"
1

Cells の引数にセルの行と列の番号を指定すると、そのセルに表示形式を設定できます。

行「2」、列「A」に表示形式を設定するには Cells(2, 1).NumberFormatLocal のように指定します。

Cells(1, 1).NumberFormatLocal = "G/標準" ' A1
Cells(2, 1).NumberFormatLocal = "G/標準" ' A2
Cells(1, 2).NumberFormatLocal = "G/標準" ' B1
Cells(2, 2).NumberFormatLocal = "G/標準" ' B2

表示形式の分類の初期値は次のようになっています。

分類名
標準"G/標準"
数値"0_ "
通貨"\#,##0;\-#,##0"
会計"_ * #,##0_ ;_ * -#,##0_ ;_ * "-"_ ;_ @_ "
日付"yyyy/m/d"
時刻"[$-F400]h:mm:ss AM/PM"
パーセンテージ"0%"
分数"# ?/?"
指数"0.E+00"
文字列"@"
その他"[<=999]000;[<=9999]000-00;000-0000"

Excel で表示形式を設定した後に NumberFormatLocal の値を確認すると、どういう値を設定すればいいのかわかりやすいです。

セルの範囲に表示形式を設定する

セルの範囲「A1」~「B2」に同じ表示形式を設定するには Range("A1:B2").NumberFormatLocal または Range("A1", "B2").NumberFormatLocal のように指定します。

Range("A1:B2").NumberFormatLocal = "G/標準"
Range("A1", "B2").NumberFormatLocal = "G/標準"

指定したシートのセルに表示形式を設定する

Range.NumberFormatLocal とコードに書くと、アクティブなシートのセルに表示形式を設定します。これは ActiveSheet.Range.NumberFormatLocal の ActiveSheet が省略されています。

' どちらも同じコード
Range("A1").NumberFormatLocal = "G/標準"
ActiveSheet.Range("A1").NumberFormatLocal = "G/標準"

シートを指定するには Sheets の引数にシート名またはインデックスを指定します。

1

Sheet1 のシートを指定するには、Sheets("Sheet1") か Sheets(1) と書きます。

' Sheet1 のセル「A1」に表示形式を設定
Sheets("Sheet1").Range("A1").NumberFormatLocal = "@"
Sheets(1).Range("A1").NumberFormatLocal = "@"

' Sheet2 のセル「A1」に表示形式を設定
Sheets("Sheet2").Range("A1").NumberFormatLocal = "@"
Sheets(2).Range("A1").NumberFormatLocal = "@"

関連ページ