教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について説明していきます。

【ExcelVBA 関数】Format関数でデータの表示書式を変換するにはどうすればいいの?使い方を教えて!

       f:id:m_kbou:20200529141104p:plain

Format関数はデータの表示書式を変換します。Format関数を使用すれば、数値や文字列の表示書式だけでなく、日付や時刻の表示書式も変換する事ができます。使い方について説明します。

 

【目次】

 

構文

Format関数の記述方法は、以下の通りとなります。

=======================================================================

Format[変換する値], [書式記号]

=======================================================================

[説明]:

[変換する値]には数値や文字列、日付や時刻を表す文字列を記述します。[書式記号]には[変換する値]に記述された内容を変換して表示する記号を記述します。[書式記号]は「”」(ダブルクォーテーション)で囲みます。[書式記号]に記述できる内容を以下一覧に纏めておきますので参考にして下さい。内容を纏めると、「[変換する値]を[書式記号]で指定した形式に変換して下さい。」との意味になります。

f:id:m_kbou:20200530061533p:plain

[記述例]:

Format(123.456, "##.##")
Format(123.456, "0000.00")
Format(123456789, "#,##0")
Format(12.34, "0.0")
Format(0.12345, "0.0%")
Format(Now, "yyyy")
Format(Now, "yy")
Format(Now, "mm")
Format(Now, "m")
Format(Now, "dd")
Format(Now, "d")
Format(Now, "yyyy/mm/dd")
Format(Now, "yy/mm/dd")
Format(Now, "yyyymmdd")
Format(Now, "yymmdd")

 

使い方

使い方について、具体的に説明していきます。

