「input type=file 」のファイルダイアログの開き方について 削除
Message#1 2015年4月10日(金)19時15分 From: DSC_渡辺 |
EXCELVBAでweb画面を操作し、「input type=file name="XXX"」の参照ボタンをクリックしてファイルダイアログを開いています。(IEバージョンは10) Set ObjIE = CreateObject("InternetExplorer.Application") ObjIE.Visible = True ObjIE.Navigate web画面のURL ObjIE.document.forms("フォーム名").Item("XXX").Click ファイルダイアログにファイルパスを入力してから開くボタンを押下してファイルダイアログを閉じ、submitボタンをクリックしてファイルアップロードを実行しようとしたところ、「-2147352319 オートメーション エラーです。」とのエラーになってしまいました。 色々と調べたところ、 「click()で開かれたダイアログ上にファイルパスを手動入力しても,formをsubmitするタイミングで,入力したはずのファイルパスが不正値として消去されてしまい,送信できない。」という記述をネットで見つけました。 Clickによってファイルダイアログを開いても正常に動作しないということでしょうか? もし、そうならば、他に対処方法はないでしょうか? ちなみに、「Sendkey」による操作も試しましたが、こちらではファイルダイアログを開くことができませんでした。 Set wObject = CreateObject("WScript.Shell") For Each objElement In ObjIE.document.getElementsByTagName("input") If InStr(objElement.Name, "XXX") > 0 Then objElement.Focus objElement.Select Sleep(1000) ' その右隣にある「参照」ボタンに、WSを使ってフォーカス wObject.SendKeys ("{TAB}") Sleep(1000) ' SPACEキー押下で,ファイル参照ダイアログを開く wObject.SendKeys (" ") DoEvents Exit For End If Next |
上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。