質問: VBAのsleepやwaitに関してなのですが、 下記のコードを実行したところ、 1秒待機 ctrc+C 1秒待機 → 2秒待機 → 1秒待機 ctrl+V とならず 数秒待機 ctrc+C → → ctrl+V と連続動作になるのは何故でしょうか。 環境 VBA 7.1 エクセル 2016です 宜しくお願いします。 ``` Sub コピー_Click() Application.Wait Now + TimeValue("0:00:01") SendKeys "^c", True Sleep 1000 SendKeys "{RIGHT}", True Application.Wait Now + TimeValue("0:00:01") Sleep 1000 SendKeys "{RIGHT}", True Sleep 1000 SendKeys "^v", True Sleep 1000 End sub ``` 背景 VBAを眺めて2日程で、当面の目標は、会社の自部署経費管理のエクセル帳票のデータを、 IEで入力する会社の入力システムにコピペしたいです。(1アイテムにつき10項目程度) まずはSendKey命令の力技で取り組んで見ようと思ってます。
回答: 回答の直接の回答としては、seastar3さんの通りですが、 > > 当面の目標は、会社の自部署経費管理のエクセル帳票のデータを、 > > IEで入力する会社の入力システムにコピペしたいです。 > > > を実現する手段として、SendKey を使うのは、不安定すぎるかと思います。 「VBA IE操作」などのキーワードでWEB検索するといろいろ解説ページが見つかるのでそれを参考にしてコーディングすることをお勧めします。 下記とかがお勧めです。 VBAによるIE自動制御