【Excelマクロ】VBAのFormat関数でできること|形式変更をマスターしよう

スポンサードリンク
VBA
  • 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など、時間を生み出すプログラミング術を公開しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。

最後までお読みいただき、ありがとうございました。がんばってください!

タイトルとURLをコピーしました