Format関数のポイント

Format関数は、日付や数値をさまざまな形式に変換する。VBAエキスパート試験でも問われやすい関数だと思う。

基本的な使い方

Format関数には「元の値」と「書式記号」という2つの引数がある。

【書式】
Format(元の値, 書式記号)

いくつかFormat関数の使用例を挙げる。

次のプロシージャは、「15」という数値を4桁にして表示する。

Sub Test()
    MsgBox Format(15, "0000")
End Sub

「32.5」という数値を整数部分3桁、小数部分2桁で表示する。

Sub Test()
    MsgBox Format(32.5, "000.00")
End Sub

現在の日付を年4桁、月2桁、日2桁で表示する。

Sub Test()
    MsgBox Format(Now, "yyyy/mm/dd")
End Sub

書式記号は多岐にわたる。Access VBA エキスパート試験で問われるものについては下記のページにまとめた。
【Access VBA エキスパート試験用】 Format関数の書式記号一覧
Format関数は、日付や数値をさまざまな形式に変換する関数だ。変換の形式は引数「書式記号」で決まる。 【書式】 Format(元の値, 書式記号) ...

エキスパート試験のポイント

1.書式記号「#」は1桁の数値を表す。ただし存在しない桁は0で埋めない。書式記号「0」も1桁の数値を表すが、存在しない桁は0で埋められる。

Sub Test()
    Debug.Print Format(15, "####")
    Debug.Print Format(15, "0000")
End Sub

2.書式記号「m」は月の数値を表す。1桁の場合は先頭に0がつかない。書式記号「mm」も月の数値を表すが、1桁の場合は0が付く。
(書式記号「d」と「dd」、「h」「hh」なども同様)

Sub Test()
    Debug.Print Format("2019/02/25", "m")
    Debug.Print Format("2019/02/25", "mm")
End Sub

3.書式記号「ggg」は年号を表す(昭和、平成など)。また書式記号「e」は和暦年を表す。この2つの組み合わせは分かるようにしておこう。

Sub Test()
    Debug.Print Format("2019/02/25", "ggge") & "年"
End Sub

4.書式記号「ddd」は英語の曜日の先頭3文字を表す。また書式記号「dddd」は英語の曜日を表す。VBAエキスパート試験対策のためには覚えておきたい。

Sub Test()
    Debug.Print Format("2019/02/25", "ddd")
    Debug.Print Format("2019/02/25", "dddd")
End Sub

なお、書式記号「aaa」は日本語の曜日の先頭1文字を表す(月、火など)。書式記号「aaaa」は日本語の曜日を3文字で表す(月曜日など)。

Sub Test()
    Debug.Print Format("2019/02/25", "aaa")
    Debug.Print Format("2019/02/25", "aaaa")
End Sub

エキスパート試験対策としては、Format関数の問題に解き慣れておくことは重要だと思う。慣れていれば確実に正解できる。下記の試験対策ソフトでも多くの設問を作成してある。
【VBAエキスパート試験対応】Access VBA ベーシック 試験対策ソフト
VBAエキスパート試験に対応した試験対策ソフト(Access VBA ベーシック)を作成しました。もともとは電子書籍の形式で問題集を提供...

練習問題

次のプロシージャを実行したところメッセージボックスが表示された。その表示内容として正しいものはどれか。次の中から1つ選択しなさい。

Sub Test()
    MsgBox Format("2018/3/1", "yyyy/m/d")
End Sub

  1. 2018/3/1
  2. 2018/03/01
  3. 20180301
  4. 2018年3月1日

正解を見る

1

コメント