- ベストアンサー
Excelで画面切り替えを抑制できないでしょうか?
Excelで、一方のブックから他のブックにデータを転載するマクロを作っています。 一方のブックの一行を見ては、該当する他のブックのシートに書き込んでいるので、画面がチラチラして大変です。また処理速度も遅くなっていると思います。 画面の切り替えが起きないようにする方法は無いでしょうか? ちなみに今は、Windows(sFname).Activate でブックの切り替えを行っています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まず、計算方法ですが… 手作業の場合はブックを切り替えないとできませんが、マクロの場合、大抵の処理は「表示」を切り替えなくても可能なものが多いです。 Windows(sFname).Activateや○○.Selectなどの命令を極力なくして、 Workbooks("aa").Worksheets("bb").Range("A1:A5").Value = ws1.st1.Range("B1:B5").Value みたいな直接的な記載方法にしたほうが、早くなりますし画面の切り替えも最小限になります。 その上で、No2様の回答にあるような、画面表示の更新OFFや自動計算のOFFなどを併用されるとよろしいかと思います。
その他の回答 (3)
- Sinogi
- ベストアンサー率27% (72/260)
>一方のブックの一行を見ては、該当する他のブックのシートに書き込んでいるので、画面がチラチラして大変です。また処理速度も遅くなっていると思います。 私もそのような操作をして画面のちらちらに辟易していました。 Copy & Paste はマクロ記録から編集してつくりやすいのですが、画面ちらちらがどうしても我慢できなくなったので変数に代入して、目的のセルに直接書き込むようにしたらすっきりしました。 配列変数 / 繰返し構文を使って初めて目的の動作を確認した時は感動ものでした。
お礼
ありがとうございました。 参考にします。
次のコマンドを試してください。 画面表示更新をオフにする。 Application.ScreenUpdating = False 次のコマンドも、高速化に役立ちます。 再計算を手動にする。 Application.Calculation = xlManual ちなみに、解除する場合は、 画面表示更新をオンにする。 Application.ScreenUpdating = True 再計算を自動にする。 Application.Calculation = xlAutomatic
お礼
ありがとうございました。 参考にします。
参照する側は最大化ではなく並べて表示などのサイズにして、参照されるウインドウは最小化してはいかがですか? アクティブになるウインドウが切り替わりるところは見えてしまいますが、ちらつきというか全面切り替わって表示されることはなくなると思います。
お礼
ありがとうございました。 参考にします。
お礼
ありがとうございました。 参考にします。