使用に同意するものと見なされます。コード提供終了済みコンテンツ申し訳ありません。リクエストされたコンテンツは削除されています。自動的にリダイレクトされます。公開した情報のアーカイブです。開発のパフォーマンスに関する調査の進め方をご紹介しました。コードとともに詳しく解説していきます。バージョンアップに伴い、これまで利用していたプログラムのパフォーマンスが低下した」という場合を例に説明します。コードの掲載などのため記事が長くなりますがご容赦ください。マクロの内容で大きくパフォーマンスが低下するわけではありません。調査の流れを説明するためのサンプルです。説明用にあえて効率の悪い処理などを書いています。)前回の記事でも述べた通り、業務で使用するプログラムは膨大なステップ数となり、多くの場合は処理の内容ごとに関数を分け、これを呼び出すよう実装されています。つの関数を呼び出しています。コントロールの表示を「転記済み」に変更し、データブックを閉じて処理終了のメッセージボックスを表示します。全体の処理が遅くなった」という状況から調査を開始するかと思います。この段階では、1~6のどこが遅くなったのか、まだ分かりません。中であれば、いくつかの書式を変更しているので、どの書式変更が遅いのかが分かりません。前回の記事で述べたように、ボトルネックとなる処理の内容によって、検討される対応方法は異なります。行レベルでの特定を行うことを目指します。行レベルの特定を行うのは効率が悪いので、まずは、大まかに関数単位で切り分けを行うことをお勧めします。関数単位の時刻ログ出力処理追加プログラム」のコードです。プログラムは以下のようなコードに変更されます。OUT,<モジュール名>,<関数名>"」という処理が自動的に追加されているのがお分かりでしょうか。以下のようにログが出力されます。(数値は説明用に作成しているので、実際はこんなにかかりません。)19:08:08.562,IN,Sheet1,CommandButton1_Click19:08:08.562,IN,Sheet1,OpenWorkBook19:08:09.210,OUT,Sheet1,OpenWorkBook19:08:09.210,IN,Sheet1,SetValue19:08:10.230,OUT,Sheet1,SetValue19:08:10.230,IN,Sheet1,SetValue19:08:11.732,OUT,Sheet1,SetValue19:08:12.733,IN,Sheet1,SetValue19:08:14.221,OUT,Sheet1,SetValue19:08:14.221,IN,Sheet1,ChangeFormat19:08:23.123,OUT,Sheet1,ChangeFormat19:08:23.125,IN,Sheet1,CloseBook19:08:23.532,OUT,Sheet1,CloseBook19:08:23.541,OUT,Sheet1,CommandButton1_Clickこのログを分析してどこで時間がかかっているかを特定していきます。機能やシート関数を使って様々な観点で分析できます。算出し、特に時間がかかっている箇所を見つける関数名のカウントを数え、繰り返し行われている処理を特定する今回の場合、上記のログを解析すると、以下のあたりがボトルネックとなっていることが分かります。関数の中ではいくつかの処理を行っているので、さらにボトルネックとなる処理を特定します。行ごとにログを追加します。行単位にログを追加するのではなく、何段階かに分けて絞り込んでも良いかと思います。同じようにログを解析していきます。実行されることは想定していません。プログラムを開き直してください。設定箇所が遅かったとします。?などを試すことが検討できます。ブックのテンプレートの段階でフォント色を設定しておき、マクロ内では変更しないといった対応も検討できるかもしれません。プログラム構成の見直し)、などの対応方法が検討できます。コードを以下に記載します。標準モジュールなどにコピーして利用できます。上の記述方法に対応することを保証するものではありません。必要に応じて、お客様ご自身で修正してご利用ください。有効にする必要があります。パスワードは解除してください。定義をご自身の環境に合わせて変更してください。関数がどの順序で呼び出されるかは判断できないため、処理全体の最後に行うログのファイル出力処理呼び出しが含まれていません。最後に「'★以下は手動で追加」とコメントを入れている箇所です。パスワード解除を行っておきます。コードを貼り付けます。定義をご自身の環境に合わせて変更します。ログ追加対象ファイルが開かれ、ログの追加が行われます。logOutputCollection」を追記します。ログ追加対象ファイルに別名を付けて保存します。閉じ、ログを追加したファイルを再度開いて再現手順を実行します。開き、ログを解析します。行にまとめたコードには対応していません。Sub今回の投稿は以上です。作成日時点でのものであり、予告なく変更される場合があります。