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