更新日:、 作成日:
VBA セルに表示形式を設定する (Range.NumberFormatLocal)
はじめに
Excel VBA マクロでセルに書式設定の表示形式を設定する方法を紹介します。
Range("B1").NumberFormatLocal または Cells(1, 2).NumberFormatLocal プロパティから、セル「B1」の表示形式を設定できます。
セルに表示形式を設定する
Range の引数にセル名を指定すると、そのセルに書式設定の表示形式を設定できます。
セル「A1」に表示形式を設定するには Range("A1").NumberFormatLocal を入力します。
Range("A1").NumberFormatLocal = "G/標準" ' 標準
Range("A2").NumberFormatLocal = "yyyy/m/d" ' 日付
Range("A3").NumberFormatLocal = "@" ' 文字列
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 |
スポンサーリンク
セルの範囲に表示形式を設定する
セルの範囲「A1」~「B2」に同じ表示形式を設定するには Range("A1:B2").NumberFormatLocal または Range("A1", "B2").NumberFormatLocal を入力します。
Range("A1:B2").NumberFormatLocal = "G/標準"
Range("A1", "B2").NumberFormatLocal = "G/標準"
別シートのセルに表示形式を設定する
シートを指定するには Worksheets の引数にシート名またはインデックスを指定します。
Sheet1 を指定するには Worksheets("Sheet1") または Worksheets(1) を入力します。
' Sheet1 のセル「A1」に表示形式を設定
Worksheets("Sheet1").Range("A1").NumberFormatLocal = "@"
Worksheets(1).Range("A1").NumberFormatLocal = "@"
' Sheet2 のセル「A1」に表示形式を設定
Worksheets("Sheet2").Range("A1").NumberFormatLocal = "@"
Worksheets(2).Range("A1").NumberFormatLocal = "@"
Sheet1 に Range や Cells を入力すると、自身のシートのセルになります。自身を表す Me. が省略されています。
' どちらも同じコード
Range("A1").Value = "Sheet1"
Me.Range("A1").Value = "Sheet1"
標準モジュールに Range や Cells を入力すると、開いているシートのセルになります。アクティブシートを表す ActiveSheet. が省略されています。
' どちらも同じコード
Range("A1").Value = "アクティブ"
ActiveSheet.Range("A1").Value = "アクティブ"