「input type=file 」のファイルダイアログの開き方について 削除
Message#6 2015年4月13日(月)17時53分 From: 管理人 |
> ファイルダイアログへのファイルパス入力と開くボタンの自動操作には成功し、Web画面のテキストにもファイルパスが表示されますが、その後のsubmitボタンクリックで「-2147352319 オートメーション エラーです。」のエラーが発生しています。 > > 同じ参照ボタンを手操作でクリックし、ファイルダイアログを開いた状態の時にファイルパス入力と開くボタンクリックをVbscriptで行ってから、EXCELVBAでsubmitボタンクリックを実行した場合は正常に動作しました。 > ファイルダイアログを「〜.click」で開いてはいけないということでしょうか? > それともVbscriptでの入力がいけないのでしょうか? > > どなたか判る方は回答をお願いします。 貴重な情報ありがとうございます。 なるほどですね。 参考サイトがなかったので今回は添付ファイル付きのメール送信をIE操作で行ったところ添付ファイル付きでメール送信できました。 ファイル参照の自動化も問題なくできています。 手動でやった場合はうまくいき、自動で処理した場合でエラーが表示されるといことは、処理のタイミングの問題かもしれません。 先に名無しの次郎さんのために処理内容を簡単に説明すると 最初にVbscriptの中の 「ファイルダイアログのタイトル」 → "アップロードするファイルの選択" 「ファイルパス」 → "C:\Users\***\Desktop\aaa.jpg" を対象のファイルダイアログ用に変更します。(上記は参考です) 次にVBA側で Sub sample() Dim objIE As InternetExplorer 'InternetExplorerでテスト用フォームページを起動 Call ieView(objIE, "http://www.vba-ie.net/code/test.html") 'Vbscript呼び出し Shell "WScript.exe ""C:\Users\***\Desktop\test.vbs""" 'ファイル選択をクリック objIE.document.getElementsByName("img")(0).Click waitTime = Now + TimeValue("0:00:05") Application.Wait waitTime Set objForm = objIE.document.forms("form1") 'submitボタンをクリック objForm.submit End Sub で処理します。 ポイントはファイルダイアログのボタンをクリックする前にVbscriptを呼び出しておく点です。 ファイルダイアログが開いたらVBAの処理がとまってしまうので、閉じるまで次の処理を実行しません。 ですので、先に呼び出しておいてVbscriptでWScript.sleep(5000)により開くまで処理を停止させています。 こちらの処理はサンプルページですので、なにも起きませんが参照されているのを確認してください。 そこで、今回のオートメーション エラーですが、「-2147352319」を検索してもでてこなかったので、外部なのかVBA側なのか分かりませんでした。 submitの処理をどのタイミングかによってエラーが起きる場合もあるので、もう少し情報いただければと思います。 |
上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。