Python in Excel (06) 処理順~計算方法を「手動」にしておこう~

Pythonコード実行のタイミング

 Pythonコードは、Excelのセルに書かれた関数のように、依存関係を解釈して最小限の更新を行うような、最適化された動作を行いません。

 Excelの計算方法が「自動」になっている場合、ブック上にあるどのシートのどのセルであっても、1つのPython式が評価されたら、 ブック上にあるすべてのPython式が評価されます。また、Python式の実行は、クラウドに設置されたマイクロソフトのサーバーで実行されています。そのため、いくつものPython式を記述する場合、1つのコードをコミットする度にクラウド上のサーバーと通信し、これまで記述したコードが最初からすべて実行されるのを待たなければなりません。途中に時間がかかる処理があった場合に作業が進まなくなってしまいます。

 よって、Python in Excel を使用する場合は、計算方法を「手動」にしておく ことをお勧めします。しかし、この計算モードは「 伝染する 」ので、同時に複数のブックを開く場合は注意が必要です。(参照 雑・Excel入門試論 - 脱VLOOKUPの思考 02 - ブック - オプション - Qiita

計算方法が「自動」の実行の順番

同一シート上

 同一シート上のPythonコードは、以下のように、一番上左のセルが最初に実行され、右方向、次に下方向のセルの式が実行されます。

複数のシート

 複数のシートにPythonコードが描かれていた場合、シート見出しの左から順番に処理されます。シートの順番を入れ替えると、処理の順番も変更されます。

計算方法が「手動」の場合

 Python式の実行は、コミットしたセルに記述された式のみになります。

 従って、コミットする度に全ての式が最初から評価されることがなくなり、いくつものコードを分けて記述していくことができます。

 ただし、計算方法で「再計算実行」(ショートカットキーで Ctrl +F9)を行うと、前段の自動計算の順番でブック上のすべての式が評価されます。