HELP

共通マクロ書式

処理中ファイル書式 | 状態取得書式 | グローバルデータ書式 | 日付書式 | 文字列書式

日付書式

NAME 日付取得
FORMAT {%DATE(日付書式,日時加減算式)}

日付書式には、日付を表す日付記号を記述します。日付記号は下記を参照してください。

日付記号 内容
yy 西暦の年を下 2 桁の数値で返します (00 ~ 99)。
yyyy 西暦の年を 4 桁の数値で返します (100 ~ 9999)。
M 月を表す数値を返します。1 桁の場合、先頭に 0 が付きません (1 ~ 12)。ただし、h や hhの直後に m を指定した場合、月ではなく分と解釈されます。
MM 月を表す数値を返します。1 桁の場合、先頭に 0 が付きます (01 ~ 12)。ただし、h や hhの直後に mm を指定した場合、月ではなく分と解釈されます。
d 日付を返します。1 桁の場合、先頭に 0 が付きません (1 ~ 31)。
dd 日付を返します。1 桁の場合、先頭に 0 が付きます (01 ~ 31)。
ddd 曜日を英語 (省略形) で返します (Sun ~ Sat)。
aaa 曜日を日本語 (省略形) で返します (日~土)。
aaaa 曜日を日本語で返します (日曜日~土曜日)。
g 年号の頭文字を返します (M、T、S、H、R)。
gg 年号の先頭の 1 文字を漢字で返します (明、大、昭、平、令)。
ggg 年号を返します (明治、大正、昭和、平成、令和)。
e 年号に基づく和暦の年を返します。1 桁の場合、先頭に 0 が付きません。
ee 年号に基づく和暦の年を 2 桁の数値を使って返します。1 桁の場合、先頭に 0 が付きます。
H 時間を返します。1 桁の場合、先頭に 0 が付きません (0 ~ 23)。
HH 時間を返します。1 桁の場合、先頭に 0 が付きます (00 ~ 23)。
m 分を返します。1 桁の場合、先頭に 0 が付きません (0 ~ 59)。
mm 分を返します。1 桁の場合、先頭に 0 が付きます (00 ~ 59)。
s 秒を返します。1 桁の場合、先頭に 0 が付きません (0 ~ 59)。
ss 秒を返します。1 桁の場合、先頭に 0 が付きます (00 ~ 59)。
fff ミリ秒を返します。先頭に 0 が付きません。
/ 日付の区切り記号

日時加減算式は省略可能です。記述すると日付の加減算が行えます。日時加減算式はXYZの3つのデータで構成されます。

Xの部分には、「-」又は「+」が記述できます。日時を減算する場合は「-」、加算する場合は「+」を記述します。

Yの部分には、数字を記述できます。Zで示される単位についての値になります。

Zの部分には、単位を表す記号を記述できます。

単位記号 内容
q 四半期
y
M
d
w
h
m
s

以下、実行した日時が 2019年5月1日 12時5分10秒351ミリ秒の場合

例1
「2019/05/01」に置換したい場合
{%DATE(yyyy/MM/dd)}
例2
「2019/5/1」に置換したい場合
{%DATE(yyyy/M/d)}
例3
「令和1年5月1日」に置換したい場合
{%DATE(ggge年M月d日)}
例4
「190501」に置換したい場合
{%DATE(yyMMdd)}
例5
「2019/05/01 12:05」に置換したい場合
{%DATE(yyyy/MM/dd HH:mm)}
例6
「2019/05/01 12:05:10 351」に置換したい場合
{%DATE(yyyy/MM/dd HH:mm:ss fff)}
例7
翌日の日付に置換したい場合
{%DATE(yyyy/MM/dd,+1d)}
例9
10時間前の日時に置換したい場合
{%DATE(yyyy/MM/dd HH:mm,-10h)}

文字列書式

NAME 空白削除
FORMAT {%TRIM(文字列)}

引数文字列の先頭と末尾の連続するスペースを削除します。

例1
マクロと結果
{%TRIM( abc )} -> "abc"
NAME 左部分文字列抽出
FORMAT {%LEFT(文字列,文字数)}

引数文字列の左から指定文字数分抽出します。

例1
マクロと結果
{%LEFT(abc,2)} -> "ab"
NAME 文字列抽出
FORMAT {%MID(文字列,開始位置,文字数)}

