【VBA】Format関数:日付や数値を指定した形式に変換する

【VBA】Format関数:日付や数値を指定した形式に変換する

VBAのFormat関数は、日付、時刻、数値などを、指定した書式設定に基づいて文字列に変換するために使用されます。この記事では、Format関数の基本的な使い方から、ビジネスシーンで役立つ応用例までを解説します。

Format関数の基本

Format関数は、以下のように使用します。

Format(expression, format, [firstdayofweek], [firstweekofyear])

  • expression:書式設定する値(日付、数値、文字列など)
  • format:適用する書式指定文字列
  • firstdayofweek:週の最初の曜日(省略可能)
  • firstweekofyear:年の最初の週(省略可能)

最も重要な引数はformatで、これによって出力形式が大きく変わります。

日付の書式設定

Format関数を使って日付を書式設定する例をいくつか示します。


Sub FormatDate()
Dim myDate As Date
myDate = #1/1/2024#

Debug.Print Format(myDate, "yyyy/mm/dd") ' 出力: 2024/01/01
Debug.Print Format(myDate, "dd-mmm-yy") ' 出力: 01-Jan-24
Debug.Print Format(myDate, "mmmm d, yyyy") ' 出力: January 1, 2024
End Sub

数値の書式設定

数値の書式設定もFormat関数で可能です。


Sub FormatNumber()
Dim myNumber As Double
myNumber = 1234.567

Debug.Print Format(myNumber, "#,##0.00") ' 出力: 1,234.57
Debug.Print Format(myNumber, "0.0%") ' 出力: 123456.7%
Debug.Print Format(myNumber, "Currency") ' 出力: \1,235
End Sub

実用的なコード例:請求書の日付を整形する

請求書の日付表示を統一するために、Format関数を使用する例です。


Sub FormatInvoiceDate()
Dim invoiceDate As Date
invoiceDate = #3/15/2024#

' 請求書の日付を「2024年3月15日」の形式で表示
Dim formattedDate As String
formattedDate = Format(invoiceDate, "yyyy年m月d日")

Debug.Print "請求日: " & formattedDate ' 出力: 請求日: 2024年3月15日
End Sub

応用例:時刻の書式設定

時刻の書式設定もFormat関数で行えます。


Sub FormatTime()
Dim myTime As Date
myTime = #14:30:45#

Debug.Print Format(myTime, "hh:mm:ss") ' 出力: 14:30:45
Debug.Print Format(myTime, "h:mm AM/PM") ' 出力: 2:30 PM
End Sub

まとめ

VBAのFormat関数は、日付、時刻、数値を様々な形式で表示するために非常に強力なツールです。この記事で紹介した例を参考に、Format関数を使いこなして、より見やすく、わかりやすいVBAアプリケーションを作成してください。