秀丸マクロで、ファイル選択ダイアログを表示するマクロです。
外部プログラムとして、以下のどれかを使います。
外部プログラムが見つからない場合、または起動に失敗した場合は、秀丸本体を使用しますが、DLLを入手することをお勧めします。
田楽DLL、macrodll.dllは、以下のどこかに配置してください。
execmacro文を使用し、他のマクロからこのマクロを呼び出し、戻り値を "getresultex(-1);"で、取得してください。 正常なら、選択したファイルのファイル名を、キャンセルした場合や、異常の場合は、""を返します。 (マクロフォルダに、「SelectFile.mac」がある場合の例です。)
execmacro "SelectFile.mac", "モード", "初期フォルダ", "フィルター", "タイトル" $SelectFile = getresultex(-1);
呼び出すマクロと同じ場所に、「SelectFile.mac」がある場合は、
execmacro " currentmacrodirectory + "\\SelectFile.mac", "モード", "初期フォルダ", "フィルター", "タイトル"
とした方が、確実です。
このマクロを、マクロの実行ダイアログから単独で実行しても、何も実行しません。 (引数がセットされていないので、エラーで終了します。)
途中の引数を使わない場合は、""を指定してください。
モード(必ず指定してください)
ダイアログを開くプログラムの指定。 通常は"0"(自動)を指定してください。 "0"以外を指定した場合、指定したプログラムを使用します。
0:自動判別 1:田楽DLL 2:macrodll.dll 3:MSComDlg.CommonDialog 4:HTA
初期フォル(省略可能)
フィルター(省略可能)
選択するファイルの拡張子を指定。
"説明|拡張子"という形式で指定します。複数の指定も可能。
例) "すべてのファイル|*.*" 例) "テキストファイル|*.txt|すべてのファイル|*.*"
省略した場合は、"すべてのファイル|*.*" が設定される。
タイトル(省略可能)
選択したファイルのファイル名がかえります。キャンセルした場合や、エラー発生時は、""を返します。
第一引数(このマクロでは「モード
」)に以下の文字列を指定すると、バージョン情報を返します。
バージョン情報を文字列で返します。
selectfile.mac Ver.1.1.0
バージョン情報を、数値に変換可能な文字列で返します。
110
第一引数(このマクロでは「モード
」)に、"-1"を指定すると、どの方法でダイアログを表示するか、文字列で返します。
1:田楽DLL 2:macrodll.dll 3:MSComDlg.CommonDialog 4:HTA 99:秀丸エディタ
各DLLのロードや、オブジェクト作成までしか行いません。 実際にダイアログは開かないので、実行時と異なる場合もあります。
第一引数(このマクロでは「モード
」)に、"-2"を指定すると、使用可能な外部プログラム一覧を返します。
1:田楽DLL 2:macrodll.dll 3:MSComDlg.CommonDialog 4:HTA
各DLLのロードや、オブジェクト作成までしか行いません。その為、実行できない場合もあります。
第一引数(このマクロでは「モード
」)に、DLLのフルパスを設定すると、そのDLLを使用します。
対応しているのは、「田楽DLL」と「macrodll.dll」のみです。
初期フォルダ以降の引数は、必要に応じて設定してください。
HTA の制御は、以下のソフト参考にしています。
OpenFileDialog.VBS V1.04 (http://www.vector.co.jp/soft/winnt/util/se398568.html)
HtaOpenFileIe.VBS を ベースに作成。