概要
新しい部署でのプログラム経験者という事で、ちょっとしたデータをゴニョゴニョするためのマクロを作ることを命じられました。
これ見よがしに1日で完成させてマニュアルまで別シートに丁寧に準備したところ、何故かoffsetとかrangeでvalueやtextを設定するロジックが片っ端から遅くなりました。
原因は、VBAとは全く関係ないと思っていたマニュアルのシートにありました、、、
環境
PC
Windows 7 64bit
Microsoft Office Home and Business 2013
(Excel)
サンプルエクセル
例えば下記のような「マニュアル」と「ツール」の2つのシートを持つエクセルファイル
原因
リンクでの図の貼り付けが、offsetやvalue等のcellの操作系関数の実行速度に影響がでます!
サンプルエクセル
シート「ツール」のB2:O7のセルをコピーして、別シート「マニュアル」に「リンク貼り付け」を行うと、今回のようなことになります。
対策
リンクが駄目です。
下記のようなVBAならではの更新停止も効きません。
Application.ScreenUpdating = False
図での貼付けにするか、マニュアルは別シートにして下さい!