する質問をすることでしか得られない、回答やアドバイスがある。23ACCESSで商品データベースを持っており、通販サイトへ商品登録作業を簡略化しようとVBAで出品プログラムを作っております。本来は通販サイトへの画像の登録はWEBブラウザでドラッグ&ドロップで登録するか、ドロップできる箇所をクリックして画像ファイル選択ダイアログが開き選択する手順です。type="file">の箇所へIE制御で値を直接入力ができなかったので、原始的ですが、objIE.Document.getElementsByClassName("〇〇〇")(0).Clickでクリックし、ファイル選択ダイアログボックスが開くところまでは完成しました。'Ctrl+vのキー入力でコピペできないかなと考えていたのですが、うまくいきません。VBAから行いたい作業です。1、2、3までは問題なく動作しており、4のCtrl+vの部分がダイアログボックスではなくIEのブラウザ上で動作してしまっています。画面上ではダイアログボックスは最前面に表示されているのですが。ダイアログボックスのファイル名を入力するテキストボックスには何も入力されてない状態でVBAは終了している状態です。この状態でキーボードから直接Ctrl+vを押すと問題なくファイルパスは入力されますので、クリップボードにもデータはわたっております。5:の開くクリックは、Ctrl+vの後にEnterクリックで登録できると思います。attachmentクリップ0気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。質問の評価を上げたことを取り消します低評価-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。件sort評価が高い順sort新着順sort古い順link+2確認結果VBAからのIE制御ということで、Access環境が用意できなかったのでExcel環境で確認してみました。"^v",trueを実行されているとのことでしたので、同様の記述をExcelVBAで作成し、参照ボタンのある適当なWebページを開いて確認しました。1行ずつデバッグ実行してみましたが、こちらで確認する限りClick処理実行後は開かれた参照ダイアログを閉じるまでVBA側に制御が返ってきませんでした。参照ダイアログを閉じるとVBA側に制御が戻り、Sendkeysコマンドを実行する動きとなりました。上記の現象を調べてみたところ、下記のサイトに関連しそうな情報ありました。Trueとしたところ、参照ダイアログにクリップボードの内容が貼り付けられました。コード内にSleep命令がありますが、これはボタンクリック直後にSendkeysしてもまだ参照ダイアログが開かれていないための対応です。利用するには標準モジュールでAPI宣言が必要です。Long)環境が異なるため動作の違いがあるかもしれませんが、参考になれば幸いです。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。19:53jawaさんお返事遅くなり申し訳ございません。先ほど、ご回答いただきましたソースをもとに修正したところ、見事にACCESS環境でも動作いたしました。今までかなり苦労していろいろ試して駄目だってので、パスがペーストされた瞬間本当に感動いたしました。ベストアンサーとしたいところですが、一度ベストアンサーを別の回答者様につけさせていただき、解決済みとさせていただいた後ですので、高評価だけでお許しいただけますでしょうか(汗)。これで一歩前に進めます。ありがとうございました。お返事遅くなり申し訳ございません。先ほど、ご回答いただきましたソースをもとに修正したところ、見事にACCESS環境でも動作いたしました。今までかなり苦労していろいろ試して駄目だってので、パスがペーストされた瞬間本当に感動いたしました。ベストアンサーとしたいところですが、一度ベストアンサーを別の回答者様につけさせていただき、解決済みとさせていただいた後ですので、高評価だけでお許しいただけますでしょうか(汗)。これで一歩前に進めます。ありがとうございました。キャンセル完了するlinkcheckベストアンサー0第2引数をFalseにしてみてもだめですか。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。08:00hatena19様ご回答ありがとうございます。Falseは試しては見ましたが、駄目でした。原因を探るために、sendkeysでTabをキー入力してみたところ、アップロードダイアログボックスの裏で、ダイアログを開いた元のWEBページ上でTAB移動しておりましたので、VBA上ではWEBエージがアクティブになっているのかなと推測しておりますが、ダイアログボックスがアクティブにできなくてこちらも対処できておりません。ご回答ありがとうございます。試しては見ましたが、駄目でした。原因を探るために、sendkeysでTabをキー入力してみたところ、アップロードダイアログボックスの裏で、ダイアログを開いた元のWEBページ上でTAB移動しておりましたので、VBA上ではWEBエージがアクティブになっているのかなと推測しておりますが、ダイアログボックスがアクティブにできなくてこちらも対処できておりません。使って、ダイアログボックスのウィンドウハンドルを取得、ダイアログボックスをアクティブにする、キー送信する、という高度なことをすることになると思います。(自分にはそのスキルはありません。このような処理を自動生成してくれる便利なものなので有効活用させていただいています。使って、ダイアログボックスのウィンドウハンドルを取得、ダイアログボックスをアクティブにする、キー送信する、という高度なことをすることになると思います。(自分にはそのスキルはありません。このような処理を自動生成してくれる便利なものなので有効活用させていただいています。12:27ご回答ありがとうございます。私もいろいろネットで情報を探しているのですが、WindowsAPIでの処理でダイアログボックスをアクティブにする必要がありそうですね。今回はこの処理のみ手動でCtrl+Vでしのぎます。UWSCの情報大変参考になりました。ありがとうございました。ご回答ありがとうございます。私もいろいろネットで情報を探しているのですが、WindowsAPIでの処理でダイアログボックスをアクティブにする必要がありそうですね。今回はこの処理のみ手動でCtrl+Vでしのぎます。UWSCの情報大変参考になりました。ありがとうございました。ダイアログを開く前に、Wait引数をFalseで開く必用がありますが、してますか。使う方法は、不安定でタイミングによってうまくいく場合といかない場合があるようです。使って実行するようにしたら安定するようになりました。自動記録して生成されたスクリプトファイルです。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。21:56回答ありがとうございます。VBAで完結させたかったので見送っていました。UWSCを最終手段として使う場合の記述がわかったので助かりました。'Ctrl+vのキー入力という順序で、ダイアログが開ききる前にsendkeysのCtrl+vが行われているのも疑って、間に1秒等ストップをかけてみたのですが駄目でした。回答いただいたように、waitをFalseにしてダイアログが開くクリック前にsendkeysを入れてみましたがペーストされませんでした。sendkeysでは厳しいですかね?回答ありがとうございます。VBAで完結させたかったので見送っていました。UWSCを最終手段として使う場合の記述がわかったので助かりました。いう順序で、ダイアログが開ききる前にsendkeysのCtrl+vが行われているのも疑って、間に1秒等ストップをかけてみたのですが駄目でした。sendkeysを入れてみましたがペーストされませんでした。sendkeysでは厳しいですかね?キャンセル完了するlink0今回、VBAで質問内容の処理を試みましたが、うまく解決できませんでしたので、sendkeysでCtrl+Vの処理のところのみ、手動でキーボード入力でCtrl+vで処理することとしました。ご回答いただきましてありがとうございました。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。頂いたご意見への回答は行っておりません。