引数文字列の先頭と末尾の連続するスペースを削除します。
{%TRIM( abc )} -> "abc"
引数文字列の左から指定文字数分抽出します。
{%LEFT(abc,2)} -> "ab"
引数文字列の右から指定文字数分抽出します。
{%RIGHT(abc,2)} -> "bc"
引数文字列の開始位置から文字数分抽出します。文字数は省略可能。省略した場合は、文字数指定無し、つまり開始位置以降、全てとなります。
{%MID(abc,2,1)} -> "b" {%MID(abc,2)} -> "bc"
マクロ書式の説明
{%LEN(abc)} -> "3"
引数文字列を大文字に変換します。
{%TO_UPPER(abc)} -> "ABC"
引数文字列を小文字に変換します。
{%TO_LOWER(ABC)} -> "abc"
引数文字列から検索文字を検索し、置換文字に置換します。検索文字が複数見つかった場合も全て置換します。
{%REPLACE(abcde,c,x)} -> "abxde" {%REPLACE(abcabc,bc,x)} -> "axax"
引数文字列から検索文字(正規表現)を検索し、置換文字に置換します。検索文字が複数見つかった場合も全て置換します。
{%REGEX_REPLACE(ab123de,\d+,c)} -> "abcde"
値を書式に従って整形します。
書式の仕様については、日付に関して日付取得マクロと同じになります。内部的にはVB.NETのStrings.Format(名前空間:Microsoft.VisualBasic)を呼び出していますので、マイクロソフトのサイト等で、Fromatの仕様を参照してください。
{%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"
引数の文字列を指定回数複製した文字列を返却します。繰り返し回数に負の値を設定した場合は空文字列を返却します。
{%STRING(0,3)} -> "000" {%STRING(X,5)} -> "XXXXX" {%STRING(ABC,2)} -> "ABCABC"
正規表現で文字列の一部分を取得します。正規表現には必ず一組の()を記述してください。()の中の正規表現にマッチする文字が返却されます。
オプション文字の意味は以下の通りです。
オプション | 内容 |
i | 大文字、小文字を区別しない。 |
m | 文字列を複数行として扱う。^と$が行頭と行末にマッチするようになります。 |
正規表現の詳細については参考書等を参照願います。(.NETの正規表現ライブラリを使用しています。)
{%REGEX_CAPTURE((\d+)$,{%BASE_FILE_NAME})} 「Test001」の場合は、「001」が取得されます。
{%REGEX_CAPTURE(([^\\\\]+)\\\\[^\\\\]+$,{%FILE_FULL_PATH})}
\のエスケープが、マクロと正規表現で働くので、2重にエスケープしています。\そのものを正規表現にしたい場合には、上記の例のように\\\\と記述します。
「D:\東京支店\第一営業部\請求書001.xdw」の場合、「第一営業部」が取得されます。
{%REGEX_CAPTURE(NO(\d+),{%BASE_FILE_NAME},i)}
ファイル名の中の「NO」の後ろの数字を取得します。iオプションを指定していますので、大文字小文字を区別せず、「no」や「No」でも対象となります。
「No001_Test」の場合、「001」が取得されます。
条件を判定し、条件に合致する場合は真の値を返却し、合致しない場合は偽の値を返却します。条件の比較記号は、>,<,=,>=,<=,!=が使用可能です。条件の左辺、右辺が両方とも数字の場合、数値としての比較を行います。それ以外は文字比較になります。条件や、真の値、偽の値には、各種書式を入れ子で記述することが可能です。
カンマそのものを条件や値に記述したい場合は、「|,」と記述します。
比較式の左辺と右辺が両方とも数値の場合は、比較を数値として行います。
{%IF({%DATE(dd)}>20,{%DATE(yyMM,+1M)},{%DATE(yyMM)})} 現在の日付が2004年2月20日の場合、0402となります。 現在の日付が2004年2月21日の場合、0403となります。
文字列を繰り返し回数分展開します。名前には任意の文字列を指定します。文字列には、改行が含まれても問題ありません。
文字列には、以下の特殊キーワードが使用できます。
[L_IDX(名前)]
L_IDXキーワードは、LOOPマクロの引数文字列中に使用すると、ループの展開時に、インデックスに置換します。名前には、LOOPマクロで指定した名前と同じ名前を指定します。
LOOPマクロは実行時に指定された回数分展開しますので、LOOP内の文字列、回数によっては展開される文字列が大量になります。
LOOPマクロは展開後のデータが少量になるような処理で使用するようお願いします。
{%LOOP L1 3( {%MSGBOX([L_IDX(L1)])} )}
展開される内容 {%MSGBOX(1)} {%MSGBOX(2)} {%MSGBOX(3)}