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

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

はじめに

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

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

  • 目次
    • セルに表示形式を設定する
    • セルの範囲に表示形式を設定する
    • 指定したシートのセルに表示形式を設定する

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

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/標準"

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

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

Sheet1 を指定するにはWorksheets("Sheet1")またはWorksheets(1)を入力します。

sheet1

' 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 = "アクティブ"
  • 目次
    • セルに表示形式を設定する
    • セルの範囲に表示形式を設定する
    • 指定したシートのセルに表示形式を設定する