Office 開発におけるパフォーマンス トラブルシュート (その 2 : ボトルネックの特定)

こんにちは、Office 開発サポート チームの中村です。 前回の投稿で、Office 開発のパフォーマンスに関する調査の進め方をご紹介しました。その中で予告した通り、今回の記事ではボトルネックとなるコードの特定手法について、特定作業に使えるサンプル コードとともに詳しく解説していきます。 今回も、「Office バージョンアップに伴い、これまで利用していたプログラムのパフォーマンスが低下した」という場合を例に説明します。コードの掲載などのため記事が長くなりますがご容赦ください。   目次 1. 説明用サンプル プログラムの紹介 2. デバッグ ログの追加 (関数単位) 3. デバッグ ログの解析 4. デバッグ ログの追加 (行単位) 5. 関数単位の時刻ログ出力処理追加プログラム   1. 説明用サンプル プログラムの紹介 かなりシンプルな例ですが、以下の VBA マクロ (TestProgram.xlsm) を例に説明します。(この VBA マクロの内容で大きくパフォーマンスが低下するわけではありません。あくまでも調査の流れを説明するためのサンプルです。そして説明用にあえて効率の悪い処理などを書いています。) 前回の記事でも述べた通り、業務で使用するプログラムは膨大なステップ数となり、多くの場合は処理の内容ごとに関数を分け、これを呼び出すよう実装されています。今回のサンプルでは、OpenWorkBook / SetValue / ChangeFontColor / CloseWorkBook の 4 つの関数を呼び出しています。   <テスト プログラム 処理概要> ボタン コントロールをクリックすると、データ ブック (sample.xlsx)…