ファイル参照ダイアログを使用するに当たって、いろいろと手段はあるのですが、まとめて、利点/欠点を考えたことがなかったので、ここらで自分用にまとめ。
ほとんどの内容は吉岡照雄さん作成の、OpenFileDialog.vbsの流用となります。
ほとんどの内容は吉岡照雄さん作成の、OpenFileDialog.vbsの流用となります。
引数指定 | 保存ダイアログ | ||||
---|---|---|---|---|---|
FileFilter | Title | MultiSelect | InitDir | ||
1.IEで<input type="file"> | △1 | × | × | △1 | × |
2.HtmlDlgHelper | ○ | ○ | × | △2 | × |
3.ExcelでGetOpen | ○ | ○ | ○ | △3 | ○ |
4.MSComDlg.CommonDialog | ○ | ○ | ○ | ○ | ○ |
5.UserAccounts.CommonDialog | ○ | × | × | ○ | × |
6.SAFRCFileDlg | × | × | × | × | ○ |
△1 SendKeysでフルパスを送り込む ex. "C:\Program Files\*.txt"
△2 initFileにフルパスを入れることで可能
△3 Application.DefaultFilePath を変更してオブジェクトの開放/再取得をする
(他にも方法は有りますが、ExecuteExcel4Macroを使用するので
上記のほうがベターと思われます)
△2 initFileにフルパスを入れることで可能
△3 Application.DefaultFilePath を変更してオブジェクトの開放/再取得をする
(他にも方法は有りますが、ExecuteExcel4Macroを使用するので
上記のほうがベターと思われます)
***補足事項***
- IE8以降ではセキュリティ回避の為の手法が必要
- あらかじめ<object>としてHtmlに仕込が必要ですが、セキュリティにかかるので、HTAで使用するのが無難
- Excelがインストールされていないと使用できない
- VB環境がインストールされていないと使用できない(ランタイムでいけるのかな?)
- および 6. OSがXP限定
細かい内容は上記吉岡照雄さんのスクリプトを参考にされるといいかと思います。
追々それぞれの方法については、投稿にしたいと思いますが、
MultiSelectができる手段って限られてるんだな~。
Excel無しでインストール不可の環境だと実質実現できないってことになりますなこりゃ。
0 件のコメント:
コメントを投稿