@DDEExecute (式言語)

指定されたコマンド文字列を、接続 ID で識別される DDE アプリケーションに渡します。@DDEExecute は常に @DDEInitiate と @DDETerminate と共に使用します。

注: DDEExecute は UNIX と Macintosh ではサポートされていません。

構文

@DDEExecute( conversationID ; command )

パラメータ

conversationID

conversationID は @DDEInitiate 関数によって返されます。この関数は @DDEExecute の前に必ず実行します。独自の名前を付けた変数を指定します。この変数を使用して、Domino と他のアプリケーションとの間で接続 ID を受け渡します。接続 ID が無効な場合、エラーが返されます。@IsError を参照してください。

command

文字列。command には、必ず受信側のアプリケーションの構文規則に従う文字列を指定します。各アプリケーションのマニュアルを参照してください。コマンドは完全な形で DDE アプリケーションに渡されるように引用符で囲みます。受信側のアプリケーションは、この文字列を受け取ると DDE コマンドとして解釈します。

戻り値

acknowledgment

数値。

使用法

この関数は、主にフィールド式、エージェント、ツールバーボタンで使用します。列式や選択式では使用できません。また、ウィンドウタイトル式やフォーム式でも使用できません。Macintosh は DDE に対応していないため、DDE コマンドは Macintosh クライアント上では使用できません。また、DDE コマンドの構文は、プラットフォームやアプリケーションによって異なることがあります。

ユーザーの NOTES.INI ファイルに次のステートメントが含まれている場合は、

NoExternalApps=1

@DDE 関数を使用する式はすべて無効になります。この場合、式が失敗するだけでエラーメッセージは表示されません。

最高 10 個の DDE 接続を同時に実行できます。ただし、通常は、一度に 1 つの接続だけを実行するようにします。DDE 接続が完了したら、必ず DDE 接続を終了してください。そうしないと、セッション数が足りなくなり、必要なときに接続を開始できなくなります。

この関数は、Web アプリケーションでは使用できません。

外部アプリケーションのデータにアクセスする方法については、「フォームにオブジェクトをリンクする/埋め込む」を参照してください。

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");

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]); 

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

@Command([EditPaste])))

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