HELP

共通マクロ書式

その他の書式

NAME メッセージボックス表示
FORMAT {%MSGBOX(メッセージ)}

引数のメッセージをダイアログに表示します。

例1
ユーザーデータの内容をダイアログで表示する。
{%SET_USER_DATA(Wk,Name,伊藤)}

{%MSGBOX({%GET_USER_DATA(Wk,Name)})}
NAME 入力ボックス表示
FORMAT {%INPUTBOX(メッセージ,[タイトル])}

引数のメッセージを入力ダイアログに表示して、入力値を返却します。

例1
「氏名を入力してください。」と入力ダイアログを表示して、入力された文字をユーザーデータにセットする。
{%SET_USER_DATA(Wk,Name,{%INPUTBOX(氏名を入力してください。)})}
NAME クリップボード設定
FORMAT {%SET_CLIPBOARD_TEXT(文字列)}

文字列をクリップボードに記憶します。

例1
「ABC」をクリップボードに記憶する。
{%SET_CLIPBOARD_TEXT(ABC)}
NAME クリップボード取得
FORMAT {%GET_CLIPBOARD_TEXT()}

クリップボードに記憶された文字列を取得します。

例1
クリップボードから文字列を取得する。
{%GET_CLIPBOARD_TEXT()}
NAME エラー出力
FORMAT {%RAISE_ERROR(エラーメッセージ)}

エラーを発生させます。通常のエラーと同様に、処理中の処理を中断します。引数にエラーメッセージを指定することができます。
IFマクロと併用し、条件によりエラーを発生させて使います。