数値の書式記号(#)

数値の書式記号(#)について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox Format(123.456, "##.##")
End Sub

-------------------------------------------------

内容は、「数値:123.456を指定した書式(##.##)に変換し、MsgBoxで表示して下さい。」との意味になります。

[実行例]:

変換された数値:123.46が表示されます。

f:id:m_kbou:20200529141907p:plain

数値の書式記号(#)についての説明は以上です。

 

数値の書式記号(0)

数値の書式記号(0)について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox Format(123.456, "0000.00")
End Sub

-------------------------------------------------

内容は、「数値:123.456を指定した書式(0000.00)に変換し、MsgBoxで表示して下さい。」との意味になります。

[実行例]:

変換された数値:0123.46が表示されます。

f:id:m_kbou:20200529143126p:plain

数値の書式記号(0)についての説明は以上です。

 

数値の書式記号(,)

数値の書式記号(,)について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox Format(123456789, "#,##0")
End Sub

-------------------------------------------------

内容は、「数値:123456789を指定した書式(#,##0)に変換し、MsgBoxで表示して下さい。」との意味になります。

[実行例]:

変換された数値:123,456,789が表示されます。

f:id:m_kbou:20200529143512p:plain

数値の書式記号(,)についての説明は以上です。

 

数値の書式記号(.)

数値の書式記号(.)について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox Format(12.34, "0.0")
End Sub

-------------------------------------------------

内容は、「数値:12.34を指定した書式(0.0)に変換し、MsgBoxで表示して下さい。」との意味になります。

[実行例]:

変換された数値:12.3が表示されます。

f:id:m_kbou:20200529143801p:plain

数値の書式記号(.)についての説明は以上です。

 

数値の書式記号(%)

数値の書式記号(%)について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox Format(0.12345, "0.0%")
End Sub

-------------------------------------------------

内容は、「数値:0.12345を指定した書式(0.0%)に変換し、MsgBoxで表示して下さい。」との意味になります。

[実行例]:

変換された数値:12.3%が表示されます。

f:id:m_kbou:20200529144504p:plain

数値の書式記号(%)についての説明は以上です。

 

日付の書式記号(yyyy)

日付の書式記号(yyyy)について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox Format(Now, "yyyy")
End Sub

-------------------------------------------------

内容は、「現在日付(2020年05月02日)を指定した書式(yyyy)に変換し、MsgBoxで表示して下さい。」との意味になります。

[実行例]:

変換された年:2020が表示されます。(西暦年4桁が表示)

f:id:m_kbou:20200529144919p:plain

日付の書式記号(yyyy)についての説明は以上です。

 

日付の書式記号(yy)

日付の書式記号(yy)について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox Format(Now, "yy")
End Sub

-------------------------------------------------

内容は、「現在日付(2020年05月02日)を指定した書式(yy)に変換し、MsgBoxで表示して下さい。」との意味になります。

[実行例]:

変換された年:20が表示されます。(西暦年下2桁が表示)

f:id:m_kbou:20200529145216p:plain

日付の書式記号(yy)についての説明は以上です。

 

日付の書式記号(mm)

日付の書式記号(mm)について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox Format(Now, "mm")
End Sub

-------------------------------------------------

内容は、「現在日付(2020年05月02日)を指定した書式(mm)に変換し、MsgBoxで表示して下さい。」との意味になります。

[実行例]:

変換された月:05が表示されます。(月が1桁の場合、0付の2桁で表示)

f:id:m_kbou:20200529145324p:plain

日付の書式記号(mm)についての説明は以上です。

 

日付の書式記号(m)

日付の書式記号(m)について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox Format(Now, "m")
End Sub

-------------------------------------------------

内容は、「現在日付(2020年05月02日)を指定した書式(m)に変換し、MsgBoxで表示して下さい。」との意味になります。

[実行例]:

変換された月:5が表示されます。

f:id:m_kbou:20200529145616p:plain

日付の書式記号(m)についての説明は以上です。

 

日付の書式記号(dd)

日付の書式記号(dd)について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox Format(Now, "dd")
End Sub

-------------------------------------------------

内容は、「現在日付(2020年05月02日)を指定した書式(dd)に変換し、MsgBoxで表示して下さい。」との意味になります。

[実行例]:

変換された日:02が表示されます。(日が1桁の場合、0付の2桁で表示)

f:id:m_kbou:20200529145757p:plain

日付の書式記号(dd)についての説明は以上です。

 

日付の書式記号(d)

日付の書式記号(d)について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox Format(Now, "d")
End Sub

-------------------------------------------------

内容は、「現在日付(2020年05月02日)を指定した書式(d)に変換し、MsgBoxで表示して下さい。」との意味になります。

[実行例]:

変換された日:2が表示されます

f:id:m_kbou:20200529150252p:plain

日付の書式記号(d)についての説明は以上です。

 

日付の書式記号(yyyy/mm/dd)

日付の書式記号(yyyy/mm/dd)について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox Format(Now, "yyyy/mm/dd")
End Sub

-------------------------------------------------

内容は、「現在日付(2020年05月29日)を指定した書式(yyyy/mm/dd)に変換し、MsgBoxで表示して下さい。」との意味になります。

[実行例]:

変換された年月日:2020/05/29が表示されます

f:id:m_kbou:20200529150703p:plain

日付の書式記号(yyyy/mm/dd)についての説明は以上です。

 

日付の書式記号(yy/mm/dd)

日付の書式記号(yy/mm/dd)について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox Format(Now, "yy/mm/dd")
End Sub

-------------------------------------------------

内容は、「現在日付(2020年05月29日)を指定した書式(yy/mm/dd)に変換し、MsgBoxで表示して下さい。」との意味になります。

[実行例]:

変換された年月日:20/05/29が表示されます

f:id:m_kbou:20200529151521p:plain

日付の書式記号(yy/mm/dd)についての説明は以上です。

 

日付の書式記号(yyyymmdd)

日付の書式記号(yyyymmdd)について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox Format(Now, "yyyymmdd")
End Sub

-------------------------------------------------

内容は、「現在日付(2020年05月29日)を指定した書式(yyyymmdd)に変換し、MsgBoxで表示して下さい。」との意味になります。

[実行例]:

変換された年月日:20200529が表示されます

f:id:m_kbou:20200529151722p:plain

日付の書式記号(yyyymmdd)についての説明は以上です。

 

日付の書式記号(yymmdd)

日付の書式記号(yymmdd)について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox Format(Now, "yymmdd")
End Sub

-------------------------------------------------

内容は、「現在日付(2020年05月29日)を指定した書式(yymmdd)に変換し、MsgBoxで表示して下さい。」との意味になります。

[実行例]:

変換された年月日:200529が表示されます

f:id:m_kbou:20200529152044p:plain

日付の書式記号(yymmdd)についての説明は以上です。

 

おわりに

今回はFormat関数の使い方について説明しました。データの書式変換はプログラミン中で頻繁に行われます。是非覚えておいて下さい。