HELP

共通マクロ書式

処理中ファイル書式 | 状態・連番取得書式 | グローバルデータ書式 | 日付書式 | 文字列書式 | 制御書式 | その他の書式

文字列書式

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」が取得されます。

制御書式

NAME 条件式
FORMAT {%IF(条件,真の値,偽の値)}

条件を判定し、条件に合致する場合は真の値を返却し、合致しない場合は偽の値を返却します。条件の比較記号は、>,<,=,>=,<=,!=が使用可能です。条件の左辺、右辺が両方とも数字の場合、数値としての比較を行います。それ以外は文字比較になります。条件や、真の値、偽の値には、各種書式を入れ子で記述することが可能です。

カンマそのものを条件や値に記述したい場合は、「|,」と記述します。

比較式の左辺と右辺が両方とも数値の場合は、比較を数値として行います。

例1
現在の日が20日より後の場合、翌月を返却し、20日以前の場合は、当月を返却する場合
{%IF({%DATE(dd)}>20,{%DATE(yyMM,+1M)},{%DATE(yyMM)})}
現在の日付が2004年2月20日の場合、0402となります。
現在の日付が2004年2月21日の場合、0403となります。
NAME 繰り返し式
FORMAT {%LOOP 名前 繰り返し回数(文字列)}

文字列を繰り返し回数分展開します。名前には任意の文字列を指定します。文字列には、改行が含まれても問題ありません。

文字列には、以下の特殊キーワードが使用できます。

[L_IDX(名前)]

L_IDXキーワードは、LOOPマクロの引数文字列中に使用すると、ループの展開時に、インデックスに置換します。名前には、LOOPマクロで指定した名前と同じ名前を指定します。

LOOPマクロは実行時に指定された回数分展開しますので、LOOP内の文字列、回数によっては展開される文字列が大量になります。
LOOPマクロは展開後のデータが少量になるような処理で使用するようお願いします。

例1
マクロと結果
{%LOOP L1 3(
  {%MSGBOX([L_IDX(L1)])}
)}

展開される内容 {%MSGBOX(1)} {%MSGBOX(2)} {%MSGBOX(3)}