式言語


例:@DDEExecute
次の式では、1-2-3 for Windows と Lotus Domino との間の DDE 接続を処理します。

Conv_ID := @DDEInitiate("123W";"Budget95.wk3");
@If (@IsError(Conv_ID); @Do(@Prompt([Ok];"Error";
"Unable to initiate conversation");@Return(""));
@Do(@DDEPoke(Conv_ID;"A:B6"@Text(Amount));
@DDEExecute(Conv_ID;"[RUN(\"{Goto}A:B6~\")]");
@DDEExecute(Conv_ID;"[RUN(\"/rfc~~\")]");
@DDEExecute(Conv_ID;"[RUN(\"{Goto}A:B10~{EditュCopy}\")]");
@DDETerminate(Conv_ID);
@Command([EditNextField]);
@Command([EditPaste])))

次に 1 行ずつ説明します。

Conv_ID := @DDEInitiate("123W";"Budget95.wk3");

Lotus Domino と 1-2-3 の間の接続を開始します。このステートメントでは、使用するワークシート (BUDGET95.WK3) を指定し、接続 ID を変数 Conv_ID に保存します。指定したファイルは、@DDEInitiate を実行する前に必ず開いておきます。

@If (@IsError(Conv_ID); @Do(@Prompt([Ok];"Error";
"Unable to initiate conversation"); @Return(""));

DDE 接続が正常に開始されたかどうかを判断します。正常に開始された場合は式が続行し、それ以外の場合はメッセージが表示され、式の実行は停止します。

@Do(@DDEPoke(Conv_ID;"A:B6";@Text(Amount));

[Amount] という数値型フィールドの内容を文字列に変換し、その値を 1-2-3 ワークシートのセル A:B6 に渡します。DDEPoke を経由して渡せるのは文字列だけなので、値は必ず文字列に変換します。

@DDEExecute(Conv_ID;"[RUN(\"{Goto}A:B6~\")]");

セル A:B6 をワークシート内のカレントの位置にします。

@DDEExecute(Conv_ID;"[RUN(\"/rfc~~\")]");

[範囲(R) 表示形式(F) 通貨] コマンドを 1-2-3 に渡します。セル A:B6 は通貨形式になります。

@DDEExecute(Conv_ID;"[RUN(\"{Goto}A:B10~{EditュCopy}\")]");

[ジャンプ] コマンドと [編集] - [コピー] コマンドを 1-2-3 に渡します。カーソルはワークシート内のセル A:B10 に移動し、そのセルに保存されている値が Windows のクリップボードにコピーされます。

@DDETerminate(Conv_ID);

DDE 接続を終了します。

@Command([EditNextField]);

現在の Lotus Domino 文書内の次のフィールドに移動します。

@Command([EditPaste])))

クリップボードの内容 (セル A:B10 からの値) をそのフィールドに貼り付けます。

関連項目