VBA  format関数について ~関数の解説と使用例~

VBA  format関数について ~関数の解説と使用例~

ENGINEER.CLUB編集部

ENGINEER.CLUB編集部

20220101」のような文字列を、「2022/01/01」のように変換したいと思ったことはありませんか?format関数では、「2022/01/01」や「令和411日」のように変換できます。ここでは、日付と時刻の表示設定をメインに解説していきます。


1.format関数について

1-1.format関数とは

format関数とは、指定した書式に従ってString型に変換する関数です。主に数字の文字列を、年月日や時分秒のように変換する際に使用します。

1-2.format関数の構文

Format([変換したい文字列], [指定する書式])
変換したい文字列:変換したい文字列を指定します。
指定する書式:以下の使用例で説明する書式を指定します。ここで説明した書式以外にも多くの書式が存在します。


2.format関数の使用例

2-1.基本的な使用例

2-1-1.定義済みの書式

定義済みの書式には下記の6種類があります。

書式名説明
Long Dateシステム日付の長い日付形式の書式に従って日付を表示します。
Medium Dateホストの言語バージョンで、中間の長さの日付書式を使用して日付を表示します。
Short Dateシステムの短い日付書式を使用して日付を表示します。
Long Timeシステムの長い時間形式を使用して時間を表示します。時間、分、秒が含まれます。
Medium Time時間と分を、12時間の書式と 午前/午後を使用して表示します。
Short Time24時間の形式を使用して時間を表示します。
Sub sample01()
    Dim val As String
    Dim str As String

    str = "2022/12/31 10:20:30"
    val = "General Date = " & Format(str, "General Date") & vbCrLf & _
          "Long Date    = " & Format(str, "Long Date") & vbCrLf & _
          "Medium Date  = " & Format(str, "Medium Date") & vbCrLf & _
          "Short Date   = " & Format(str, "Short Date") & vbCrLf & _
          "Long Time    = " & Format(str, "Long Time") & vbCrLf & _
          "Medium Time  = " & Format(str, "Medium Time") & vbCrLf & _
          "Short Time   = " & Format(str, "Short Time")
MsgBox val

End Sub

実行結果:

実行結果1

2-1-2.ユーザーが定義する場合の指定文字

通常は、複数の指定文字を組み合わせて使用します。日付を表示するのに、下記のように表現できます。

Sub sample02()
    Dim val As String
    Dim str As String

    str = "2022-1-2 1:02:03"
    val = Format(str, "yyyy/mm/dd") & vbCrLf & _
          Format(str, "yy/m/d") & vbCrLf & _
          Format(str, "dddddd") & vbCrLf & _
          Format(str, "ge/mm/dd") & vbCrLf & _
          Format(str, "ggee/m/dd") & vbCrLf & _
          Format(str, "gggee年mm月dd日")

MsgBox val

実行結果:

実行結果2

2-2.特殊な書き方をする場合

2-2-1.大文字/小文字に変換する場合

指定した文字列内のすべてを変換してしまうので、注意してください。

Sub sample04()
    Dim val As String
    Dim str As String

    val = "小文字→大文字 = " & Format("format", ">&&&&&&") & vbCrLf & _
          "大文字→小文字 = " & Format("FORMAT", "<&&&&&&") & vbCrLf & _
          "一部が大文字→すべて大文字 = " & Format("Format", ">&&&&&&")

    MsgBox val

End Sub

実行結果:

実行結果3

2-2-2.変換できない場合

変換できない文字列を指定した場合は、変換前の文字列が返されます。

Sub sample05()
    Dim val As String
    Dim str As String

    val = "存在しない日付 = " & Format("9999-99-99", "General Date") & vbCrLf & _
          "全角文字を小文字→大文字 = " & Format("format", ">&&&&&&")

    MsgBox val

End Sub

実行結果:

実行結果4


3.最後に

format関数の第2引数には、上記以外にも多くの指定文字があります。用途に合わせて、組み合わせたり調べたりして活用してください。

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

『技術力』と『人間力』を高め市場価値の高いエンジニアを目指しませんか?

私たちは「技術力」だけでなく「人間力」の向上をもって遙かに高い水準の成果を出し、関わる全ての人々に感動を与え続ける集団でありたいと考えています。

高い水準で仕事を進めていただくためにも、弊社では次のような環境を用意しています。

  • 定年までIT業界で働くためのスキル(技術力、人間力)が身につく支援
  • 「給与が上がらない」を解消する6ヶ月に1度の明確な人事評価制度
  • 平均残業時間17時間!毎週の稼動確認を徹底しているから実現できる働きやすい環境

現在、株式会社ボールドでは「キャリア採用」のエントリーを受付中です。

まずは以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。

コメント

公式アカウントLINE限定!ボールドの内定確率が分かる無料診断実施中
公式アカウントLINE限定!
ボールドの内定確率が分かる無料診断実施中