• ベストアンサー

ファイル参照ダイアログでの複数ファイル選択

ファイル参照ダイアログで複数のファイルを選択でき、開くを押したら選択されているファイルをすべて参照出来るようにしたいのですが、うまくいきません。 使用できる言語はASP.NET、JavaScript、VbScript、HTMLです。 どなたかよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

#1 Wizard_Zeroです。 すみません、一言忘れてました。私が提示したコードは、WSH用(*.vbs)のコードです。 HTML内に記述するVBScriptの場合はWScriptを取り外して、 Set objComDlg = CreateObject("UserAccounts.CommonDialog") とすれば大丈夫です。(セキュリティ警告が出ますが…)

FUJI_URARA
質問者

補足

出来ました。 ありがとうございます。 けど、ファイルを10個以上選んでOKを押しても表示されないのですが、何か特別な処理が必要なのですか?

その他の回答 (1)

回答No.1

挙げられた言語の中で使えそうなのはVBScriptだけですね。 ということで、VBScriptでソースを書いてみました。 Set objDialog = WScript.CreateObject("UserAccounts.CommonDialog") objDialog.Filter = "TextFile(*.txt)|*.txt|全てのファイル(*.*)|*.*" objDialog.InitialDir = "" '←初期ディレクトリです。ここはお好きに。 objDialog.Flags = &H200& If objDialog.ShowOpen Then ' 複数選択された場合「フォルダ_ファイル1_ファイル2…」( _ は半角スペース)という文字列になるので ' Splitで文字列配列に分解 strFiles = Split(objDialog.FileName, " ") ' 選択されたファイルがひとつのみの場合は、完全なパスがインデックス0に格納されます。 If UBound(strFiles) = 0 Then MsgBox(strFiles(0)) ' 複数選択 Else For i = 1 To UBound(strFiles) MsgBox(strFiles(0) & strFiles(i)) Next End If End If ただし、動作するのはWindowsXPのみで、ファイル選択のダイアログも古いタイプ(8.3形式)なため、使い勝手が悪いかも。 objDialog.Flags = &H80200& として、エクスプローラ形式で指定すると複数ファイルの取得ができなくなってしまうようです。

FUJI_URARA
質問者

お礼

回答ありがとうございます。 早速、組み込んでみたのですが、『エラー:オブジェクトがありません。:'WScript'』というエラーが出るのですが・・・。

関連するQ&A