「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の処理をどのタイミングかによってエラーが起きる場合もあるので、もう少し情報いただければと思います。

上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。

パスワード:

VBAのIE制御についてのQ&A掲示板

↑エクセルVBAのIE(InternetExplorer)操作で分からない事があればこちらの掲示板よりご質問ください^^

ExcelのVBA初心者入門

↑こちらはExcelのVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

VBAでIE(InternetExplorer)制御の準備

エクセルVBAでIE制御の応用編

こちらでは、エクセルVBAで実際に作成したIE(InternetExplorer)制御ツールをまとめています。自動ログインや情報収集など具体的に解説しています。IE(InternetExplorer)制御をされる方は参考にしてください。

【ダウンロード】IE操作に便利なツール

こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。

IEオブジェクトのメソッド・プロパティ

こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。

IE操作に利用されているVBA関数

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。

IE操作に利用されているステートメント

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。

IE(InternetExplorer)制御のVBAコード

こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。

ExcelのVBAで作成した役立つVBAコード

こちらでは、IE(InternetExplorer)制御の利用だけでなく、Excel全般で利用できるVBAコードです。エクセルVBAで役に立つものばかりですので、ご利用ください。

dmb.cgi Ver. 1.068
Copyright(C) 1997-2014, hidekik.com