• ベストアンサー

VBScriptでフォルダ参照ダイアログを表示したい

HTMLファイルの中にVBScriptを記述しています。 内容はボタンが押されたら、フォルダ参照のダイアログ ボックスを表示したいのです。 開発環境は windows2000 IE6.02 スクリプトのところは以下のように記述しています。 Function Getfolder() Set Shell = CreateObject("Shell.Application") Set objFolder = Shell.BrowseForFolder(0, "フォルダを選択してね!", 1) if objFolder is Nothing then  Msgbox("フォルダを選択してください") else  Msgbox(objFolder.Items.Item.Path) end if End Function で、Set objFolder = Shell.BrowseForFolder(0, "フォルダを選択してね!", 1) のところで「書き込みできません」のエラーが表示されてしまいます。 どのようにすればフォルダ参照のダイアログボックスを表示できるのでしょうか?

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

  • ベストアンサー
  • nota55
  • ベストアンサー率37% (138/366)
回答No.1

ん?普通に動きますが? なんかよく分かりませんが,Getfolder()を呼び出している ところでミスがあるとか。 環境:Windows2000Pro IE6.02 動作確認コード:以下を参照 -------ここから------- <HTML> <HEAD> <TITLE>ボタン イベントのテスト</TITLE> <SCRIPT LANGUAGE="VBScript"> <!-- Function Getfolder() Set Shell = CreateObject("Shell.Application") Set objFolder = Shell.BrowseForFolder(0, "フォルダを選択してね!", 1) if objFolder is Nothing then Msgbox("フォルダを選択してください") else Msgbox(objFolder.Items.Item.Path) end if End Function --> </SCRIPT> </HEAD> <BODY> <FORM NAME="Form1"> <INPUT TYPE="Button" NAME="Button1" VALUE="Click"> <SCRIPT FOR="Button1" EVENT="onClick" LANGUAGE="VBScript"> call Getfolder() </SCRIPT> </FORM> </BODY> </HTML> -------ここまで-------

rabu_chihaha
質問者

補足

同じように書いて実行するのですが、やはりだめです。 ネットを調べてみると、環境がWin2000とIE6.0だと エラーになる。Win2000とIE5.Xなら平気だと書かれていたのですが、どのような環境でしょうか?

その他の回答 (4)

  • kakusuke
  • ベストアンサー率36% (95/259)
回答No.5

#4です。 訂正っつ~か削除依頼です。 IEのウインドウハンドルって取得できないため、 スクリプトデバッガ-などでないと、 この方法は使えませんでした。 というわけで、 #3の方が正しいというわけでした。

  • kakusuke
  • ベストアンサー率36% (95/259)
回答No.4

Set objFolder = Shell.BrowseForFolder(this.hWnd, "フォルダを選択してね!", 1) でやったら大丈夫でしたよ。 ウインドウハンドル=0って タスクバーとか、デスクトップとかが使用してるはずだから、 書き込みできないってことだと思います。

  • potedora
  • ベストアンサー率47% (66/140)
回答No.3

確認ですが、 実行方法は、通常のフォルダにあるhtmlファイルを ダブルクリックする感じですか? それともIIS等のWWWサーバーから起動してますか? 後者であれば、エラーが出るのが正常です。 通常は<input type="file"> を使います。 とりあえず前者の方法で試してください。 ソース自体は間違ってないです。 外していたらごめんなさい。

rabu_chihaha
質問者

補足

ありがとうございます。 最初は<input type="file"> を使ったのですが これはファイルしか選択できませんよね。 フォルダの選択がしたいのです。 実行方法はhtmlファイルを直接ダブルクリックしています。

  • nota55
  • ベストアンサー率37% (138/366)
回答No.2

環境は  Windows2000Pro SP4  IE 6.0.2800.1106 です。

rabu_chihaha
質問者

補足

ありがとうございます。 まったくおなじ環境です。 教えていただいたHTMLをそのままコピーして使っても やはりエラーになり、ダイアログが表示されません。 「ページでエラーが発生しました。」とステータスバーに 表示され、詳細を見ると ライン:8 文字:1 エラー:書き込みできません。 コード:0 URL:file://d:\a.html と、書かれています。 いったい何が原因なのでしょうか? WindowsXPでも試してみましたが、だめでした。