Python in Excel の入力方法は難しくはありませんが、Excelのワークシート関数の入力の仕方とは少し勝手が違います。この記事では、Python in Excel の入力の仕方と出力の種類、計算順序やパフォーマンスを向上させるためのヒントについて説明します。
Python in Excel の入力方法
A1セルとB1セルに入力されている数値をC1セルで足し算する例を入力してみます。
A1セルに「11」、B1セルに「22」と入力しておきます。
# C1セルの入力例
x=xl("A1")
y=xl("B1")
x+y
上記のコードをコピペしてもOKです。
以下では、コードを手入力する場合の手順を説明します。
- 1
- 2
- 3
- 4
- 5
- 6
Python in Excel の出力の種類
前セクションの例では、Python in Excel のコードを入力したC1セルにカードアイコンが表示されています。
![[Python in Excel] カードアイコン (Pythonオブジェクト)](https://pie.okakaumebosi.com/wp-content/uploads/2023/10/kihon9.png)
このカードアイコンは、Python in Excel コードが入力されたセル(Pythonセル)の出力の種類が「Pythonオブジェクト」であることを示しています。
出力の種類は「Pythonオブジェクト」と「Excel値」の2種類あります。
(出力の種類の切り替え方法は後述します。)
![[Python in Excel] カードアイコン (Pythonオブジェクト)](https://pie.okakaumebosi.com/wp-content/uploads/2023/10/kihon9.png)
![[Python in Excel] カードアイコン (Excel値)](https://pie.okakaumebosi.com/wp-content/uploads/2023/10/kihon11.png)
出力の種類 その1:Pythonオブジェクト
![[Python in Excel] カードアイコン (Pythonオブジェクト)](https://pie.okakaumebosi.com/wp-content/uploads/2023/10/kihon9.png)
Pythonオブジェクトのデータを返します。PythonにはDataFrameオブジェクト等、色々な種類のデータ型があります。
Python in Excel のコードを入力すると、出力の種類はデフォルトでPythonオブジェクトになります。
Pythonオブジェクトには、セル内の追加情報が含まれています。カードアイコンをクリックすると、オブジェクトの情報が表示されます。
出力の種類 その2:Excel値
![[Python in Excel] カードアイコン (Excel値)](https://pie.okakaumebosi.com/wp-content/uploads/2023/10/kihon11.png)
Pythonの計算結果をExcel値に変換して出力します。
Pythonオブジェクトではセルにカードアイコンが表示されますが、Excel値の場合は何も表示されません。
出力の種類の切り替え方法
出力の種類の切り替えは、数式バーの左隣のアイコンをクリックするか、
Pythonセルで右クリックすると表示されるコンテキストメニューから選択できます。
![[Python in Excel] 出力の種類の切り替え1](https://pie.okakaumebosi.com/wp-content/uploads/2023/10/kihon7.png)
![[Python in Excel] 出力の種類の切り替え2](https://pie.okakaumebosi.com/wp-content/uploads/2023/10/kihon10.png)
Python in Excel の計算順序
通常のPythonと同様、1つのセルに入力されたPythonコードは上から下に計算されます。
ワークシート上に複数のPythonセルがある場合、Pythonセルは行メジャー順に計算されます。
A1セル →→→ XFD1セル、次の行にうつり
A2セル →→→ XFD2セル、の順番に計算される、という意味です。
例を見てみましょう。
前述の足し算の例に、E4セルに「x=123」というコードを追加してみました。
C1セルで変数xに「11」が代入され、E4セルで「123」で上書きしています。
E4セルの周囲のセルには「x」を参照するコードを追加しています。
![[Python in Excel] 計算順序1](https://pie.okakaumebosi.com/wp-content/uploads/2023/10/kihon13.png)
結果を見てみます。
Pythonセルは、A1→B1…XFD1、A2→B2…XFD2、の順番で計算されるので、E4セル以降のF4セル、および5行目のセルでは上書き後の「123」が表示されます。
![[Python in Excel] 計算順序2](https://pie.okakaumebosi.com/wp-content/uploads/2023/10/kihon14.png)
要は「Z」の順番で計算される、ということです。
![[Python in Excel] 計算順序3](https://pie.okakaumebosi.com/wp-content/uploads/2023/10/kihon15.png)
Python in Excel で記述されたコードには計算順序があり、Pythonセルをどこに配置するかによって異なる計算結果が返る場合があります。
Python in Excel のコードを複数のセルに記述する場合は、計算順序を意識した実装が必須です。
Python in Excel のパフォーマンスを向上させるヒント
Excelのワークシート関数と同じように、Python in Excel も Pythonコードを修正したり、参照元のデータを変更すると再計算処理が実行されます。Python in Excel はMicrosoftクラウド上で実行されるため計算結果が返ってくるまでの時間がワークシート関数より遅く、Excelの設定の「計算オプション」がデフォルトの「自動」のままであると、変更の都度再計算処理が実行され開発時のパフォーマンスが低下することがあります。
これを回避するために「計算オプション」を「一時」または「手動」に変更すると、無駄な再計算処理をしなくて済むようになり、パフォーマンスを向上させられます。
計算オプションの変更は、「数式」リボンの「計算方法の設定」で行います。
「一部」まはた「手動」に設定すると、任意のタイミングで再計算することができます。

手動で再計算をする方法は、以下の3通りです。(お好みで)
- キーボードショートカット「F9」を押す
- 「数式」リボンの「計算方法」セクション内の「再計算実行」をクリック
- Excelウィンドウの左下部の「再計算」ボタンをクリック
