教えて!ExcelVBA!

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

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

f:id:m_kbou:20200529141104p:plain

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

 

使い方

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

数値の書式記号(#)

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

[プログラミング例]:

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