3

このアクションをシミュレートしようとしています:

  • 別のアプリケーションをアクティブにし、
  • キーストローク ctrl+c を送信し、
  • エクセルに戻り、
  • キーストロークを送信 ctrl+v

セルにその値があります。

これは DOS ウィンドウ スタイルのアプリケーションであるため、キーストロークがそれを管理する唯一の方法です。

ctrlその DOS スタイルのアプリケーションを有効にして ENTER などのキーストロークを入力することはできましたが、 +を試してみるCと、何も実行されません。

Excel VBAでシミュレートしてみました:

Range("E7").Select
SendKeys "^c"
Range("G7").Select
SendKeys "^v"

E7 の値はコピーされませんが、G7 (貼り付け先) がコピー用に選択されたかのように強調表示されます。

注: Excel から Excel にコピーしようとしているのではなく、Excel を使用してキーストロークを実行しようとしています。

4

3 に答える 3

2

今日も同じ問題に遭遇しました。

アプリにCTRL-Cを送ってから少し待つことで解決しました。すぐに別のスクリプト行を実行すると、何もコピーされないようです。

SendKeys "^c"
WScript.Sleep 100 ' wait a bit after CTRL+C (otherwise nothing is copied)

実際、別のアプリに切り替えて CTRL+V を送信すると、同じ問題が発生するようです。繰り返しますが、少し待って解決しました:

AppActivate "Microsoft Excel"
WScript.Sleep 100 ' wait a bit after making window active
SendKeys "^v"
于 2013-10-16T13:54:06.307 に答える