Format(expression[,format[,firstdayofweek[,firstweekofyear]]])
expression:フォーマットを設定するデータを設定
format :(省略可能)任意のフォーマットを指定
'--------------------------------------------------------------
'下記の引数については使用頻度が低いので特に書かない
'--------------------------------------------------------------
firstdayofweek :週の始まりの曜日を設定
firstweekofyear:年度の第一週を設定
以下format引数の説明
書式設定文字(数値)
| 説明 | |
|---|---|
| 0 | 数値に対して、0の数分ゼロ埋めを行う |
| # | 数値に対して、存在しない場合は表示をしない |
| . | 小数点の表示設定 |
| % | 数値をパーセント表示に変換 |
| \ | 書式設定文字等の特殊な文字の前につけることで、そのまま表示をする |
下記コード中に出てくるバックスラッシュは\マークとして置き換えて読んでください。
Option Explicit Sub formatTest() Dim testData As String Dim testData2 As String Dim testData3 As String Dim MsgString As String testData = "19900504" testData2 = "1990.0504" testData3 = "0.199" MsgString = "" MsgString = MsgString & Format(testData, "0000000000") & vbCrLf MsgString = MsgString & Format(testData, "##########") & vbCrLf MsgString = MsgString & Format(testData2, "0.000") & vbCrLf MsgString = MsgString & Format(testData2, "0.000000") & vbCrLf MsgString = MsgString & Format(testData3, "0%") & vbCrLf MsgString = MsgString & Format(testData3, "0.00%") & vbCrLf MsgString = MsgString & Format(testData, "0\\") & vbCrLf Debug.Print MsgString End Sub

書式設定文字(文字)
| 説明 | |
|---|---|
| @ | 文字列に対して、@の数分半角スペース埋めを行う(右づめ) |
| & | 文字列に対して、存在しない場合は表示をしない |
| ! | 文字を左詰めで表記 |
| 英語の文字を全て小文字にする | |
| > | 英語の文字を全て大文字にする |
Option Explicit Sub formatTest() Dim testData As String Dim MsgString As String testData = "TestData" MsgString = "" MsgString = MsgString & "[" & Format(testData, "@@@@@@@@@@") & "]" & vbCrLf MsgString = MsgString & "[" & Format(testData, "&&&&&&&&&&") & "]" & vbCrLf MsgString = MsgString & "[" & Format(testData, "!@@@@@@@@@@") & "]" & vbCrLf MsgString = MsgString & "[" & Format(testData, "<@@@@@@@@@@") & "]" & vbCrLf MsgString = MsgString & "[" & Format(testData, ">@@@@@@@@@@") & "]" & vbCrLf Debug.Print MsgString End Sub

書式設定文字(年)
| 説明 | |
|---|---|
| g | 和暦の年号を(M T S H)で表記 |
| gg | 和暦の年号を(明 大 昭 平)で表記 |
| ggg | 和暦の年号を(明治 大正 昭和 平成)で表記 |
| e | 和暦の年を表記 |
| ee | 和暦の年を表記(1桁の場合、先頭をゼロ埋めする) |
| yy | 西暦の年を下二桁表記 |
| yyyy | 西暦の年を表記 |
Option Explicit Sub formatTest2() Dim testData As String Dim MsgString As String testData = "1990/05/04" MsgString = "" MsgString = MsgString & Format(testData, "g") & vbCrLf MsgString = MsgString & Format(testData, "gg") & vbCrLf MsgString = MsgString & Format(testData, "ggg") & vbCrLf MsgString = MsgString & Format(testData, "e") & vbCrLf MsgString = MsgString & Format(testData, "ee") & vbCrLf MsgString = MsgString & Format(testData, "yy") & vbCrLf MsgString = MsgString & Format(testData, "yyyy") & vbCrLf Debug.Print MsgString End Sub

書式設定文字(月)
| 説明 | |
|---|---|
| m | 月を表記 |
| mm | 月を表記(1桁の場合、先頭をゼロ埋めする) |
| mmm | 月を英語の省略形で表記 |
| mmmm | 月を英語で表記 |
| oooo | 月を日本語で表記 |
Option Explicit Sub formatTest3() Dim testData As String Dim MsgString As String testData = "1990/01/01" MsgString = "" MsgString = MsgString & Format(testData, "m") & vbCrLf MsgString = MsgString & Format(testData, "mm") & vbCrLf MsgString = MsgString & Format(testData, "mmm") & vbCrLf MsgString = MsgString & Format(testData, "mmmm") & vbCrLf MsgString = MsgString & Format(testData, "oooo") & vbCrLf Debug.Print MsgString End Sub

書式設定文字(日付)
| 説明 | |
|---|---|
| d | 日付を表記 |
| dd | 日付を表記(1桁の場合、先頭をゼロ埋めする) |
| ddd | 日付を英語の省略形で表記 |
| dddd | 日付を英語で表記 |
| aaa | 日付を日本語の省略形で表記 |
| aaaa | 日付を日本語で表記 |
Option Explicit Sub formatTest4() Dim testData As String Dim MsgString As String testData = "1990/01/01" MsgString = "" MsgString = MsgString & Format(testData, "d") & vbCrLf MsgString = MsgString & Format(testData, "dd") & vbCrLf MsgString = MsgString & Format(testData, "ddd") & vbCrLf MsgString = MsgString & Format(testData, "dddd") & vbCrLf MsgString = MsgString & Format(testData, "aaa") & vbCrLf MsgString = MsgString & Format(testData, "aaaa") & vbCrLf Debug.Print MsgString End Sub

書式設定文字(時刻)
| 説明 | |
|---|---|
| h | 時間を表記 |
| hh | 時間を表記(1桁の場合、先頭をゼロ埋めする) |
| n | 分を表記 |
| nn | 分を表記(1桁の場合、先頭をゼロ埋めする) |
| s | 秒を表記 |
| ss | 秒を表記(1桁の場合、先頭をゼロ埋めする) |
| AM/PM | 午前、午後を英語で表記(大文字) |
| am/pm | 午前、午後を英語で表記(小文字) |
Option Explicit Sub formatTest5() Dim testData As Date Dim MsgString As String testData = "2014/08/01 09:05:01 " Debug.Print testData MsgString = "" MsgString = MsgString & Format(testData, "h") & vbCrLf MsgString = MsgString & Format(testData, "hh") & vbCrLf MsgString = MsgString & Format(testData, "n") & vbCrLf MsgString = MsgString & Format(testData, "nn") & vbCrLf MsgString = MsgString & Format(testData, "s") & vbCrLf MsgString = MsgString & Format(testData, "ss") & vbCrLf MsgString = MsgString & Format(testData, "AM/PM") & vbCrLf MsgString = MsgString & Format(testData, "am/pm") & vbCrLf Debug.Print MsgString End Sub
