Title: ファイル選択ダイアログを表示するマクロ

1 はじめに

秀丸マクロで、ファイル選択ダイアログを表示するマクロです。

外部プログラムとして、以下のどれかを使います。

外部プログラムが見つからない場合、または起動に失敗した場合は、秀丸本体を使用しますが、DLLを入手することをお勧めします。

田楽DLL、macrodll.dllは、以下のどこかに配置してください。

1.1 各DLLの入手先

2 使い方

execmacro文を使用し、他のマクロからこのマクロを呼び出し、戻り値を "getresultex(-1);"で、取得してください。 正常なら、選択したファイルのファイル名を、キャンセルした場合や、異常の場合は、""を返します。 (マクロフォルダに、「SelectFile.mac」がある場合の例です。)

execmacro "SelectFile.mac", "モード", "初期フォルダ", "フィルター", "タイトル"
$SelectFile = getresultex(-1);

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

execmacro " currentmacrodirectory + "\\SelectFile.mac", "モード", "初期フォルダ", "フィルター", "タイトル"

とした方が、確実です。

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

2.1 引数

途中の引数を使わない場合は、""を指定してください。

モード(必ず指定してください)

ダイアログを開くプログラムの指定。 通常は"0"(自動)を指定してください。 "0"以外を指定した場合、指定したプログラムを使用します。

0:自動判別
1:田楽DLL
2:macrodll.dll
3:MSComDlg.CommonDialog
4:HTA
初期フォル(省略可能)
最初にひらくフォルダの指定。 省略した場合、最初に開くフォルダは不明です。
フィルター(省略可能)

選択するファイルの拡張子を指定。

"説明|拡張子"という形式で指定します。複数の指定も可能。

例) "すべてのファイル|*.*"
例) "テキストファイル|*.txt|すべてのファイル|*.*"

省略した場合は、"すべてのファイル|*.*" が設定される。

タイトル(省略可能)
ダイアログに表示するタイトル。 省略した場合は、"ファイルを選んでください。"になります。 実行環境が、秀丸エディタ本体の場合は無視されます。

2.2 戻り値

選択したファイルのファイル名がかえります。キャンセルした場合や、エラー発生時は、""を返します。

2.3 特殊な引数

2.3.1 バージョン情報の取得

第一引数(このマクロでは「モード」)に以下の文字列を指定すると、バージョン情報を返します。

"%%GetVersionStr%%\n"

バージョン情報を文字列で返します。

selectfile.mac Ver.1.1.0
"%%GetVersionNum%%\n"

バージョン情報を、数値に変換可能な文字列で返します。

110

2.3.2 ダイアログを開く方法の確認

第一引数(このマクロでは「モード」)に、"-1"を指定すると、どの方法でダイアログを表示するか、文字列で返します。

1:田楽DLL
2:macrodll.dll
3:MSComDlg.CommonDialog
4:HTA
99:秀丸エディタ

各DLLのロードや、オブジェクト作成までしか行いません。 実際にダイアログは開かないので、実行時と異なる場合もあります。

2.3.3 外部プログラムの確認

第一引数(このマクロでは「モード」)に、"-2"を指定すると、使用可能な外部プログラム一覧を返します。

1:田楽DLL
2:macrodll.dll
3:MSComDlg.CommonDialog
4:HTA

各DLLのロードや、オブジェクト作成までしか行いません。その為、実行できない場合もあります。

2.3.4 DLLの直接指定

第一引数(このマクロでは「モード」)に、DLLのフルパスを設定すると、そのDLLを使用します。 対応しているのは、「田楽DLL」と「macrodll.dll」のみです。

初期フォルダ以降の引数は、必要に応じて設定してください。

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

4 その他

5 連絡先

6 変更履歴

2013/10/12 Version 1.0.0
2013/10/19 Version 1.1.0