【超基本】Python in Excel の使い方とルール

Python in Excel 入門 - kihon15 概要
この記事は約6分で読めます。

Python in Excel の入力方法は難しくはありませんが、Excelのワークシート関数の入力の仕方とは少し勝手が違います。この記事では、Python in Excel の入力の仕方と出力の種類、計算順序やパフォーマンスを向上させるためのヒントについて説明します。

2023年10月現在、Python in Excel は Microsoft 365 Insider Program のベータチャネルを選択することによって使用できるベータ版のExcelでのみ利用可能です。
ベータ版のExcelのインストール・初期設定方法は以下で詳しく紹介しています。

Python in Excel の入力方法

A1セルとB1セルに入力されている数値をC1セルで足し算する例を入力してみます。
A1セルに「11」、B1セルに「22」と入力しておきます。

# C1セルの入力例
x=xl("A1")
y=xl("B1")
x+y

上記のコードをコピペしてもOKです。
以下では、コードを手入力する場合の手順を説明します。

  • 1
    C1セルに「=py」と入力し、表示されたオートコンプリートリストの「PY」を選択します。

    選択するときはマウスで「PY」をダブルクリックするか、Tabキーを押します。

    [Python in Excel] 入力の仕方1
  • 2
    Python入力モードになると、セルに緑色の「PY」が表示されます。
    [Python in Excel] 入力の仕方2
  • 3
    C1セルに「x=」と入力します。
    [Python in Excel] 入力の仕方3
  • 4
    A1セルをクリックすると、セルを参照するxl関数が追加されます。
    Enterキーを押してセル内改行します。
    [Python in Excel] 入力の仕方4

    Python入力モードでは、Enterキーを押すとセル内改行されます。
    セルの入力を終了する時は、Ctrl + Enterを押します。

  • 5
    続いて「y=」と入力して、B1セルをクリックします。
    Enterキーを押してセル内改行します。
    [Python in Excel] 入力の仕方5
  • 6
    最後に「x+y」と入力して、Ctrl + Enter を押して入力を終了します。

    足し算の結果が表示されました。

    [Python in Excel] 入力の仕方6

Python in Excel の出力の種類

前セクションの例では、Python in Excel のコードを入力したC1セルにカードアイコンが表示されています。

[Python in Excel] カードアイコン (Pythonオブジェクト)
カードアイコン

このカードアイコンは、Python in Excel コードが入力されたセル(Pythonセル)の出力の種類が「Pythonオブジェクト」であることを示しています。

出力の種類は「Pythonオブジェクト」と「Excel値」の2種類あります。
(出力の種類の切り替え方法は後述します。)

[Python in Excel] カードアイコン (Pythonオブジェクト)
Pythonオブジェクト
[Python in Excel] カードアイコン (Excel値)
Excel値

出力の種類 その1:Pythonオブジェクト

[Python in Excel] カードアイコン (Pythonオブジェクト)
Pythonオブジェクトのアイコン

Pythonオブジェクトのデータを返します。PythonにはDataFrameオブジェクト等、色々な種類のデータ型があります。
Python in Excel のコードを入力すると、出力の種類はデフォルトでPythonオブジェクトになります。

Pythonオブジェクトには、セル内の追加情報が含まれています。カードアイコンをクリックすると、オブジェクトの情報が表示されます。

[Python in Excel] 追加情報カード1
追加情報カードの表示例1
[Python in Excel] 追加情報カード2
追加情報カードの表示例2

出力の種類 その2:Excel値

[Python in Excel] カードアイコン (Excel値)
Excel値のアイコン

Pythonの計算結果をExcel値に変換して出力します。

Pythonオブジェクトではセルにカードアイコンが表示されますが、Excel値の場合は何も表示されません。

公式サイトでは「Excel 値として結果を返すと、Excel のグラフ、数式、条件付き書式などの Excel 分析を値に対して実行できます。」と記述がありますが、上述の足し算の例ではPythonオブジェクトでもExcelの分析機能が使えました。もっと複雑な結果を返すようなPythonセルの場合は、Excel値に変換しないとExcelの分析機能が使えないかもしれません。

出力の種類の切り替え方法

出力の種類の切り替えは、数式バーの左隣のアイコンをクリックするか、
Pythonセルで右クリックすると表示されるコンテキストメニューから選択できます。

[Python in Excel] 出力の種類の切り替え1
出力種類のアイコン
[Python in Excel] 出力の種類の切り替え2
コンテキストメニュー

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
式表示モードで見てみる(Shift + Ctrl + @ で表示)

結果を見てみます。
Pythonセルは、A1→B1…XFD1、A2→B2…XFD2、の順番で計算されるので、E4セル以降のF4セル、および5行目のセルでは上書き後の「123」が表示されます。

[Python in Excel] 計算順序2

要は「Z」の順番で計算される、ということです。

[Python in Excel] 計算順序3
Python in Excel の計算は「Z」の順番

Python in Excel で記述されたコードには計算順序があり、Pythonセルをどこに配置するかによって異なる計算結果が返る場合があります
Python in Excel のコードを複数のセルに記述する場合は、計算順序を意識した実装が必須です

ブック内のワークシートにも計算順序があり、左に配置されたワークシートから順番に計算されます。シートの位置を変更すると、計算結果が変わります。

Python in Excel のパフォーマンスを向上させるヒント

Excelのワークシート関数と同じように、Python in Excel も Pythonコードを修正したり、参照元のデータを変更すると再計算処理が実行されます。Python in Excel はMicrosoftクラウド上で実行されるため計算結果が返ってくるまでの時間がワークシート関数より遅く、Excelの設定の「計算オプション」がデフォルトの「自動」のままであると、変更の都度再計算処理が実行され開発時のパフォーマンスが低下することがあります。

これを回避するために「計算オプション」を「一時」または「手動」に変更すると、無駄な再計算処理をしなくて済むようになり、パフォーマンスを向上させられます。

計算オプションの変更は、「数式」リボンの「計算方法の設定」で行います。
「一部」まはた「手動」に設定すると、任意のタイミングで再計算することができます。

Excel「計算方法の設定」ボタン

手動で再計算をする方法は、以下の3通りです。(お好みで)

  • キーボードショートカット「F9」を押す
  • 「数式」リボンの「計算方法」セクション内の「再計算実行」をクリック
  • Excelウィンドウの左下部の「再計算」ボタンをクリック
Excel「再計算」ボタン

参考

タイトルとURLをコピーしました