引数文字列の開始位置から文字数分抽出します。文字数は省略可能。省略した場合は、文字数指定無し、つまり開始位置以降、全てとなります。

例1
マクロと結果
{%MID(abc,2,1)} -> "b"
{%MID(abc,2)} -> "bc"
NAME 文字長取得
FORMAT {%LEN(文字列)}

マクロ書式の説明

例1
引数文字列の文字数を取得します。
{%LEN(abc)} -> "3"
NAME 大文字変換
FORMAT {%TO_UPPER(文字列)}

引数文字列を大文字に変換します。

例1
マクロと結果
{%TO_UPPER(abc)} -> "ABC"
NAME 小文字変換
FORMAT {%TO_LOWER(文字列)}

引数文字列を小文字に変換します。

例1
マクロと結果
{%TO_LOWER(ABC)} -> "abc"
NAME 文字列置換
FORMAT {%REPLACE(文字列,検索文字,置換文字)}

引数文字列から検索文字を検索し、置換文字に置換します。検索文字が複数見つかった場合も全て置換します。

例1
マクロと結果
{%REPLACE(abcde,c,x)} -> "abxde"
{%REPLACE(abcabc,bc,x)} -> "axax"
NAME 正規表現文字列置換
FORMAT {%REGEX_REPLACE(文字列,検索文字(正規表現),置換文字))}

引数文字列から検索文字(正規表現)を検索し、置換文字に置換します。検索文字が複数見つかった場合も全て置換します。

例1
マクロと結果
{%REGEX_REPLACE(ab123de,\d+,c)} -> "abcde"
NAME 文字列書式整形
FORMAT {%FORMAT(値,書式)}

値を書式に従って整形します。

書式の仕様については、日付に関して日付取得マクロと同じになります。内部的にはVB.NETのStrings.Format(名前空間:Microsoft.VisualBasic)を呼び出していますので、マイクロソフトのサイト等で、Fromatの仕様を参照してください。

例1
マクロと結果
{%FORMAT(5,000)} -> "005"
{%FORMAT(005,0)} -> "5"
{%FORMAT(2004/10/01,yyyy/MM/dd)} -> "2004/10/01"
{%FORMAT(2014/11/12 18:10:20,ggge年M月d日(aaa) HH:mm:ss)}
-> "平成26年11月12日(水) 18:10:20"

NAME 文字列複製
FORMAT {%STRING(文字列,繰り返し回数)}

引数の文字列を指定回数複製した文字列を返却します。繰り返し回数に負の値を設定した場合は空文字列を返却します。

例1
マクロと結果
{%STRING(0,3)} -> "000"
{%STRING(X,5)} -> "XXXXX"
{%STRING(ABC,2)} -> "ABCABC"
NAME 正規表現文字列抽出
FORMAT {%REGEX_CAPTURE(正規表現,文字列,オプション)}

正規表現で文字列の一部分を取得します。正規表現には必ず一組の()を記述してください。()の中の正規表現にマッチする文字が返却されます。

オプション文字の意味は以下の通りです。

オプション 内容
i 大文字、小文字を区別しない。
m 文字列を複数行として扱う。^と$が行頭と行末にマッチするようになります。

正規表現の詳細については参考書等を参照願います。(.NETの正規表現ライブラリを使用しています。)

例1
拡張子を除いたファイル名の末尾の数字を取得する場合
{%REGEX_CAPTURE((\d+)$,{%BASE_FILE_NAME})}

「Test001」の場合は、「001」が取得されます。
例2
フルパスファイル名からファイル名の一つ上のフォルダ名を取得する場合
{%REGEX_CAPTURE(([^\\\\]+)\\\\[^\\\\]+$,{%FILE_FULL_PATH})}

\のエスケープが、マクロと正規表現で働くので、2重にエスケープしています。\そのものを正規表現にしたい場合には、上記の例のように\\\\と記述します。
「D:\東京支店\第一営業部\請求書001.xdw」の場合、「第一営業部」が取得されます。
例3
NO(no,No,nOも含む)の後ろの数字を取得する場合
{%REGEX_CAPTURE(NO(\d+),{%BASE_FILE_NAME},i)}

ファイル名の中の「NO」の後ろの数字を取得します。iオプションを指定していますので、大文字小文字を区別せず、「no」や「No」でも対象となります。
「No001_Test」の場合、「001」が取得されます。