教えて!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関数の使い方について説明しました。データの書式変換はプログラミン中で頻繁に行われます。是非覚えておいて下さい。