Format関数
Format関数は、VBA関数の中で文字列操作関数に分類される関数です。
目次
Format関数とは
Format関数は、式を指定した書式に変換し、その文字列を示すバリアント型 (内部処理形式 String の Variant) の値を返します。
構文 | Format(expression[, format[, firstdayofweek[, firstweekofyear]]]) | |
---|---|---|
引数 | 省略 | 説明 |
expression | × | 任意の式を指定します。引数 expression に指定したデータは、引数 format の書式に従って変換されます。 |
format | ● | 定義済み書式または表示書式指定文字を指定します。 |
firstdayofweek | ● | 週の 1 日目を指定する定数を指定します。 |
firstweekofyear | ● | 年の第 1 週を指定する定数を指定します。 |
引数firstdayofweek
定数 | 値 | 説明 |
---|---|---|
vbUseSystem | 0 | NLS API の設定値を使います。 |
vbSunday | 1 | (既定値) 日曜 |
vbMonday | 2 | 月曜 |
vbTuesday | 3 | 火曜 |
vbWednesday | 4 | 水曜 |
vbThursday | 5 | 木曜 |
vbFriday | 6 | 金曜 |
vbSaturday | 7 | 土曜 |
引数firstweekofyear
定数 | 値 | 説明 |
---|---|---|
vbUseSystem | 0 | NLS API の設定値を使います。 |
vbFirstJan1 | 1 | (既定値) 1 月 1 日を含む週から始まります。 |
vbFirstFourDays | 2 | 年の 4 日以上が含まれる最初の週から始まります。 |
vbFirstFullWeek | 3 | 年のうち、7 日が含まれる最初の週から始まります。 |
対象形式
対象形式 | 書式の設定方法 |
---|---|
数値 | 定義済み数値書式、または数値表示書式指定文字を使用します。 |
日付と時刻 | 定義済み日付/時刻書式、または日付/時刻表示書式指定文字を使用します。 |
日付と時刻のシリアル値 | 日付や時刻の形式または数値形式を使用します。 |
文字列 | 文字列表示書式指定文字を使用します。 |
引数 format を省略して数値に書式を設定しようとすると、Format 関数は Str 関数を呼び出した場合と同様の結果を返します。Format 関数の返す値は国別情報に対応しています。ただし、Str 関数を使用して正の数値を文字列に変換した場合、符号用のスペースが先頭に付加されますが、Format 関数を使用した場合、このスペースは付加されません。
ローカライズされていない数値文字列を書式設定する場合、目的の書式設定を確実に行うことができるように数値表示書式指定文字を使用するようにしてください。
Calendar プロパティの設定がグレゴリオ暦の場合で、引数 format で日付書式を使用するように指定した場合、引数 expression にはグレゴリオ暦で表される日付を指定する必要があります。Calendar プロパティの設定が回教暦の場合で、引数 format で日付書式を使用するように指定した場合、引数 expression には回教暦で表される日付を指定する必要があります。
Calendar プロパティの設定がグレゴリオ暦の場合、引数 format で指定する表示書式指定文字は、通常の場合と同じ意味になります。Calendar プロパティの設定が回教暦の場合、引数 format で指定する表示書式指定文字 (たとえば、dddd、mmmm、yyyy) は、グレゴリオ暦の場合と同じ意味になりますが、設定される対象は回教暦のカレンダーになります。また、表示書式指定文字自体は英語のままとなりますが、表示結果は表示書式指定文字に応じて適切なアラビア語が使用されます。さらに、表示書式指定文字で表される値の範囲が、次の表に示すようにグレゴリオ暦の場合と比べて変わる場合があります。
表示書式指定文字
表示書式指定文字 | 値の範囲 |
---|---|
d | 1 ~ 30 |
dd | 1 ~ 30 |
ww | 1 ~ 51 |
mmm | 完全な月の名前を表示します。回教暦の月の名前には、省略形式がありません。 |
y | 1 ~ 355 |
y | 100 ~ 9666 |
Format関数のサンプルコード
次の例は、Format 関数を使って、定義済み書式やユーザー定義の書式に従って、各種の値を変換します。日付の区切り記号 (/)、時刻の区切り記号 (:)、AM/PM リテラルの変換後の書式は、実行時のシステムの国別情報の設定によって異なります。開発環境で日付と時刻が表示されるときには、コード記述時の国別情報で指定されている日付と時刻の短い形式が使われます。実行時に日付と時刻が表示されるときは、オペレーティング システムの国別情報で指定されている日付と時刻の短い形式が使われます。したがって、実行時に表示される形式は、コード記述時の国別情報の設定とは異なる場合があります。次の例では、国別情報で [英語/アメリカ] が設定されていることを前提としています。
変数 MyTime と変数 MyDate を開発環境で表示すると、現在のシステムで設定されている日付と時刻の短い形式が使われます。
Sub sample()
Dim MyTime, MyDate, MyStr
MyTime = #17:04:23#
MyDate = #January 27, 1993#
' システムで定義されている時刻の長い形式を使って、システムの現在の時刻を返します。
MyStr = Format(Time, "Long Time")
' システムで定義されている日付の長い形式を使って、システムの現在の日付を返します。
MyStr = Format(Date, "Long Date")
MyStr = Format(MyTime, "h:m:s") ' "17:4:23" を返します。
MyStr = Format(MyTime, "hh:mm:ss AMPM") ' "05:04:23 PM" を返します。
MyStr = Format(MyDate, "dddd, mmm d yyyy") ' "Wednesday,Jan 27 1993" を返します。
' 書式を指定しない場合は文字列を返します。
MyStr = Format(23) ' "23" を返します。
' ユーザー定義の書式。
MyStr = Format(5459.4, "##,##0.00") ' "5,459.40" を返します。
MyStr = Format(334.9, "###0.00") ' "334.90" を返します。
MyStr = Format(5, "0.00%") ' "500.00%" を返します。
MyStr = Format("HELLO", "<") ' "hello" を返します。
MyStr = Format("This is it", ">") ' "THIS IS IT" を返します。
End Sub
実行結果
解説
文字列操作関数一覧
関数名 | 内容 |
---|---|
Asc | 文字列内にある最初の文字の文字コードを返します。 |
AscB | 文字列内にある最初のバイトコードを返します。 |
AscW | 文字列内にあるISOコードの文字を返します。 |
Chr | 指定したコードに対応する文字を返します。 |
ChrB | 指定したコードに対応するバイトデータを返します。 |
ChrW | 指定したコードに対応するISOの文字を返します。 |
Format | 式を指定した書式に変換します。 |
Hex | 指定した文字列を16進数で返します。 |
InStr | 検索対象文字列の指定した位置から指定した文字列を検索し、最初に見つかった文字位置を返します。 |
InstrB | 検索対象文字列の指定したバイト位置から指定した文字列を検索し、最初に見つかったバイト位置を返します。 |
LCase | 大文字のアルファベットを小文字に変換します。 |
Left | 文字列の左端から指定した文字数分の文字列を抽出します。 |
LeftB | 文字列の左端から指定したバイト数分の文字列を抽出します。 |
Len | 文字列の文字数を返します。 |
LenB | 文字数のバイト数を返します。 |
Ltrim | 文字列の先頭のスペースを削除した文字列を抽出します。 |
Mid | 文字列の指定した位置から指定した文字数分を抽出します。 |
MidB | 文字列の指定したバイト位置から指定したバイト数分を抽出します。 |
Oct | 指定した文字列を8進数で返します。 |
Right | 文字列の右端から指定した文字数分の文字列を抽出します。 |
RightB | 文字列の右端から指定したバイト数分の文字列を抽出します。 |
Rtrim | 文字列の末尾のスペースを削除した文字列を抽出します。 |
Space | 指定した数のスペースを返します。 |
Str | 数式の値を文字列に返します。 |
StrComp | 文字列を比較した結果を返します。 |
StrConv | 文字列を変換した結果を返します。 |
String | 指定した文字コードに対応する文字を指定した文字数だけ並べた文字列を返します。 |
Trim | 文字列の先頭と末尾のスペースを削除した文字列を抽出します。 |
Ucase | 小文字のアルファベットを大文字に変換します。 |
Val | 文字列を数値に変換します。 |