エクセルVBAで、ファイルのアップロードができるフォームをSubmitした後に、遷移先の画面のDOMにアクセスできません。 削除
Message#1 2015年9月7日(月)06時49分 From: みっち |
エクセルVBAで、ファイルのアップロードができるフォームをSubmitした後に、遷移先の画面のDOMにアクセスできません。 遷移先の画面でファイルはちゃんとアップロードされていることを確認できています。 スリープなどで待機させる方法も試しましたが、いくら待機させてもDOMを読んでくれません。 実行しようとしているサイトはニコニコモンズの素材アップロードフォームです。 解決方法をご教示いただけないでしょうか。コードは以下になります。 ************************************** Sub ボタン1_Click() 'IE起動 Dim objIE As Object Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://commons.nicovideo.jp/upload" '1画面目 Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop objIE.document.Forms("upform").Item("agree1").Checked = True '同意チェックボックスにチェック objIE.document.Forms(2).Item("upfile").Focus Call type_file_path(objIE, "upfile", "C:\upload\test.mp3") objIE.document.Forms(2).Item(4).Click 'フォーム送信 '2画面目 Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop objIE.document.Forms(2).Item(0).Value = "テスト" 'これが効かない End Sub 'アップロードするファイルのパスを指定 Public Sub type_file_path(objIE, idName As String, file_path) Dim objWS As Object Dim objElement As Object Set objWS = CreateObject("WScript.Shell") ' その右隣にある「参照」ボタンに、WSを使ってフォーカス objWS.SendKeys ("{TAB}") Application.Wait Now + TimeValue("00:00:01") ' SPACEキー押下で,ファイル参照ダイアログを開く objWS.SendKeys (" ") Application.Wait Now + TimeValue("00:00:01") ' ファイルパスをキー入力 objWS.SendKeys (file_path) Application.Wait Now + TimeValue("00:00:01") ' ファイルを開くダイアログを閉じる objWS.SendKeys ("{ENTER}") Application.Wait Now + TimeValue("00:00:01") Set objWS = Nothing End Sub ************************************** ブラウザ:IE11 Excelのバージョン:2010 |
上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。