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)
のところで「書き込みできません」のエラーが表示されてしまいます。
どのようにすればフォルダ参照のダイアログボックスを表示できるのでしょうか?
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>
-------ここまで-------
この回答への補足
同じように書いて実行するのですが、やはりだめです。
ネットを調べてみると、環境がWin2000とIE6.0だと
エラーになる。Win2000とIE5.Xなら平気だと書かれていたのですが、どのような環境でしょうか?
No.5
- 回答日時:
#4です。
訂正っつ~か削除依頼です。
IEのウインドウハンドルって取得できないため、
スクリプトデバッガ-などでないと、
この方法は使えませんでした。
というわけで、
#3の方が正しいというわけでした。
No.4
- 回答日時:
Set objFolder = Shell.BrowseForFolder(this.hWnd, "フォルダを選択してね!", 1)
でやったら大丈夫でしたよ。
ウインドウハンドル=0って
タスクバーとか、デスクトップとかが使用してるはずだから、
書き込みできないってことだと思います。
No.3
- 回答日時:
確認ですが、
実行方法は、通常のフォルダにあるhtmlファイルを
ダブルクリックする感じですか?
それともIIS等のWWWサーバーから起動してますか?
後者であれば、エラーが出るのが正常です。
通常は<input type="file"> を使います。
とりあえず前者の方法で試してください。
ソース自体は間違ってないです。
外していたらごめんなさい。
この回答への補足
ありがとうございます。
最初は<input type="file"> を使ったのですが
これはファイルしか選択できませんよね。
フォルダの選択がしたいのです。
実行方法はhtmlファイルを直接ダブルクリックしています。
No.2
- 回答日時:
環境は
Windows2000Pro SP4
IE 6.0.2800.1106
です。
この回答への補足
ありがとうございます。
まったくおなじ環境です。
教えていただいたHTMLをそのままコピーして使っても
やはりエラーになり、ダイアログが表示されません。
「ページでエラーが発生しました。」とステータスバーに
表示され、詳細を見ると
ライン:8
文字:1
エラー:書き込みできません。
コード:0
URL:file://d:\a.html
と、書かれています。
いったい何が原因なのでしょうか?
WindowsXPでも試してみましたが、だめでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- Visual Basic(VBA) VBAでファイル名を指定して保存するとき 4 2023/03/26 21:55
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- その他(プログラミング・Web制作) セレクトボックスで選択された値をコントローラーで使用したい 2 2022/07/26 16:41
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) 【マクロ】フォルダAからダBへファイルを、ファイルの更新日時の条件で、1つづつ移動するには? 3 2022/08/25 09:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
VBSでファイル名と同じフォルダ...
-
VBA 最新のフォルダ取得
-
vbsで選択ダイアログを表示した...
-
サーバ内のフォルダ名と各フォ...
-
Excelで指定したフォルダに保存...
-
ファイル名と同名のフォルダを...
-
ACCESS VBAからのファイル削除
-
windowsでテキストファイルの各...
-
フォルダにリンクを貼りたい
-
多量のファイルをフォルダに自...
-
ホームページビルダーで新しい...
-
excel VBA Dirにて検索したフォ...
-
Excelvbaでブックをコピー名前...
-
ファイルとフォルダのどちらも...
-
AIX findコマンド
-
VBAでExcelのBookの串刺し集計
-
C言語でのフォルダ作成
-
フォルダ選択ダイアログ:ネッ...
-
30日前を残して過去の日付フォ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
パス名に2バイト文字(マルチバ...
-
ファイル名と同名のフォルダを...
-
VBA 最新のフォルダ取得
-
Excelのハイパーリンクについて...
-
デスクトップの画像をhtmlに表...
-
ディレクトリ名変更してコピー...
-
VBA フォルダ名に特定の文字を...
-
バッチファイルで指定フォルダ...
-
フォルダ内のPDFファイル名を変...
-
Access VBA で フォルダ権限...
-
excelマクロ 冒頭3文字が一致す...
-
【マクロ】ファイル名の日付に...
-
フォルダにリンクを貼りたい
-
会社のネットワーク上のファイ...
-
多量のファイルをフォルダに自...
-
C ファイル出力で、フォルダが...
-
保存先のフォルダ名を指定した...
-
vbsで選択ダイアログを表示した...
-
Excel VBA 同じ名前のフォルダ...
おすすめ情報