※ 本記事の内容は、2023年8月時点ではまだパブリックプレビュー段階である情報を元にしています。今後仕様等変更される可能性がある点には十分にご注意ください。
下記記事で書かれている通り、Pythonの強力なデータ分析や視覚化ライブラリをExcelワークブック内で使用することができる機能、「Python in Excel」のパブリックプレビューがMicrosoft 365 Insider Program加入者向けにリリースされました。
Today, we are excited to introduce the Public Preview of Python in Excel – making it possible to integrate Python and Excel analytics within the same Excel grid for uninterrupted workflow.
Python in Excel combines Python’s powerful data analysis and visualization libraries with Excel’s features you know and love. You can manipulate and explore data in Excel using Python plots and libraries, and then use Excel’s formulas, charts and PivotTables to further refine your insights.
Python in Excelとは
Python in Excelの概要はGitHubに詳しく書かれていたので、こちらから引用させていただきます。
(機械翻訳を使用しているので訳におかしい部分があるかもしれません。)
Python in Excel is a new feature that allows you to natively combine Python and Excel analytics within the same workbook. With Python in Excel, you can type Python code directly into a cell, the Python calculations run in the Microsoft Cloud, and your results are returned to the worksheet, including plots and visualizations.
Python in Excelは、同じワークブック内でPythonとExcelの分析をネイティブに組み合わせることができる新機能です。Python in Excelでは、セルに直接Pythonコードを入力でき、Pythonの計算はMicrosoft Cloud上で実行され、プロットやビジュアライゼーションを含む結果がワークシートに返されます。
Python in Excel leverages Anaconda Distribution for Python running in Azure, which includes the most popular Python libraries (e.g. pandas, Matplotlib, scikit-learn, etc.), and is securely built, tested, and supported by Anaconda. Python code used by Excel runs on the Microsoft Cloud with enterprise-level security as a compliant Microsoft 365 connected experience. The Python code runs in its own hypervisor isolated container using Azure Container Instances and secure, source-built packages from Anaconda through a secure software supply chain.
Python in Excelは、Azure上で実行されるPythonのAnacondaディストリビューションを活用します。これには最も人気のあるPythonライブラリ(例えばPandas、Matplotlib、scikit-learnなど)が含まれており、Anacondaによって安全な構築やテストがサポートされています。Excelで使用されるPythonコードは、Microsoft 365での接続エクスペリエンスに準拠したエンタープライズレベルのセキュリティを備えたMicrosoft Cloud上で実行されます。Pythonコードは、Azure Container Instances上に構築された独自のハイパーバイザー分離コンテナ内でセキュアに実行されます。また、安全なソフトウェアサプライチェーンを通じて、Anacondaからソース構築ビルドパッケージが提供されます。
https://github.com/microsoft/python-in-excel より
要するに、“ブック内で、Azure Container Instances上に構築されたハイパーバイザー分離コンテナで実行されるPythonコードを使って安全にデータ解析なりグラフ作成なり色々できるようになる”、ということでしょうか。
公式の紹介動画がすでに公開されているので、これを見るとどのような機能なのかが掴みやすいですね。
Microsoft 365 Insider Programへの参加
タイトルの通り、2023年8月時点ではPython in Excelはパブリックプレビューの段階であり、利用するにはMicrosoft 365 Insider Programに参加する必要があります。
(※ 参加方法は下記サイトで詳しく解説されています。)
本機能は Excel for Windows ビルド 16.0.16818.20000 から順次展開される予定であるため、2023年8月23日時点ではBeta ChannelのExcelをインストールする必要があります。Office Deployment Tool(ODT)を使ったBetaChannelのインストール方法については下記Learn資料をご参照ください。
Python in Excelの実行
Python in Excelが実行できるようになると、「数式」タブに「Python (プレビュー)」グループ(OfficeコントロールID:GroupPythonChunk)が追加されます。
「Python の挿入」ボタン(OfficeコントロールID:InsertPython)をクリックすると、初回実行時には下図のように「Python in Excel を試す」ダイアログが表示されるので、画面の指示にしたがって「プレビューを試す」ボタンをクリックします。
「Python in Excel ツアー」ボタンをクリックすると、簡単な機能の説明が表示されます。
セルや数式バーに「=PY」と入力、あるいは関数の挿入ダイアログから「PY」関数を挿入することで機能を実行することができます(「Python の挿入」ボタンの下部から「Python in Excel」ボタン(OfficeコントロールID:PythonInExcelOption)をクリックしても可)。
具体的な使い方については、「Python の挿入」ボタンの下部から「Python サンプルを試す」ボタン(OfficeコントロールID:TryPythonSamples)をクリックすることで作業ウィンドウにいくつかのサンプルが表示されるので、そちらを見ると分かりやすいでしょう。
パブリックプレビューとして公開されたPython in Excel、数式タブの「Python の挿入」からはサンプルも試せるようになっているので、まずは用意されたサンプルを動かしてみると使い方がよく分かるかと思います。 #Excel #Python https://t.co/eTQXmHpP1O pic.twitter.com/gPP8kgvaWi
— きぬあさ (@kinuasa) August 23, 2023
Python in Excelの特徴
下記ページにPython in Excelの特徴が箇条書きで分かりやすくまとめられていました。
- Python コードは、Azure Container Instances
上に構築されたハイパーバイザー分離コンテナーで実行されます。- コンテナーには、Python と Anaconda によって提供されるセキュリティで保護されたライブラリのキュレーション セットがあります。
- この環境では、Anaconda から直接提供されるソースビルドの Python とライブラリを含む、Anaconda Distribution for Python を使用します。
- Python コードは、コンピューター、デバイス、またはアカウントにアクセスできません。
- Python コードにはネットワーク アクセス権がありません。
- Python コードには、ユーザー トークンへのアクセス権がありません。
- Python コードは、Python 数式の一部として組み込みの xl() 関数を使用して、参照を介してデータにアクセスできます。 つまり、Python 数式では、ブック内のセル値を、セル参照に基づいて読み取ったり、外部データ ソースの値をPower Query接続名で読み取ったりできます。
- Python コードは、関数が入力されたセルの Python コードの結果を表示する =PY() Excel 関数を介してブックに出力を返します。 Python 関数は、マクロ、VBA コード、その他の数式などの他のオブジェクト型を返すことはできません。
- Python コードは、数式、グラフ、ピボットテーブル、マクロ、VBA コードなど、ブック内の他のプロパティにアクセスできません。
https://support.microsoft.com/ja-jp/office/33cc88a4-4a87-485e-9ff9-f35958278327 より
これを見る限りでは、ブック上でPythonが実行できるようになったといってもデバイスは元よりブック内の他のプロパティにもアクセスできない、といった制限も多いようです。
(PythonによるVBAの置き換えを望んでいた方には残念な仕様かもしれませんが…)
ただ、充実したPythonのライブラリが使えるようになる上にピボットや条件付き書式などのExcelの標準機能を組み合わせられるのは非常に強力だと思います。
Excelの可能性がさらに広がること間違いなしの機能ですので、日々Excelをお使いの方は是非チェックしてみてください。
ただ、現時点(2023年8月)では本機能を無料で利用できますが、本番リリース後には有料になる可能性もありますので、その点には注意しておきましょう。
この記事へのコメントはありません。