プロが教える店舗&オフィスのセキュリティ対策術

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)
のところで「書き込みできません」のエラーが表示されてしまいます。
どのようにすればフォルダ参照のダイアログボックスを表示できるのでしょうか?

A 回答 (5件)

ん?普通に動きますが?



なんかよく分かりませんが,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>
-------ここまで-------

この回答への補足

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

補足日時:2004/08/17 16:53
    • good
    • 0

#4です。


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

というわけで、
#3の方が正しいというわけでした。
    • good
    • 0

Set objFolder = Shell.BrowseForFolder(this.hWnd, "フォルダを選択してね!", 1)


でやったら大丈夫でしたよ。

ウインドウハンドル=0って
タスクバーとか、デスクトップとかが使用してるはずだから、
書き込みできないってことだと思います。
    • good
    • 0

確認ですが、


実行方法は、通常のフォルダにあるhtmlファイルを
ダブルクリックする感じですか?

それともIIS等のWWWサーバーから起動してますか?

後者であれば、エラーが出るのが正常です。
通常は<input type="file"> を使います。

とりあえず前者の方法で試してください。
ソース自体は間違ってないです。

外していたらごめんなさい。

この回答への補足

ありがとうございます。
最初は<input type="file"> を使ったのですが
これはファイルしか選択できませんよね。
フォルダの選択がしたいのです。

実行方法はhtmlファイルを直接ダブルクリックしています。

補足日時:2004/08/18 08:58
    • good
    • 0

環境は


 Windows2000Pro SP4
 IE 6.0.2800.1106
です。

この回答への補足

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

補足日時:2004/08/17 17:42
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!