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

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


Office 開発におけるパフォーマンス トラブルシュート (その 1 : 概要と対処方法)

こんにちは、Office 開発サポート チームの中村です。 2018/7/12 Update ボトルネック特定手法についてのパート 2 記事を公開しました。   Office 開発において、「期待するパフォーマンスが出ない」「利用する Office のバージョンによってパフォーマンスが低下する」といったお問い合わせを頂くことがあります。今回の記事では、このような状況で改善を図るためにどのように調査・検討を進めればよいかを記載します。 今回は全体の流れと Office におけるパフォーマンスの考え方などを紹介しています。ボトルネックの特定手法については、以下のパート 2 の記事をご参照ください。 タイトル : Office 開発におけるパフォーマンス トラブルシュート (その 2 : ボトルネックの特定) アドレス : https://blogs.msdn.microsoft.com/office_client_development_support_blog/2018/07/12/office-perf-troubleshoot-part2/   目次 1. はじめに : Office におけるパフォーマンス 2. プログラム上のボトルネックの特定 3. 対処方法の検討 3-1. ボトルネックとなる処理の速度改善 3-2. プログラム構成の見直し 3-3. プログラム全体のパフォーマンス チューニング 3-4. 他の言語から VBA に変更する 3-5. マシン リソースの増強…