例1
データ名「商品データ」のキー「A001-00123」のユーザーデータが存在しなければエラーとする。
{%IF(({%EXISTS_USER_DATA(商品データ,A001-00123)}=True,,{%RAISE_ERROR(nameが見つかりません)})}
NAME ログ書式設定
FORMAT {%SET_LOG_FORMAT(文字列)}

ログ出力マクロ(WRITE_LOG)、及びエラーログ出力マクロ(WRITE_ERROR_LOG)で出力するログのフォーマットを設定します。

引数文字列に{0}を含めてください。ログの出力時にログ出力マクロで指定したメッセージの内容が{0}の位置に出力されます。

引数文字列にマクロを指定した場合は、SET_LOG_FORMATが実行されるときにはマクロの実行は行われません。ログを出力するときに指定したマクロが実行されます。

ログの出力で行われるマクロの実行でエラーが発生した場合は全て無視されます。

このマクロは一度設定するとメモリに保持され、アプリケーションの終了まで有効となります。

このマクロを何度も実行した場合は、呼び出す度に設定値が上書きされます。

スケジューラーの共通設定の監視開始時のマクロに記述するとサービス開始時、スケジューラーの監視開始時に実行され、以後のログ出力マクロすべてに適用されます。

例1
ログの書式を設定する。
{%SET_LOG_FORMAT(■{%GET(SettingName)} {0})}
{%WRITE_LOG(判定:{%GET_U(属性,判定)})}

設定名が「QRコード読み取り」、判定の内容が「True」の場合、以下のように出力されます。
2024/05/01 15:23:29 44 正常 ■QRコード読み取り 判定:True マクロ名[WRITE_LOG] {%WRITE_LOG(処理を実行しました。)}
NAME ログ出力
FORMAT {%WRITE_LOG(メッセージ)}

処理結果にメッセージを出力します。ログ設定が有効になっていれば、通常のログと一緒に出力されます。

例1
処理結果に「処理を実行しました。」を出力する。
{%WRITE_LOG(処理を実行しました。)}
NAME エラーログ出力
FORMAT {%WRITE_ERROR_LOG(メッセージ)}

処理結果にエラーメッセージを出力します。ログ設定が有効になっていれば、通常のエラーログと一緒に出力されます。本マクロはエラーログを出力するだけで、エラーは発生しません。エラーを発生させたい場合はRAISE_ERRORマクロを使用してください。

例1
処理結果にエラーメッセージとして「エラーが発生しました。」を出力する。
{%WRITE_ERROR_LOG(エラーが発生しました。)}
NAME 待機
FORMAT {%SLEEP(ミリ秒)}

引数で指定された秒数だけ待機します。引数はミリ秒で指定します。

例1
1秒待機する。
{%SLEEP(1000)}
NAME メール送信
FORMAT {%SEND_MAIL(メールサーバー設定名,ユーザーデータ名(宛先),送信元メールアドレス,ユーザーデータ名(CC),ユーザーデータ名(BCC),件名,本文,[ユーザーデータ名(添付ファイル)],[ユーザーデータ名(エラー取得用)])}

SMTPサーバの情報は、メールサーバー設定から右クリックでメールサーバーを追加し、設定を行ってください。 SMTPサーバの設定が行われていない場合はメール送信ができません。メール送信マクロを使用する場合は、必ず設定してください。

引数の説明は以下の通りです。

引数 内容
メールサーバー設定名 メールサーバー設定のメールサーバー名を指定します。
データ名(宛先) ユーザーデータ名を指定します。事前にユーザーデータに宛先のメールアドレスを値に設定します。キーは何でもOKです。
送信元メールアドレス 送信元メールアドレスを指定します。
データ名(CC) ユーザーデータ名を指定します。事前にユーザーデータにCCの宛先のメールアドレスを値に設定します。キーは何でもOKです。省略可。
データ名(BCC) ユーザーデータ名を指定します。事前にユーザーデータにBCCの宛先のメールアドレスを値に設定します。キーは何でもOKです。省略可。
件名 件名を指定します。
本文 本文を指定します。
データ名(ファイル) ユーザーデータ名を指定します。事前にユーザーデータに添付ファイルのフルパスを値に設定します。キーは何でもOKです。省略可。
データ名(エラー取得用)

ユーザーデータ名を指定します。この引数を指定すると、メール送信時にメールサーバーからエラーが返って着た場合にエラーを発生させず、処理を続行します。 省略可。

メールサーバーから返されたエラーメッセージは、指定したユーザーデータのMessageに格納されます。

メール送信時に、メールサーバの異常などで送信エラーが発生した場合は、処理がエラーになります。マクロの戻り値は、正常時に「Ture」が返却され、エラー時はマクロ処理が中断され、最後まで処理が行われません。(エラー取得用のユーザーデータを引数に指定した場合は、マクロは中断されず、戻り値に「False」が返却されます。)

例1
「tom@test.com」宛にメールを送信します。メールには処理中のファイルを添付します。
{%SET_U(宛先,1,tom@test.com)}
{%SET_U(添付ファイル,1,{%GET(FullPathFileName)})}
{%SEND_MAIL(メールサーバー1,宛先,jerry@test.com,,,自動送信メール,このメールはeDocArrangementからの自動送信メールです。,添付ファイル)}
例2
「tom@test.com」宛にメールを送信します。(エラー発生時に処理を中断せず、ユーザーデータにエラーメッセージを格納します。)
{%SET_U(宛先,1,tom@test.com)}

{%IF({%SEND_MAIL(メールサーバー1,宛先,jerry@test.com,,,自動送信メール,このメールはeDocArrangementからの自動送信メールです。,,CatchError)}=False,
  {%WRITE_LOG({%GET_U(CatchError,Message)})}
,)}
NAME 制御コード除去
FORMAT {%REMOVE_CONTROL_CHAR(入力ファイル名,出力ファイル名)}

入力ファイル名に指定したテキストファイルから、制御コードを除去し、出力ファイル名に指定したファイルに出力します。

処理可能なテキストファイルの文字コードはSJISのみです。除去の対象となる文字コードは16進コードで00~1F,7Fです。但し、改行(0A)、タブ(09)、復帰(0D)は除去しません。

出力ファイルをネットワークフォルダに指定すると、処理速度が遅くなりますので、ローカルフォルダに出力するようにしてください。

例1
「C:\Test\Test.csv」から制御コードを除去し、「C:\Test\Test_Out.csv」に出力します。
{%REMOVE_CONTROL_CHAR(C:\Test\Test.csv,C:\Test\Test_Out.csv)}
NAME コマンド実行
FORMAT {%COMMAND(実行ファイル,パラメーター,[Async])}

コマンドを実行します。戻り値に実行したコマンドのリターンコードが返ります。

Asyncを指定しない場合は、実行したコマンドが終了するまで待機します。コマンドが終了しない場合は永久に待機してしまいますので、そうなった場合はタスクマネージャーでeDocArrangementを強制終了して下さい。

Asyncを指定した場合は、コマンド実行後に直ぐに制御が戻ります。コマンドは非同期で実行されます。

非同期で処理を行う場合は、処理の内容を十分に理解し、同時に処理が行われることで問題が生じないようにする必要があります。トラブルの発生時には非同期処理の問題解決は、より高度なスキルが必要になります。非同期処理の内容理解が十分でない場合は非同期処理を使用しないでください。

例1
「C:\Home\Demo\System\picturetool.exe -i C:\Home\Demo\in\in.jpg -o C:\Home\Demo\out\out.png -t 100,100,200,200」を実行する。
{%COMMAND(C:\Home\Demo\System\picturetool.exe,-i C:\Home\Demo\in\in.jpg -o C:\Home\Demo\out\out.png -t 100|,100|,200|,200)}
NAME 外部マクロ実行
FORMAT {%LOAD_MACRO(ファイル名,[エンコード(SJIS|UTF-8|自動)])}

テキストファイルに記述されたマクロを読み込み、実行します。

エンコードを指定できます。省略するとSJISで読み込みます。

本マクロは入力ファイル等を処理すると、悪意のあるコードを実行することができてしまいます。セキュリティーに十分注意して使用してください。

例1
「D:\Home\Macro\macro.txt」に記述されたマクロを読み込み実行する。
{%LOAD_MACRO(D:\Home\Macro\macro.txt)}
NAME キー送信
FORMAT {%SEND_KEYS(送信内容)}

キー送信を行います。

各キーは、1つまたは複数の文字で表されます。 1つのキーボード文字を指定するには、文字自体を使用します。 たとえば、文字 A を表すには、文字列 "A" をメソッドに渡します。 A、B、および C という文字を表すには、引き数に "ABC" 指定します。

正符号 (+)、キャレット (^)、パーセント記号 (%)、チルダ (~)、およびかっこ () は、特別な意味を持ちます。 これらの文字のいずれかを指定するには、中かっこ{}で囲みます。 たとえば、プラス記号を指定するには、"{+}" を使用します。 中かっこ文字を指定するには、"{{}" および "}" を使用します。 角かっこ[]は特別な意味を持ちません。

キー コード
BackSpace {BACKSPACE} または {BS}
DELETE {DELETE} または {DEL}
上方向キー {UP}
右方向キー {RIGHT}
下方向キー {DOWN}
左方向キー {LEFT}
ENTER {ENTER}または~
ESC {ESCAPE} または {ESC}
Tab {TAB}
下方向キー {DOWN}
F1 ~ F15 {F1} から {F15} まで
Altキー %
Ctrlキー ^
Shftキー +()
例1
「test」とタブをキー送信する。
{%SEND_KEYS(test{TAB})}
例2
「Ctrl + A」をキー送信する
{%SEND_KEYS(^a)}
例3
「Shift + Ctrl + A」をキー送信する
{%SEND_KEYS(+(^a))}
NAME ウインドウ前面化
FORMAT {%SET_FOREGROUND_WINDOW(タイトル)}

引数のタイトルと同じウインドウを探して前面にする。

例1
「無題 - メモ帳」をフォアグラウンドにする。
{%SET_FOREGROUND_WINDOW(無題 - メモ帳)}
NAME プリンター有効チェック
FORMAT {%PRINTER_IS_ENABLED(プリンター名)}

プリンターが有効である場合はTrueを返却します。

判定処理としては、プリンターからジョブ数が正常に取得できるかのチェックを行っています。

プリンターが応答不能などの状態になった場合は、プリンターの状態を取得する処理で例外が発生するようになります。

その例外を検知した場合はFalseを返却します。

プリンターが一時停止などのステータス等は調べておりません。プリンターのプロパティが一時停止中や、物理プリンターの状態エラーの場合でも、プリンターが異常状態でなければTrueが返却されます。

「Microsoft Print to PDF」や「DocuWorks PDF」などの仮想プリンターは一時停止中であってもPDF出力は行われるようです。

存在しないプリンター名を指定した場合はエラーが発生します。

このマクロがFalseを返却する場合は、指定したプリンターが使用不可能な状態になっており、PCを再起動するまで復旧しない可能性が高いです。

例1
「DocuWorks PDF」が有効であるか調べる
{%PRINTER_IS_ENABLED(DocuWorks PDF)}
NAME 設定ファイルのフォルダパス取得
FORMAT {%GET_SETTING_FOLDER_PATH()}

eDocArrangement2の設定ファイルのフォルダパスを取得します。

NAME ユーザー名取得
FORMAT {%GET_USER_NAME()}

ログオン中のユーザー名を取得します。(サービスから実行している場合はサービスのコントロールパネルのログオンタブで設定したユーザーになります。)