- VBAのFormat関数について知りたい
- Excelのマクロで数値の形式を変更する方法を探している
- 日付や金額の表示形式をアレンジしたい
このようなお悩みをお持ちですか?
この記事を読むことで、下記のことがわかります。
- VBAのFormat関数でできることを学べる
- Format関数で変更できるいろいろな表示形式を知れる
-著者情報-
名前:Utatane
VBA(マクロ)歴:3年
Excel使用歴:15年以上
ひとこと:初心者だった当時に戻った気持ちになって解説いたします
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
VBA(Excelマクロ)のFormat関数でできること
「Format」は、日付や数値、文字列を指定した形式に変更できる関数です。
代表的なものは以下のとおりです。
- 日付形式の変更( 2025年4月30日 → 2025/04/30 など)
- 通貨形式に変更( 123456789 → 123,456,789 など)
- ゼロ埋め( 1 → 001 など)
- 大文字小文字変更( utatane → UTATANE など)
では、どのようにして表示形式を変更するのか、
Format関数の使い方について見ていきましょう。
Format関数の使い方
基本構文
Format関数の基本構文は以下のとおりです。
Format(値, "表示形式")
「第一引数」に「値」を記述し、「第二引数」に「表示形式」を指定します。
表示形式は「”(ダブルクォーテーション)」で囲ってください。
【引数とは?】
引数は「引き渡す数(引き渡す値)」のことで、Format関数の()内に渡す値を指します。
引数として「値」と「表示形式」を渡すと、「指定した表示形式に変換された値」を私たちが受け取ります。
この受け取る値を「返り値(戻り値)」といいます。
例えば、魚屋さんにアジの3枚おろしを作ってもらいたい場合は、アジを渡して3枚おろしを受け取ります。
アジが引数、3枚おろしが返り値といったところでしょうか。
「表示形式」は目的によって異なります。
では、それぞれの表示形式を見ていきましょう。
日付形式の変更
日付形式を変更するには、下記のように記述します。
Sub 日付形式変更()
Debug.Print Format(Date, "yyyy/mm/dd")
End Sub

「Date」は本日の日付を表示する関数です。
その他、マクロの基本や「Debug.Print」については、下記記事をご参考ください。
代表的な日付の表示形式を以下にまとめました。
- yyyy:4桁表示の西暦「year」(2025など)
- yy:西暦下2桁(25など)
- mm:月「month」(04、12など)/「m」1文字にすると頭に0がつかない
- dd:日「day」(08、30など)/「d」1文字にすると頭に0がつかない
- aaaa:曜日(水曜日など)/「aaa」3文字にすると「水」などになる
- dddd:曜日(Mondayなど)/「ddd」3文字にすると「Mon」などになる
時間を表示することも可能です。
Sub 日時形式変更()
Debug.Print Format(Now, "hh:nn:ss")
End Sub
時間(時・分・秒)を表示したい場合は、第一引数に「Date」ではなく「Now」を記述してください。
- hh:時(03、14など)/「h」1文字にすると頭に0がつかない
- nn:分(05、30など)/「n」1文字にすると頭に0がつかない
- ss:秒(07、59など)/「s」1文字にすると頭に0がつかない
通貨形式に変更
頭に¥を付けたり、3桁ごとに「,(カンマ)」を入れることもできます。
下記のVBAコードを見てください。
Sub 通貨形式()
Debug.Print Format(1234567, "\\#,##0")
End Sub

- \\0:\をつける(1000 → \1000 など)
- #,##0:カンマをつける(1000 → 1,000 など)
- \\#,##0:\とカンマをつける(1000 → \1,000 など)
- 0.00:少数点表示(1 → 1.00)/「0.0」なら1.0
- -:ハイフンを表示(領収書など、桁の最後に「-」をつけたいときに便利)
【0と#の違いは?】
- 0:桁無しでも0を表示
例1:Format(100, “0000”) → 0100
例2:Format(0.1, “0.00”) → 0.10 - #:桁無しなら空白を表示
例1:Format(100, “####”) → 100
例2:Format(0.1, “#.##”) → .1
ゼロ埋め
「1」を「001」にするなど、ゼロ埋め(頭に0を追加して桁数を揃えること)も可能です。
下記のVBAコードを見てください。
Sub ゼロ埋め()
Debug.Print Format(1, "000")
End Sub

表示形式に桁数を指定します。
ゼロの数で桁数を表すだけです。
- 00:2桁(1→01)
- 000:3桁(1→001)
- 0000:4桁(1→0001)
など
大文字小文字変更
Sub 大文字小文字変更()
Debug.Print Format("utatane", ">")
End Sub

- <:小文字で表示
- >:大文字で表示
※ < → x<0 → 0未満 → 小文字 と考えると覚えやすいかも
うまく動作しないときの対処法
エラーが発生する
コンパイルエラー・実行時エラー
コードに問題がある場合が多いです。
「”」や()など、2つセットの記号が片方だけになっていないかなど、コードを再確認しましょう。
セル名を「”」で囲っていない場合でもエラーが発生します。
警告表示

上記の表示が出た場合は、マクロが無効になっています。
エクセルに表示された「コンテンツの有効化」をクリックするか、下記記事を参考にセキュリティ設定を変更してください。
最後に
VBA(Excelマクロ)のFormat関数について解説いたしました。
当ブログでは、VBAマクロやPythonなど、時間を生み出すプログラミング術を公開しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!