教えて!ExcelVBA!

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

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

f:id:m_kbou:20200529141104p:plain

 

 

構文

記述方法は以下の通りとなります。

Format([値], ”[書式記号]”)

[説明]:

データの表示書式を変換します。

[値] 任意の値(数値・文字・日付・時刻)を記述します。
[書式記号] [値]を変換する書式記号を記述します。
※「”」(ダブルクォーテーション)で囲みます。

書式記号については以下一覧を参考にして下さい。

■数値の書式記号

書式記号 内容 数値 変換後
##.##  桁があれば表示します。
無い時は表示しません。
123.456 123.46
0000.00 桁があれば表示します。
無い時は0を表示します。
123.456 0123.46
#,##0 3桁ごとの区切りで表示します。 123456789 123,456,789
0.0 小数点で表示します。 12.34 12.3
0.0% 数値を100倍して%記号で表示します。 0.12345 12.3%

■日付の書式記号

書式記号 内容 日付 変換後
yyyy 年を表示します。 2020/05/02 2020
yy 20
mm 月を表示します。 05
m 5
dd 日を表示します。 02
d 2
hh 時を表示します。 09:07:03 09
h 9
nn 分を表示します。 07
n 7
ss 秒を表示します。 03
s 3
yyyy/mm/dd 年月日を表示します。 2020/05/29 2020/05/29
yy/mm/dd 20/05/29
yyyymmdd 20200529
yymmdd 200529

[記述例]:

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")

 

使い方

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

数値の書式記号(#)

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

[プログラミング例]:

Sub サンプル()

  MsgBox Format(123.456, "##.##")

End Sub

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

f:id:m_kbou:20210427211459p:plain

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

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427211514p:plain

②結果は以下の様に表示されます。MsgBoxで変換された数値「123.46」が表示されます。

f:id:m_kbou:20210427211527p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

数値の書式記号(0)

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

[プログラミング例]:

Sub サンプル()

  MsgBox Format(123.456, "0000.00")

End Sub

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

f:id:m_kbou:20210427211658p:plain

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

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427211713p:plain

②結果は以下の様に表示されます。MsgBoxで変換された数値「0123.46」が表示されます。

f:id:m_kbou:20210427211725p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

数値の書式記号(,)

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

[プログラミング例]:

Sub サンプル()

  MsgBox Format(123456789, "#,##0")

End Sub

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

f:id:m_kbou:20210427211851p:plain

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

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427211906p:plain

②結果は以下の様に表示されます。MsgBoxで変換された数値「123,456,789」が表示されます。

f:id:m_kbou:20210427211919p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

数値の書式記号(.)

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

[プログラミング例]:

Sub サンプル()

  MsgBox Format(12.34, "0.0")

End Sub

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

f:id:m_kbou:20210427212033p:plain

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

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427212048p:plain

②結果は以下の様に表示されます。MsgBoxで変換された数値「12.3」が表示されます。

f:id:m_kbou:20210427212101p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

数値の書式記号(%)

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

[プログラミング例]:

Sub サンプル()

  MsgBox Format(0.12345, "0.0%")

End Sub

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

f:id:m_kbou:20210427212258p:plain

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

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427212311p:plain

②結果は以下の様に表示されます。MsgBoxで変換された数値「12.3%」が表示されます。

f:id:m_kbou:20210427212323p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

日付の書式記号(yyyy)

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

[プログラミング例]:

Sub サンプル()

  MsgBox Format(Now, "yyyy")

End Sub

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

f:id:m_kbou:20210427212428p:plain

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

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427212442p:plain

②結果は以下の様に表示されます。本日が2021/04/24であるため、MsgBoxで変換された年「2021」が表示されます。(※西暦年4桁が表示されます。)

f:id:m_kbou:20210427212454p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

日付の書式記号(yy)

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

[プログラミング例]:

Sub サンプル()

  MsgBox Format(Now, "yy")

End Sub

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

f:id:m_kbou:20210427212557p:plain

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

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427212610p:plain

②結果は以下の様に表示されます。本日が2021/04/24であるため、MsgBoxで変換された年「21」が表示されます。(※西暦年下2桁が表示されます。)

f:id:m_kbou:20210427212625p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

日付の書式記号(mm)

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

[プログラミング例]:

Sub サンプル()

  MsgBox Format(Now, "mm")

End Sub

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

f:id:m_kbou:20210427212752p:plain

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

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427212808p:plain

②結果は以下の様に表示されます。本日が2021/04/24であるため、MsgBoxで変換された月「04」が表示されます。(※月が1桁の場合、0付の2桁で表示されます。)

f:id:m_kbou:20210427212820p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

日付の書式記号(m)

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

[プログラミング例]:

Sub サンプル()

  MsgBox Format(Now, "m")

End Sub

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

f:id:m_kbou:20210427213104p:plain

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

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427213117p:plain

②結果は以下の様に表示されます。本日が2021/04/24であるため、MsgBoxで変換された月「4」が表示されます。

f:id:m_kbou:20210427213128p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

 

drive.google.com

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

 

日付の書式記号(dd)

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

[プログラミング例]:

Sub サンプル()

  MsgBox Format(Now, "dd")

End Sub

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

f:id:m_kbou:20210427213317p:plain

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

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427213332p:plain

②結果は以下の様に表示されます。本日が2021/04/24であるため、MsgBoxで変換された日「24」が表示されます。(※日が1桁の場合、0付の2桁で表示で表示されます。)

f:id:m_kbou:20210427213351p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

日付の書式記号(d)

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

[プログラミング例]:

Sub サンプル()

  MsgBox Format(Now, "d")

End Sub

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

f:id:m_kbou:20210427213517p:plain

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

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427213528p:plain

②結果は以下の様に表示されます。本日が2021/04/24であるため、MsgBoxで変換された日「24」が表示されます。

f:id:m_kbou:20210427213539p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

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

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

[プログラミング例]:

Sub サンプル()

  MsgBox Format(Now, "yyyy/mm/dd")

End Sub

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

f:id:m_kbou:20210427214008p:plain

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

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427214023p:plain

②結果は以下の様に表示されます。本日が2021/04/25であるため、MsgBoxで変換された年月日「2021/04/25」が表示されます。

f:id:m_kbou:20210427214034p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

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

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

[プログラミング例]:

Sub サンプル()

  MsgBox Format(Now, "yy/mm/dd")

End Sub

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

f:id:m_kbou:20210427214157p:plain

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

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427214212p:plain

②結果は以下の様に表示されます。本日が2021/04/25であるため、MsgBoxで変換された年月日「21/04/25」が表示されます。

f:id:m_kbou:20210427214222p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

日付の書式記号(yyyymmdd)

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

[プログラミング例]:

Sub サンプル()

  MsgBox Format(Now, "yyyymmdd")

End Sub

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

f:id:m_kbou:20210427214531p:plain

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

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427214547p:plain

②結果は以下の様に表示されます。本日が2021/04/25であるため、MsgBoxで変換された年月日「20210425」が表示されます。

f:id:m_kbou:20210427214558p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

日付の書式記号(yymmdd)

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

[プログラミング例]:

Sub サンプル()

  MsgBox Format(Now, "yymmdd")

End Sub

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

f:id:m_kbou:20210427214716p:plain

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

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427214731p:plain

②結果は以下の様に表示されます。本日が2021/04/25であるため、MsgBoxで変換された年月日「210425」が表示されます。

f:id:m_kbou:20210427214751p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

プログラミング(サンプル)

プログラミング事例を紹介します。

www.osiete-excelvba.work

 

おわりに

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