2023年8月23日、Microsoft社はExcel上でPythonを実行可能にした「Python in Excel」を発表しました。本記事では、
- Python in Excel はいつから使えるの?
- Python in Excel の機能は?
- Python in Excel と VBA のちがいは?
など、気になる点について初心者の方向けに解説していきたいと思います。
↓↓具体的な操作方法について知りたい方は以下記事をご参照ください♪↓↓
Python in Excelの使い方(有効化・PY関数の書き方・実行方法)
いつから使えるの?
結論、一般ユーザーがいつ使えるかは不明です。
Python in Excelは、8/23よりパブリックプレビュー版として公開されました。「パブリック」と聞くと一般向けに公開されたかのような響きですが、そうではありません。パブリックプレビュー版を利用するには、Microsoft 365 Insiderプログラムに参加する必要があります(参考)。
ただし、永続版のExcelでないとこのプログラムに参加することはできません。永続版とは、ライセンス名に 2019 などの年、または「LTSC」が表示されていないものです。筆者のExcelは「2019」と表記があり、プログラムに参加できませんでした。
Python in Excelの機能は?
ということで、現時点では一般ユーザーは実際にPython in Excelを操作することはできませんが、Microsoft社が発表した情報をもとにどんな機能があるのか見ていきたいと思います。
Python in Excelはどこで動くの?
Excel上でPythonコードを実行する際、その処理はMicrosoftのクラウドサービス上で動きます。
公式ドキュメントによると、
Excel の Python は、Microsoft Cloud 上のセキュリティで保護されたコンテナーで Excel によって使用される Python コードを実行し、エンタープライズ レベルのセキュリティを準拠した Microsoft 365 接続エクスペリエンスとして使用します。
Excel でのデータ セキュリティと Python
と記載があり、セキュリティ面において万全の注意が払われていることが分かります。
クラウドで動くためPython環境構築は不要!
Pythonは、一般的には実行するのに環境構築が必要です。しかし、Python in ExcelではPythonがクラウド上で実行されるため環境構築の必要はありません。
Python in Excelは、Anacondaというデータサイエンスに必要なライブラリやツールなどがまとめられた実行環境で動きます(参考)。そのため、関数やクラスを使う際にいちいちライブラリをインストールする必要もありません。
PY関数 (Pythonコードの利用)
Excel上でPythonコードを実行するには、Excelのメニューから「Insert Python (Pythonを挿入する)」を押すか、セルに「=PY」と入力します(参考)。
=PY(python_code,return_type)
PY関数の中にPythonのコードを書くと、その戻り値がセルにセットされます。
PY関数の使い方
以下のように、PY関数を入力すると、その数式を入れたセルに「DataFrame」と表示されます。
「DataFrame」とは、Pandas(パンダス)というデータを扱うためのライブラリです。行と列に整理された二次元のデータ構造で、実際の業務においても二次元のデータで扱う場面は多いです。
DataFrameとして扱うことで、それに対して
- describe(平均、標準偏差、最大・最小値を求めるなど)
- loc、iloc(データ抽出)
など、Pandasの各メソッドが使えるようになります。
使えるライブラリは?
Python in Excelでは、以下の5つのライブラリがデフォルトでインストールされています。(=PY関数実行時にimportしなくてよい)
- numpy(数値計算)
- pandas(データ解析)
- matplotlib(グラフ描画)
- statsmodels(統計解析)
- seaborn(データ可視化)
上記以外のライブラリであっても、Anacondaを介して使用できるライブラリであればインポート可能とのことです。
スクレイピング、ローカル操作はできない
データサイエンス系のいろんなライブラリが使えることは分かりましたが、筆者はそんなにデータ分析しないただの主婦なので、より日常的な操作ができるのか気になったので調べてみました。
すると、
- スクレイピングはできない
- ローカルファイルの操作はできない
ということが分かりました。そもそもMicrosoftのドキュメントに推奨ライブラリ一覧とあるので、それ以外のライブラリが正しく動くのかも謎です。もしかしたら、高度な計算とかデータ分析をしている人以外は、そんなに使えるものでもないんじゃないかという気がしてきました。
VBAとの違いは?
Excelには、VBA(Visual Basic for Applications)という機能があり、マクロを記録したり、自分で書いたコードを実行することができます。
このVBAと、Python in Excelとは、そもそも全く別物と考えたほうが良いです。
VBAは、Excelファイルに付随してはいるものの、Excelの外部からプログラムが実行されるイメージです。いっぽう、Python in Excelは、Excelの中にプログラムが実装され、それを外部(クラウド上)で実行するイメージです(あくまでイメージです・・・)。
つまり、
- Excelのブック・シート・セル等に対する全般的な操作はVBA
- シート上のデータをもとに、データ操作・分析等を行う場合はPython in Excel
が適していると言えます。
Python in ExcelからVBAにはアクセスできない
公式ドキュメントには
Python コードは、数式、グラフ、ピボットテーブル、マクロ、VBA コードなど、ブック内の他のプロパティにアクセスできません。
Python は Microsoft Cloud で実行されます
とあります。
Pythonコード自体はクラウド上で実行されるのでこれはまあ納得なのですが、VBAコードからPythonの実行はできるのかが気になりました。
VBAを介して実行できれば活用の幅も広がるかなと思ったのですが、どうなんでしょう。実際に試した方がいらっしゃったら教えていただきたいです・・・!
まとめ
今回は、「Python in Excel」について、機能面やVBAとの差異などを解説しました。
筆者の環境では実際に動かせておらず、Microsoftの公式ドキュメントの情報をもとにまとめました。Excelはデータ量が多かったり特定の数式を使うと重くなりがちなので、PY関数を多用して重くなりすぎないか、どんなライブラリが使えるか、実際に試してみたいなと思いました。
また新しい情報が分かり次第、記事を更新したいと思います。
コメント