Title: ポップアップダイアログを表示するマクロ

1 はじめに

WSHを使って、ポップアップダイアログを表示するマクロです。 message文、question文との違いは以下になります。

1.1 使い方

execmacro文を使用し、他のマクロからこのマクロを呼び出し、戻り値を "getresultex(-1);"で、取得してください。 正常なら、選択したボタンを、エラーの場合は、""を返します。(詳細は戻り値を参照)

マクロフォルダに、「popup.mac」がある場合の例です。

execmacro "popup.mac", "メッセージ", "待ち時間(秒)", "タイトル", "オプション";
$popup = getresultex(-1);

呼び出すマクロと同じ場所に、「popup.mac」がある場合は、

execmacro currentmacrodirectory + "\\popup.mac", "メッセージ", "待ち時間(秒)", "タイトル", "オプション";

とした方が、確実です。

このマクロを、マクロの実行ダイアログから単独で実行しても、何も実行しません。 (引数がセットされていないので、エラーで終了します。)

1.2 引数

待ち時間以降の引数は省略可能です。メッセージがないと、エラーで終了します。

メッセージ(必ず指定してください)

ダイアログに表示するメッセージ

以下の文字列を与えると、このマクロのバージョン情報を返します。

待ち時間
ダイアログの操作待ち時間。秒単位 で指定すること。 ダイアログを表示して、指定した待ち時間を過ぎると、自動的に閉じます。 "0"を指定すると、ボタンが押されるまで待ちます。
タイトル
ダイアログに表示するタイトル文字。省略した場合は、"秀丸エディタ"になります。
オプション

以下の数字の合計値 または、文字列をカンマ区切りで指定すること。 省略した場合は、[OK]ボタンのみの表示となる。

例) [はい]、[いいえ]、および [キャンセル] を表示し、問い合わせアイコンで、キャンセルにフォーカス。
   数字で指定
   execmacro "popup.mac", "テスト", "10", "", "547";//3 + 32 + 512 = 547
   文字列で指定
   execmacro "popup.mac", "テスト", "10", "", "YesNoCancel,Question,DefaultButton3";

// 表示するボタン
数字     指定する文字列
 0       OKOnly              [OK] ボタンのみを表示します。
 1       OKCancel            [OK] ボタンと [キャンセル] ボタンを表示します。
 2       AbortRetryIgnore    [中止]、[再試行]、および [無視] の 3 つのボタンを表示します。
 3       YesNoCancel         [はい]、[いいえ]、および [キャンセル] の 3 つのボタンを表示します。
 4       YesNo               [はい] ボタンと [いいえ] ボタンを表示します。
 5       RetryCancel         [再試行] ボタンと [キャンセル] ボタンを表示します。
 // 表示するアイコン(「Question」を指定した場合、XP/Vista/7では、音が鳴りません。
                      OS側の設定で鳴らす事は可能だが、デフォルトで無音)
 16      Critical            警告メッセージ アイコンを表示します。
 32      Question            問い合わせメッセージ アイコンを表示します。
 48      Exclamation         注意メッセージ アイコンを表示します。
 64      Information         情報メッセージ アイコンを表示します。
 // デフォルトのボタン
 0       DefaultButton1      最初のボタンを既定にする
 256     DefaultButton2      2 番目のボタンを既定にする
 512     DefaultButton3      3 番目のボタンを既定にする
 // その他オプション
 0       ApplicationModal    アプリケーションをモーダルに設定します。
                             メッセージ ボックスに応答するまで、現在選択中のアプリケーションの実行を継続できません。
 4096    SystemModal         システムをモーダルに設定します。
                             メッセージ ボックスに応答するまで、すべてのアプリケーションが中断されます。
 65536   MsgBoxSetForeground 最前面のウィンドウとして表示します。
 524288  MsgBoxRight         テキストを右寄せで表示します。
 1048576 MsgBoxRtlReading    ヘブライ語やアラビア語のシステムの場合、テキストを右から左の方向で表示します。

1.3 戻り値

戻り値 = 押されたボタン になります。 有効な戻り値は以下になります。エラーがあった場合は、""を返します。 実際は数字ではなく、文字列に変換されています。("1"、"-1"等)

1   [OK] ボタン。
2   [キャンセル] ボタン。
3   [中止] ボタン。
4   [再試行] ボタン。
5   [無視] ボタン。
6   [はい] ボタン。
7   [いいえ] ボタン。
-1  タイムアウトした場合

2 注意事項や制限事項など

WSHのShellオブジェクトにある"Popup"メソッドを、秀丸エディタのCOM機能を使って呼び出しているだけです。 execmacro文経由で再利用しやすいように、ラップしているだけなので、 WHSがわかるなら、直接記述したほうが、いいかもしれません。(メイン部分は10行程度)

3 その他

4 連絡先

5 変更履歴

2013/10/29 Version 1.0.0