2017年8月4日金曜日

VBA 実行時エラー'1004'が発生する

VBAでコピーして貼り付けを実行しようとすると、実行時エラー'1004'が発生する際の解決方法

---
実行時エラー'1004'が発生します。
https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_excel-mso_winother/%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9/63090c23-3e6c-4855-80c5-d9e8684972c8

この質問の一番下の回答で解決。簡単にまとめると、

  • CopyのあとDo Eventsを使う
  • Do EventsのあとSleepを入れる
  • それでもエラーが出る場合は、On Errorで例外処理を記述する。

なお、このSleepの書き方では64bitのコンピュータで実行すると怒られるので、下記のように記述する必要がある。

Sleep Lib “kernel32” gives 64-bit systems error
https://stackoverflow.com/questions/41638504/sleep-lib-kernel32-gives-64-bit-systems-error