Excel側の設定による性能改善方法
- Home >性能改善関連 >Excel側の設定による性能改善方法 >dbSheet配下でマクロを実行すると、EXCEL上でマクロを実行するのに比べて遅くなるのはなぜですか? また改善方法はないですか?
Q. dbSheet配下でマクロを実行すると、EXCEL上でマクロを実行するのに比べて遅くなるのはなぜですか? また改善方法はないですか?
対象バージョン
:dbSC2022EX11製品の種類
:実行版クリックワンス実行版開発版Answer
dbSheetは.NetFramework4.6.2以上で動かしていますが、そこで開いたEXCELのマクロと、.NetFramework4.6.2以上のCOMラッパー間で干渉現象が発生し、マクロの実行が遅くなったり、スクリーン制御や再計算処理が解除されるケースが確認されています。
これは、EXCEL単独でマクロを実行するときには、ExcelVBA用のCOMをダイレクトに制御できますが、.NetFramework4.6.2以上 の配下に入ると、.NetFramework4.6.2以上 ⇔ COMラッパー ⇔ COM のような動きになり、COMラッパーが間に入ってくるため発生している現象と思われます。
なお、既存のマクロ内に、SheetChangeやSheetSelectionChange イベントなどの処理がふくまれているときなど、マクロとdbSheetのエンジン側の処理の間で干渉現象が発生して、dbSheetで制御している「スクリーン制御-停止」が解除されたり、「再計算実行-停止」が解除されてデータの展開のたびに再計算されるなどの現象が確認されています。
マクロを使用しているときには、マクロのどのコードが実行された時に、スクリーンが解除されたり再計算が実行されているかを確認してみてください。
外部ファイルやDBからデータを読み込んだり、Excelにデータを貼り付けたりするところで遅くなるマクロについては、マイクロソフト社から以下の技術資料が提供されていますので、この方法に変更することで速くすることが可能です。
オンラインヘルプの改善にご協力ください。
このページは役に立ちましたか?