ファイル選択ダイアログが開かない 削除
Message#1 2017年9月15日(金)10時42分 From: 初心者 |
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);" ・・・・ 開かない |
上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。