処理中ファイル書式 | 状態取得書式 | ユーザーデータ書式 | グローバルデータ書式 | 日付書式 | 文字列書式 | 数学書式 | 制御書式 | ファイルシステム書式 | テキストファイル書式 | データベース書式 | プロセス書式 | Web書式 | DocuWorks書式 | DocuWorks書式 (アノテーション関連) | 画像処理書式 | Excel書式 | その他の書式
日付書式には、日付を表す日付記号を記述します。日付記号は下記を参照してください。
日付記号 | 内容 |
---|---|
yy | 西暦の年を下 2 桁の数値で返します (00 ~ 99)。 |
yyyy | 西暦の年を 4 桁の数値で返します (100 ~ 9999)。 |
M | 月を表す数値を返します。1 桁の場合、先頭に 0 が付きません (1 ~ 12)。1文字だけ単独で使用する場合は、%Mと記述します。 |
MM | 月を表す数値を返します。1 桁の場合、先頭に 0 が付きます (01 ~ 12)。 |
d | 日付を返します。1 桁の場合、先頭に 0 が付きません (1 ~ 31)。1文字だけ単独で使用する場合は、%dと記述します。 |
dd | 日付を返します。1 桁の場合、先頭に 0 が付きます (01 ~ 31)。 |
ddd | 曜日を英語 (省略形) で返します (Sun ~ Sat)。 |
aaa | 曜日を日本語 (省略形) で返します (日~土)。 |
aaaa | 曜日を日本語で返します (日曜日~土曜日)。 |
g | 年号の頭文字を返します (M、T、S、H)。1文字だけ単独で使用する場合は、%gと記述します。 |
gg | 年号の先頭の 1 文字を漢字で返します (明、大、昭、平、令)。 |
ggg | 年号を返します (明治、大正、昭和、平成、令和)。 |
e | 年号に基づく和暦の年を返します。1 桁の場合、先頭に 0 が付きません。1文字だけ単独で使用する場合は、%eと記述します。 |
ee | 年号に基づく和暦の年を 2 桁の数値を使って返します。1 桁の場合、先頭に 0 が付きます。 |
H | 時間を返します。1 桁の場合、先頭に 0 が付きません (0 ~ 23)。1文字だけ単独で使用する場合は、%Hと記述します。 |
HH | 時間を返します。1 桁の場合、先頭に 0 が付きます (00 ~ 23)。 |
m | 分を返します。1 桁の場合、先頭に 0 が付きません (0 ~ 59)。1文字だけ単独で使用する場合は、%mと記述します。 |
mm | 分を返します。1 桁の場合、先頭に 0 が付きます (00 ~ 59)。 |
s | 秒を返します。1 桁の場合、先頭に 0 が付きません (0 ~ 59)。1文字だけ単独で使用する場合は、%sと記述します。 |
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ミリ秒の場合
{%DATE(yyyy/MM/dd)}
{%DATE(yyyy/M/d)}
{%DATE(ggge年M月d日)}
{%DATE(yyMMdd)}
{%DATE(yyyy/MM/dd HH:mm)}
{%DATE(yyyy/MM/dd HH:mm:ss fff)}
{%DATE(yyyy/MM/dd,+1d)}
{%DATE(yyyy/MM/dd HH:mm,-10h)}
{%IF({%START_DATE(ファイルの繰り返し1,%M)}<4,{%START_DATE(ファイルの繰り返し1,yyyy,-1y)},{%START_DATE(ファイルの繰り返し1,yyyy)})} ※Mを単独で使用する場合は%Mと記述します。 また、DATEマクロはマクロ毎にシステム日付を取得するので、0時付近に処理をすると日付が変わるので、上記のようにファイルの繰り返しが始まった時間を取得するSTART_DATEマクロを使ってください。
処理名には開始日時を取得したい処理名を指定します。日付書式、日付記号は日付取得マクロと同じ仕様です。
日時加減算式は省略可能で、日付取得マクロと同じ仕様です。
このマクロは処理の開始時の日時を取得するので、複数ページに同じ日付や時刻をテキストアノテーションで貼り付けたい場合などに使用します。上記の「日付取得」マクロにおいては、処理の実行時の日時を取得するため、0時直前などに複数ページの貼り付け処理が行われた場合、途中で日付が変わってしまう可能性があります。
以下、ファイルの繰り返し処理で、実行した日時が 2019年5月1日 12時5分10秒351ミリ秒の場合
{%START_DATE(ファイルの繰り返し1,yyyy/MM/dd)}
処理名には開始日時を設定したい処理名を指定します。日付書式は「yyyy/MM/dd HH:mm:ss fff」の形式で指定します。(「HH:mm:ss fff」や「fff」は省略することができます。)
このマクロは処理開始時の日時取得(START_DATE)を使用する場合や、連番取得とカウントアップマクロ(GET_SEQ_NO_AND_COUNT_UP)で処理開始時をリセット判定で使用する場合に、任意の日付をセットしてテストを行うために使用します。
{%SET_START_DATE(ファイルの繰り返し1,2023/04/01)}
日時には、日付(yyyy/MM/dd)又は、日時(yyyy/MM/dd HH:mm:ss)の形式で日付又は日時を指定します。指定された日時が日時として認識できる場合はTrueを、認識できない場合はFalseを返却します。
{%IF({%IS_DATE(2020/12/32)}=True, {%WRITE_LOG(日付正常)} , {%WRITE_LOG(日付不正)} )}
結果 日付不正
引数の日時を対象に日時加減算式で計算を行い、日付書式にしたがってフォーマットした日時を返却します。
日付書式、日時加減算式はDATEマクロと同じです。
以下、設定例です。
{%WRITE_LOG({%DATE_ADD(2021/01/01,yyyy/MM/dd,+1d)})}
結果 2021/01/02
{%WRITE_LOG({%DATE_ADD(2021/01/01 01:00:00,yyyy/MM/dd HH:mm:ss,-2h)})}
結果 2020/12/31 23:00:00
{%WRITE_LOG({%DATE_ADD(2020/12/31 23:00:00,yyyy/MM/dd HH:mm:ss,+2h)})}
結果 2021/01/01 01:00:00
引数の日時1から日付2を減算して、日時単位で指定された単位で返却します。
日時単位には以下の記号を指定します。
単位記号 | 内容 |
---|---|
d | 日 |
h | 時 |
m | 分 |
s | 秒 |
以下、設定例です。
{%WRITE_LOG({%DATE_DIFF(2017/9/13,1899/12/30,d)})}
結果 42991
Excelで扱う日付のシリアル値は、1900/1/1を1とした経過日数ですが、Excelが1900/2/29という存在しない日をカウントする仕様のため、この仕様に合わせた数値を取得するためには、1899/12/30からの経過日数を取得します。
{%WRITE_LOG({%DATE_DIFF(2022/8/30 19:46:00,1970/01/01 09:00:00,s)})}
結果 1661856360
UNIX時間は協定世界時 (UTC) での1970年1月1日午前0時0分0秒からの経過秒数ですが、日本時間はUTC時間+9時間ですので、1970/01/01 09:00:00としています。
和暦はDATEマクロでも取得できますが、元号が変わった場合の対応を考慮して、定義ファイル(CSV形式)から情報を取得して、変換する処理を提供します。定義ファイルに元号と開始年月日を記述することで将来の元号にも対応できます。
年月日には、和暦に変換したい日付(yyyyMMdd)を指定します。
結果格納先ユーザーデータ名には結果を格納するユーザーデータの名前を指定します。和暦の情報は以下のキーで取得できます。
キー | 内容 |
---|---|
元号 | 指定した年月日の元号(令和,平成,昭和,大正,明治) |
元号記号 | 指定した年月日の元号記号(R,H,S,T,M) |
年 | 指定した年月日の和暦の年 |
月 | 指定した年月日の和暦の月 |
日 | 指定した年月日の和暦の日 |
本マクロは和暦定義ファイルを参照して処理しています。和暦定義ファイルは省略可能です。省略した場合は、eDocArrangementのインストールフォルダにある「Wareki.ini」を参照します。指定した場合は指定したファイルを読み込みます。和暦定義ファイルは以下のフォーマットでデータを作成してください。(「Wareki.ini」も参考にしてください。)
項目1 | 項目2 | 項目3 |
---|---|---|
開始年月日 | 元号 | 元号記号 |
和暦定義ファイルはカンマ区切りとします。ヘッダ行は記述せず1行目から定義してください。また、日付は降順(新しい日付が上)に定義してください。
以下、設定例です。
{%CALENDAR_JP(20160303,和暦)} {%WRITE_LOG({%GET_USER_DATA(和暦,元号)}{%GET_USER_DATA(和暦,年)}年)}
{%CALENDAR_JP({%DATE(yyyyMMdd)},和暦)} {%WRITE_LOG({%GET_USER_DATA(和暦,元号記号)}{%GET_USER_DATA(和暦,年)}年{%GET_USER_DATA(和暦,月)}月{%GET_USER_DATA(和暦,日)}日)}
本マクロは、2営業日後や、1営業日前などの、指定した日付からの営業日日数を計算した日付を取得する機能(機能1)と、指定した休日日付の翌営業日、または前営業日を取得する機能(機能2)を利用できます。
日付には、yyyy/MM/dd、yyyy/M/dなどの形式で日付を指定します。
2番目の引数について、
機能1では、未来日付の営業日日数を指定する場合は、正の整数を、過去日付の営業日日数を指定する場合は、負の整数を指定します。(例 2営業日後は2、1営業日前は-1)
日付に祝祭日又は休日を指定し、0を指定した場合は、After(翌営業日)を指定した場合と同じになります。
機能2では、翌営業日を指定する場合はAfterを、前営業日を指定する場合はBeforeを指定します。どちらを指定した場合でも、指定した日付が営業日の場合は、指定した日付をそのまま返却します。
祝祭日ユーザーデータ名には、CSVファイル読み込みマクロ(READ_CSV_FILE)で読み取ったCSVデータの格納ユーザーデータ名を指定します。
祝祭日CSVファイルは、キーに祝祭日の日付が格納されていれば、他はどんなデータでもかまいません。日付の形式は、yyyy/MM/dd又は、yyyy/M/dに対応しています。
おすすめは、内政府が公開している祝祭日CSVデータです。以下のページからダウンロードできます
このページの国民の祝日の表の下にダウンロードのリンクがあります。(CSVのリンクは変わる可能性があります。)
このCSVファイルは以下のようになっています。
国民の祝日・休日月日,国民の祝日・休日名称 1955/1/1,元日 1955/1/15,成人の日 1955/3/21,春分の日 ・ ・ 2020/9/22,秋分の日 2020/11/3,文化の日 2020/11/23,勤労感謝の日
この場合、1列目が日付になっていますので、CSVファイル読み込みマクロ(READ_CSV_FILE)で読み込む場合は、以下のようになります。
#祝祭日CSV読み込み {%READ_CSV_FILE({%GET_G(TopFolder)}\90_System\10_マスタ\syukujitsu.csv,祝祭日,SJIS,1,2,1,番号)}
休日ユーザーデータ名は、休日の曜日をキーにセットしたユーザーデータを指定します。以下のような記述になります。
#休日指定 {%SET_U(休日,土,)} {%SET_U(休日,日,)}
以下、カレンダーが以下のような場合の例となります。
02/07(金) 02/08(土) 02/09(日) 02/10(月) 02/11(火) 建国記念の日 02/12(水)
#祝祭日CSV読み込み {%READ_CSV_FILE({%GET_G(TopFolder)}\90_System\10_マスタ\syukujitsu.csv,祝祭日,SJIS,1,2,1,番号)} #休日指定 {%SET_U(休日,土,)} {%SET_U(休日,日,)} #翌営業日取得 {%WRITE_LOG({%BUSINESS_DATE(2020/02/08,After,祝祭日,休日)})} 結果 2020/02/10 #前営業日取得 {%WRITE_LOG({%BUSINESS_DATE(2020/02/08,Before,祝祭日,休日)})} 結果 2020/02/07 #営業日を指定した場合は、指定した営業日がそのまま返却される {%WRITE_LOG({%BUSINESS_DATE(2020/02/07,After,祝祭日,休日)})} 結果 2020/02/07 #2営業日後の日付を取得 {%WRITE_LOG({%BUSINESS_DATE(2020/02/08,2,祝祭日,休日)})} 結果 2020/02/12 #2営業日前の日付を取得 {%WRITE_LOG({%BUSINESS_DATE(2020/02/12,-2,祝祭日,休日)})} 結果 2020/02/07 #休みの日で0営業日後を指定した場合はAFTERと同じ結果になる {%WRITE_LOG({%BUSINESS_DATE(2020/02/11,0,祝祭日,休日)})} 結果 2020/02/12
引数文字列の先頭と末尾の連続するスペースを削除します。
{%TRIM( abc )} -> "abc"
引数文字列の左から指定文字数分抽出します。
{%LEFT(abc,2)} -> "ab"
SJISに置き換えてバイト数指定で抽出を行う場合は、{%LEFTB(文字列,文字数)}を使用します。
引数文字列の右から指定文字数分抽出します。
{%RIGHT(abc,2)} -> "bc"
SJISに置き換えてバイト数指定で抽出を行う場合は、{%RIGHTB(文字列,文字数)}を使用します。
引数文字列の開始位置から文字数分抽出します。文字数は省略可能。省略した場合は、文字数指定無し、つまり開始位置以降、全てとなります。
{%MID(abc,2,1)} -> "b" {%MID(abc,2)} -> "bc"
SJISに置き換えてバイト数指定で抽出を行う場合は、{%MIDB(文字列,開始位置,文字数)}を使用します。
マクロ書式の説明
{%LEN(abc)} -> "3"
SJISに置き換えてバイト数で文字数取得を行う場合は、{%LENB(文字列)} を使用します。
引数文字列を大文字に変換します。
{%TO_UPPER(abc)} -> "ABC"
引数文字列を小文字に変換します。
{%TO_LOWER(ABC)} -> "abc"
引数文字列から検索文字を検索し、置換文字に置換します。検索文字が複数見つかった場合も全て置換します。
{%REPLACE(abcde,c,x)} -> "abxde" {%REPLACE(abcabc,bc,x)} -> "axax"
引数文字列から検索文字(正規表現)を検索し、置換文字に置換します。検索文字が複数見つかった場合も全て置換します。
{%REGEX_REPLACE(ab123de,\d+,c)} -> "abcde"
正規表現で文字列の一部分を取得します。正規表現には必ず一組の()を記述してください。()の中の正規表現にマッチする文字が返却されます。複数の検索やキャプチャを行いたい場合は REGEX_MATCHマクロ を使用してください。
オプション文字の意味は以下の通りです。
オプション | 内容 |
---|---|
i | 大文字、小文字を区別しない。 |
m | 文字列を複数行として扱う。^と$が行頭と行末にマッチするようになります。 |
正規表現の詳細については参考書等を参照願います。(.NETの正規表現ライブラリを使用しています。)
{%MSGBOX({%REGEX_CAPTURE((\d+)$,{%GET(FileNameWithoutExtension)})})} 「Test001」の場合は、「001」が取得されます。
{%MSGBOX({%REGEX_CAPTURE(([^\\]+)\\[^\\]+$,{%GET(FullPathFileName)})})}
「D:\東京支店\第一営業部\請求書001.xdw」の場合、「第一営業部」が取得されます。
{%MSGBOX({%REGEX_CAPTURE(NO(\d+),{%GET(FileNameWithoutExtension)},i)})}
ファイル名の中の「NO」の後ろの数字を取得します。iオプションを指定していますので、大文字小文字を区別せず、「no」や「No」でも対象となります。
「No001_Test」の場合、「001」が取得されます。
正規表現で文字列の一部分を取得します。複数の文字列取得が可能です。()を記述すればキャプチャが可能です。1つのキャプチャのみを行いたい場合は REGEX_CAPTUREマクロ を使用してください。
正規表現にマッチした文字列は、「格納先ユーザーデータ(マッチ)」で指定されたユーザーデータに結果が格納されます。キーは1から始まる番号となります。例えば「格納先ユーザーデータ(マッチ)」に「MATCH」を指定して、1番目に見つかった文字列は「{%GET_USER_DATA(MATCH,1)}」で参照できます。
「()」を使用して文字列をキャプチャした場合は、「格納先ユーザーデータ(キャプチャ) + マッチ番号」で指定されたユーザーデータに結果が格納されます。キーは1から始まる番号となります。例えば「格納先ユーザーデータ(キャプチャ)」に「GROUP」を指定して、1番目に見つかった文字の一番目のキャプチャ文字列は「{%GET_USER_DATA(GROUP1,1)}」で参照できます。
オプション文字の意味は以下の通りです。
オプション | 内容 |
---|---|
i | 大文字、小文字を区別しない。 |
m | 文字列を複数行として扱う。^と$が行頭と行末にマッチするようになります。 |
正規表現の詳細については参考書等を参照願います。(.NETの正規表現ライブラリを使用しています。)
{%REGEX_MATCH(\d,x1y2z3,GROUP,MATCH)} {%LOOP L1 {%GET_USER_DATA_COUNT(MATCH)}( {%WRITE_LOG(MATCH={%GET_USER_DATA(MATCH,[L_IDX(L1)])})} )} 上記のマクロを実行するとログの内容に以下の文字列が出力されます。 MATCH=1 MATCH=2 MATCH=3
{%REGEX_MATCH(x(\d+).*z(\d+),x1y2z3,GROUP,MATCH)} {%LOOP L1 {%GET_USER_DATA_COUNT(MATCH)}( {%WRITE_LOG(MATCH={%GET_USER_DATA(MATCH,[L_IDX(L1)])})} {%LOOP L2 {%GET_USER_DATA_COUNT(GROUP[L_IDX(L1)])}( {%WRITE_LOG(GROUP[L_IDX(L1)]={%GET_USER_DATA(GROUP[L_IDX(L1)],[L_IDX(L2)])})} )} )} 上記のマクロを実行するとログの内容に以下の文字列が出力されます。 MATCH=x1y2z3 GROUP1=1 GROUP1=3
{%REGEX_MATCH(x(\d+)y(\d+),x1y2z3x1y2z3,GROUP,MATCH)} {%LOOP L1 {%GET_USER_DATA_COUNT(MATCH)}( {%WRITE_LOG(MATCH={%GET_USER_DATA(MATCH,[L_IDX(L1)])})} {%LOOP L2 {%GET_USER_DATA_COUNT(GROUP[L_IDX(L1)])}( {%WRITE_LOG(GROUP[L_IDX(L1)]={%GET_USER_DATA(GROUP[L_IDX(L1)],[L_IDX(L2)])})} )} )} 上記のマクロを実行するとログの内容に以下の文字列が出力されます。 MATCH=x1y2 GROUP1=1 GROUP1=2 MATCH=x1y2 GROUP2=1 GROUP2=2
以下のような改行を含んだ文字列の場合 {%REGEX_MATCH((^x\d+),x1y2z3 x1y2z3,GROUP,MATCH)} {%LOOP L1 {%GET_USER_DATA_COUNT(MATCH)}( {%WRITE_LOG(MATCH={%GET_USER_DATA(MATCH,[L_IDX(L1)])})} )} 上記のマクロを実行するとログの内容に以下の文字列が出力されます。 ^が文字列全体の先頭にマッチします。 MATCH=x1 オプションmを指定すると、 {%REGEX_MATCH((^x\d+),x1y2z3 x1y2z3,GROUP,MATCH,m)} {%LOOP L1 {%GET_USER_DATA_COUNT(MATCH)}( {%WRITE_LOG(MATCH={%GET_USER_DATA(MATCH,[L_IDX(L1)])})} )} 上記のマクロを実行するとログの内容に以下の文字列が出力されます。 ^が行の先頭にマッチするため2回出力されます。 MATCH=x1 MATCH=x1
正規表現のメタ文字をエスケープします。
正規表現では「.」や「+」などの文字に意味を持たせて表記するルールがありますが、検索文字に「.」そのものを指定したい場合は、「\.」と表記(エスケープ)する必要があります。本マクロは引き数の文字列全てをエスケープした文字に置換して返却します。
正規表現の詳細については参考書等を参照願います。(.NETの正規表現ライブラリを使用しています。)
{%WRITE_LOG({%REGEX_CAPTURE((.+),ABC.+DEF)})} {%WRITE_LOG({%REGEX_CAPTURE(({%ESCAPE_REGEX(.+)}),ABC.+DEF)})}
結果 ABC.+DEF マクロ名[WRITE_LOG] .+ マクロ名[WRITE_LOG]
{%IF({%REGEX_CAPTURE(({%ESCAPE_REGEX({%GET_FIELD_VALUE(CSV読み込み1,1)})}),{%GET(FolderName)})}!=, #該当の文字が見つかった場合 {%SET_U(属性,配信先,{%GET_FIELD_VALUE(CSV読み込み1,2)})} ,)}
文字列の変換処理を行います。
文字列に変換したい文字を指定します。
変換種類には、以下の変換種類の番号を指定します。番号を足し算して複数指定することも可能です。(例「小文字を大文字 + 全角を半角」は1+8で9を指定)
変換種類 | 内容 |
---|---|
1 | 小文字を大文字に変換します。 |
2 | 大文字を小文字に変換します。 |
3 | 各単語の先頭文字を大文字に変換します。 |
4 | 半角文字を全角文字に変換します。 |
8 | 全角文字を半角文字に変換します。 |
16 | ひらがなをカタカナに変換します。 |
32 | カタカナをひらがなに変換します。 |
#小文字を大文字 {%WRITE_LOG({%STR_CONV(abc,1)})} -> ABC {%WRITE_LOG({%STR_CONV(abc,1)})} -> ABC #大文字を小文字 {%WRITE_LOG({%STR_CONV(ABC,2)})} -> abc {%WRITE_LOG({%STR_CONV(ABC,2)})} -> abc #先頭文字を大文字 {%WRITE_LOG({%STR_CONV(abc def,3)})} -> Abc Def #半角を全角 {%WRITE_LOG({%STR_CONV(abc,4)})} -> abc {%WRITE_LOG({%STR_CONV(アイウ,4)})} -> アイウ #全角を半角 {%WRITE_LOG({%STR_CONV(abc ,8)})} -> abc {%WRITE_LOG({%STR_CONV(アイウ,8)})} -> アイウ #ひらがなをカタカナ {%WRITE_LOG({%STR_CONV(あいう,16)})} -> アイウ #カタカナをひらがな {%WRITE_LOG({%STR_CONV(アイウ,32)})} -> あいう {%WRITE_LOG({%STR_CONV(アイウ,32)})} -> アイウ #小文字を大文字 + 全角を半角 {%WRITE_LOG({%STR_CONV(abc,9)})} -> ABC {%WRITE_LOG({%STR_CONV(abc,9)})} -> ABC #カタカナをひらがな + 半角を全角 {%WRITE_LOG({%STR_CONV(アイウ,36)})} -> あいう #矛盾したパラメータ {%WRITE_LOG({%STR_CONV(abc ,12)})} -> エラー
全角文字から半角文字、及び、半角文字から全角文字への変換処理を行います。
対象文字列に変換したい文字列を指定します。
変換後文字種には、以下の文字種を指定します。|で連結して複数指定可能です。 省略した場合は、「半角英数記号|全角カタカナ」になります。
変換文字種 | 内容 |
---|---|
半角英字 | 全角英字を半角英字に変換します。 |
半角数字 | 全角数字を半角数字に変換します。 |
半角記号 | 全角記号を半角記号に変換します。 |
半角カタカナ | 全角カタカナを半角カタカナに変換します。 |
全角英字 | 半角英字を全角英字に変換します。 |
全角数字 | 半角数字を全角数字に変換します。 |
全角記号 | 半角記号を全角記号に変換します。 |
全角カタカナ | 半角カタカナを全角カタカナに変換します。 |
半角英数記号 | 全角英数記号を半角英数記号に変換します。 |
全角英数記号 | 半角英数記号を全角英数記号に変換します。 |
#全角英数記号を半角英数記号に、半角カタカナを全角カタカナに変換 {%WRITE_LOG({%STR_CONV_ZEN_HAN(〒104-0031 東京都中央区京橋3-7-6 国立映画アーカイブ本館)})} > 〒104-0031 東京都中央区京橋3-7-6 国立映画アーカイブ本館 #全角英字を半角英字に、全角数字を半角数字に変換 {%WRITE_LOG({%STR_CONV_ZEN_HAN(109CINEMAS,半角英字|半角数字)})} > 109CINEMAS #全角カタカナを半角カタカナに変換 {%WRITE_LOG({%STR_CONV_ZEN_HAN(スケジュール,半角カタカナ)})} > スケジュール
特定文字列の変換処理を行います。
変換内容を指定します。
変換内容には、以下の文字列を指定します。|で連結して複数指定可能です。 省略した場合は、「特殊を標準|長音をマイナス 」になります。
変換文字種 | 内容 |
---|---|
ひらがなをカタカナ | 全角ひらがなを全角カタカナに変換します。 |
カタカナをひらがな | 全角カタカナ及び半角カタカナを全角ひらがなに変換します。 |
特殊を標準 | 特殊文字(㈱など)を標準文字(半角英数記号と標準的な全角文字)に変換します。 |
長音をマイナス | 直前に全角カタカナひらがなが存在しない全角長音を全角マイナスに変換します。直前に半角カタカナが存在しない半角長音を半角マイナスに変換します。 |
#特殊文字を標準文字に変換 {%WRITE_LOG({%STR_CONV_SPEC_CHAR(㈱YK-HOME)})} > (株)YK-HOME #カタカナをひらがなに変換 {%WRITE_LOG({%STR_CONV_SPEC_CHAR(サイタマ市,カタカナをひらがな)})} > さいたま市
ユーザーデータにセットされたキーに合致する文字を、対応する値に変換します。
対象文字列に変換したい文字列を指定します。
ユーザーデータ名には、変換したい文字をキーに、変換後の文字を値にセットしたユーザーデータの名前を指定します。
#ライナックス、リーヌークス、リヌックスをリナックスに変換 {%SET_U(変換テーブル,ライナックス,リナックス)} {%SET_U(変換テーブル,リーヌークス,リナックス)} {%SET_U(変換テーブル,リヌックス,リナックス)} {%WRITE_LOG({%STR_CONV_BY_USER_DATA(ライナックス,変換テーブル)})} > リナックス
値を書式に従って整形します。
書式の仕様については、日付に関して日付取得マクロと同じになります。内部的にはVB.NETのStrings.Format(名前空間:Microsoft.VisualBasic)を呼び出していますので、マイクロソフトのサイト等で、Formatの仕様を参照してください。
{%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"
区切り文字が入った文字列を、引数の区切り文字により、分割することができます。
分割結果はユーザーデータに格納されます。
内容はユーザーデータのキーに項目番号(1~)を指定することで参照できます。
また、分割数は「GET_USER_DATA_COUNT」マクロで参照できます。
{%SPLIT(山田-19-男,-,分割結果)}
ユーザーデータに格納されたデータは、ユーザーデータ名、キーを指定することにより、検索することができます。
{%SPLIT(田中-女-90,-,分割結果)} {%WRITE_LOG({%GET_USER_DATA_COUNT(分割結果)})} {%WRITE_LOG({%GET_U(分割結果,1)})} {%WRITE_LOG({%GET_U(分割結果,2)})} {%WRITE_LOG({%GET_U(分割結果,3)})} ログには、 3 田中 女 90 と順に表示されます。
区切り文字が「,」である場合には、入力する区切り文字を「|,」としてください。
{%SPLIT(東京|,13,|,,地名)} {%LOOP L1 {%GET_USER_DATA_COUNT(地名)}( {%WRITE_LOG({%GET_USER_DATA(地名,[L_IDX(L1)])})} )} ログには、 東京 13 と順に表示されます。
ユーザーデータに格納された値を連結文字で連結します。
{%SET_USER_DATA(果物,1,りんご)} {%SET_USER_DATA(果物,2,みかん)} {%SET_USER_DATA(果物,3,すいか)} {%MSGBOX({%JOIN(果物,|,)})} 結果 りんご,みかん,すいか
引数で渡された文字列を空文字で返却します。 マクロを処理した結果の文字を消したい場合に使います。
引数で渡された文字列をマクロとして解析して、解析後の文字列を返却します。実行系のマクロは実行されます。
本マクロは入力データ等の文字を処理すると、悪意のあるコードを実行することができてしまいます。セキュリティーに十分注意して使用してください。
「data.txt」の内容(タブ区切り) today 今日は{%DATE(yyyy/MM/dd)}です。
マクロ {%LOAD_USER_DATA(D:\Home\temp\data.txt,data)} {%WRITE_LOG({%PARSE_MACRO({%GET_U(data,today)})})}
結果 今日は2021/08/22です。 マクロ名[WRITE_LOG]
引数文字列を返却します。
文字列中にマクロが含まれていてもマクロを実行せず、そのままの文字列を返却します。
エスケープマクロの引数文字列はeDocArrangement2のマクロ実行は行いませんが、 マクロの構文解析は行います。構文に誤りがあると末尾の「)}」を認識できずに期待通り機能しません。
引数の文字列はマクロの実行が行われなくなるので、マクロのコメントアウトのように使うこともできます。
{%ADD_USER_DATA(writeData,メッセージボックス表示マクロについて)} {%ADD_USER_DATA(writeData,{%ESCAPE({%MSGBOX(メッセージ)}と書くとメッセージを表示します。)})} {%WRITE_FILE(D:\test.txt,writeData,SJIS,New)}
{%ESCAPE( 2024/05/21 一時的にコメントとする #ファクス番号のチェック {%IF({%GET_U(属性,受信ファクス番号)}=, #空の場合はエラー {%SET_U(属性,判定,False)} {%SET_U(属性,メッセージ,■ERR■【ファクス受信】ファクス受信番号がありません。)} ,)} )}
引数で渡された文字列を暗号化して、ファイルを作成します。
暗号化したファイルから復号すること(暗号化する前の文字列を取得すること)は簡単ではないですが、不可能ではありませんので、暗号化ファイルが外部に漏れないようにしてください。
暗号ファイルは「 暗号ファイル作成ツール 」(メイン画面のツールメニュー)からも作成できます。本マクロは大量の暗号ファイルを作成するときなどに利用してください。
{%STRING_ENCRYPTION(ABC123,C:\Home\Demo1\90_System\password.dat)}
引数の数式を計算します。数式には、四則演算を表記できます。
{%CALC(1+2)} -> "3" {%CALC(3*(2+1))} -> "9"
引数の数値を小数点の位置で四捨五入します。
{%ROUND(12.3,0)} -> "12"
引数の数値を小数点の位置で切り捨てします。
{%ROUND_DOWN(12.5,0)} -> "12"
引数の数値を小数点の位置で切り上げします。
{%ROUND_UP(12.3,0)} -> "13"
数値1を数値2で割った余りを返却します。
{%MOD(199,100)}
結果 99
条件を判定し、条件に合致する場合は真の値を返却し、合致しない場合は偽の値を返却します。条件の比較記号は、>,<,=,>=,<=,!=が使用可能です。条件の左辺、右辺が両方とも数字の場合、数値としての比較を行います。それ以外は文字比較になります。条件や、真の値、偽の値には、各種書式を入れ子で記述することが可能です。
カンマそのものを条件や値に記述したい場合は、「|,」と記述します。
比較式の左辺と右辺が両方とも数値の場合は、比較を数値として行います。
比較式の左辺、右辺は空白も文字列として比較対象とします。
{%SET_U(属性,処理日,{%DATE(yyyy/MM/dd)})} {%IF({%FORMAT({%GET_U(属性,処理日)},dd)}>20,{%DATE_ADD({%GET_U(属性,処理日)},yyMM,+1M)},{%FORMAT({%GET_U(属性,処理日)},yyMM)})} 現在の日付が2004年2月20日の場合、0402となります。 現在の日付が2004年2月21日の場合、0403となります。 DATEマクロはマクロ毎にシステム日付を取得するので、0時付近に処理をすると日付が変わるので、上記のようにユーザーデータに一度セットしてから、ユーザーデータの日付で判定と取得を行います。
文字列を繰り返し回数分展開します。名前には任意の文字列を指定します。文字列には、改行が含まれても問題ありません。
文字列には、以下の特殊キーワードが使用できます。
[L_IDX(名前)]
L_IDXキーワードは、LOOPマクロの引数文字列中に使用すると、ループの展開時に、インデックスに置換します。名前には、LOOPマクロで指定した名前と同じ名前を指定します。
{%LOOP L1 3( {%WRITE_LOG([L_IDX(L1)])} )}
結果 1 2 3
引き数の左辺と右辺を比較するための比較演算式情報を作成します。
比較演算子には、「<,>,<=,>=,=,!=,正規表現,部分一致,前方一致,後方一致」の何れかが指定できます。
比較演算を行うためのデータ(JSON文字列)を作成します。
この比較演算用の文字列は条件式評価マクロ(EVALUATE)等で判定を行うことができます。
{%SET_U(属性,年齢,21)} {%CREATE_COMPARE({%GET_U(属性,年齢)},>=,20)}
{%IF({%EVALUATE({%CREATE_COMPARE({%GET(FullPathFileName)},部分一致,総務課)})}=True, #条件を満たす場合 {%WRITE_LOG(条件を満たしています。)} , #条件を満たさない場合 {%WRITE_LOG(条件を満たしていません。)} )}
{%CREATE_COMPARE({%GET(FullPathFileName)},正規表現,(?:営業1課|総務課))}
{%CREATE_COMPARE({%GET(FileName)},前方一致,2024)}
論理演算を行うための論理演算式情報を作成します。
2番目以降の引き数に指定された論理演算式または比較演算式を、1番目の引き数で指定された論理積(AND)又は論理和(OR)又は排他的論理和(XOR)で論理演算を行うためのデータ(JSON文字列)を作成します。
この論理演算用の文字列は条件式評価マクロ(EVALUATE)等で判定を行うことができます。
{%SET_U(属性,年齢,21)} {%CREATE_OPERATOR(AND, {%CREATE_COMPARE({%GET_U(属性,年齢)},>=,20)}, {%CREATE_COMPARE({%GET_U(属性,年齢)},<=,50)} )}
比較演算式情報、論理演算式情報から演算式を評価します。
比較演算式作成マクロや論理演算式作成マクロで作成された演算を行うためのデータ(JSON文字列)を引き数に指定します。
評価の結果、条件を満たす場合はTrueを満たさない場合はFalseを返却します。
{%SET_U(属性,年齢,21)} {%SET_U(temp,条件式, {%CREATE_OPERATOR(AND, {%CREATE_COMPARE({%GET_U(属性,年齢)},>=,20)}, {%CREATE_COMPARE({%GET_U(属性,年齢)},<=,50)} )} )} {%IF({%EVALUATE({%GET_U(temp,条件式)})}=True, #条件を満たす場合 {%WRITE_LOG(条件を満たしています。)} , #条件を満たさない場合 {%WRITE_LOG(条件を満たしていません。)} )}