Excel VBAにおけるFormat関数は、データの表示形式をカスタマイズする際に非常に有効です。数値、日付、時間などを任意の形式で表示することができます。この記事では、Format関数の基本的な使い方から応用テクニックまでを紹介します。
Format関数の基本構文
- Expression: 書式設定を適用したい数値、日付、時間などのデータを指定。
- Format: どのような形式でデータを表示するかを指定する書式文字列。
Format(Expression, [Format])
Format(Now)の使用方法
Now 関数は現在の日付と時刻を返します。
 Format 関数を使用して、この値を様々な形式で表示できます。
Dim formattedDateTime As String
' 現在の日付と時刻
 formattedDateTime = Format(Now, "yyyy-mm-dd HH:MM:SS")
 ' 結果例: "2024-01-19 00:04:33"
' 日付のみ表示
 formattedDateTime = Format(Now, "Long Date")
 ' 結果例: "2024年1月19日"
' 時刻のみ表示
 formattedDateTime = Format(Now, "HH:MM:SS AM/PM")
 ' 結果例: "12:04:33 AM"
カスタム書式設定
Format関数は、標準の書式設定オプションだけでなく、ユーザー定義のカスタム形式を作成できることができます。
Dim customFormatted As String
' ゼロ埋め(5桁で表示)
 formattedNumber = Format(123, "00000")
 ' 結果: "00123"
' カスタム日付形式
 customFormatted = Format(Date, "yyyy-mm-dd")
 ' 結果: "2024-01-18"
' カスタム時間形式
 customFormatted = Format(Now, "HH:MM:SS AM/PM")
 ' 結果: "03:45:30 PM"
日付と時間の書式設定
Dim formattedDate As String
' 長い日付形式
 formattedDate = Format(Date, "Long Date")
 ' 結果: "2024年1月18日"
' 短い日付形式
 formattedDate = Format(Date, "Short Date")
 ' 結果: "23/1/18"
' 時間形式
 formattedDate = Format(Now, "Long Time")
 ' 結果: "22:45:30"
数値の書式設定
Dim formattedNumber As String
' 円表示(通貨形式)
 formattedNumber = Format(1234567.89, "#,##0円")
 ' 結果: "1,234,567円"
' パーセンテージ形式
 formattedNumber = Format(0.876, "0.00%")
 ' 結果: "87.60%"
' 固定小数点形式(小数点以下2桁)
 formattedNumber = Format(1234.567, "0.00")
 ' 結果: "1234.57"