ファイル選択ダイアログが開かない 削除
Message#2 2017年9月19日(火)07時56分 From: ジャッカル |
確か前にも同じような質問があって、VBSか何かで対応したといった内容があったけど、 どこの質問だったか分からなかった。 たぶん結構前だったから過去の方からチェックすると見つかるかも。 > EXCEL VBAでホームページ(IE)にファイルをアップさせる記述を書いています。 > ファイル選択のダイアログのところに直接フルパスでアップするファイル名を入力させたいと考えたいます。 > objIE.document.getElementsByName("csv")(0).Click > でクリックできファイル選択ダイアログボックスが開くのですが、その後にVBAに制御が戻って来ないため、色々調べていたところ「VBA IE制御でファイル選択ダイアログにファイルパス入力(62945)」を見つけ、window.setTimeoutを使いVBAに戻ったところで、SendKeys "^v", Trueを実行すればできると分かり、下記のように記述しましたが、かんじんのファイル選択ダイアログボックスが開きません。 > window.setTimeoutを使う前のobjIE.document.getElementsByName("csv")(0).Click > では確実にファイル選択ダイアログボックスが開いたので、記述がどこか間違えているのでしょうか? > 他にダイアログのウィンドウハンドルをFindWindowで取得し、SendMessageでメッセージを送信する方法も見つけたのですが、ダイアログ表示させた後はそもそもVBAに制御が戻って来ないので使えるのか分からず試していません。 > window.setTimeoutを使う場合の方法を教えていただきたく、よろしくお願いします。 > > <関連場所のスクリプト記述> > objIE.document.parentWindow.execScript "window.setTimeout(""document.getElementsByName('csv')(0).Click();"",10);" > '1秒待機 > Sleep (1000) > > <試した記述と結果> > 記述を変えてファイル選択ダイアログボックスが開くかどうか試した結果は下記です。 > 解決のヒントになりませんでしょうか? > @objIE.document.getElementsByName("csv")(0).Click ・・・・ 正常に開いた > AobjIE.document.parentWindow.execScript "window.setTimeout(""document.getElementsByName('csv')(0).Click();"",10);" ・・・ 開かない > BobjIE.document.forms("form1").csv.Click ・・・・ 正常に開いた > CobjIE.document.parentWindow.execScript "window.setTimeout(""document.forms('form1').csv.Click();"",10);" ・・・・ 開かない > DobjIE.document.getElementsByTagName("csv")(0).Click ・・・・ 実行時エラー91 > EobjIE.document.parentWindow.execScript "window.setTimeout(""document.getElementsByTagName('csv')(0).Click();"",10);" ・・・・ 開かない |
上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。