YouTube公開しました!

動画はこちら

今回は、「Python in Excel」とExcelマクロの違いについてお話しします。先日、Excelの新機能「Python in Excel」が発表され、私も早速この機能を試し、YouTubeで解説しました。

この機能を簡単に説明すると、Excelの関数内でPythonというプログラミング言語を実行できる、というものです。

▼こちらの動画でじっくり解説20分
「Python in Excel」何に使える?5つの事例

◾️「マクロはもう終わりですか?」

新しい機能や話題が出るたびに、よく
「Excelマクロとどう違うのですか?」
「これからはPythonの時代なので、Excelマクロは不要になるのでしょうか?」
「今からExcelマクロを学ぶ意味はあるのでしょうか?」
といった質問を受けます。

このような話題を受けて、様々なメディアが
Excelマクロはもう終わり」というキャッチフレーズで記事を書くことがあるため、特に初心者の方々がそのように感じるのかもしれません。

しかし、私が以前の動画で言及したように、
Excelマクロと「Python in Excel」は全く異なる機能であり、Excelマクロが終わりというわけではありません。

■ 「Python in Excel」の主な用途は「データの分析」

まず、「Python in Excel」の主な用途はデータの分析です。

例えば、Excelのシート上の表データをPythonで取り込んで処理したり計算を行い、その結果をシートに表示することや、グラフの表示が可能です。

感覚的には、Excelの関数の進化版と考えるとわかりやすいかもしれません。

これまでExcelの関数内で「引数」として値や参照を用いていましたが、これに代わってPythonのコードを記述できるようになった、と捉えると良いでしょう。

■ 「マクロ」の主な目的は「Excel操作の自動化」

一方、Excelマクロの主な目的はExcelの操作の自動化です。

セルのコピー、書式変更、シートのコピー、新しいシートの作成、ブックへの出力など、Excelで行える操作を自動化することができるのがExcel VBAマクロの特徴です。

要するに、セルやシート、ブックの操作や、グラフや図形などのオブジェクトを操作することがほとんど何でもできるのです。

◾️Python in Excelは、マクロのような自動操作はできない

これに対して、「Python in Excel」の機能は限定的です。

「Python in Excel」は主に関数のようにセルやセル範囲(外部データも含む)を参照して計算や処理を行い、結果をセルに返すことが主です。

つまり、Excelマクロのように広範囲の操作を自動化することはできません。この違いを正確に理解することで、疑問や誤解を避けることができます。

 

■ 「ExcelをPythonで操作する」は別モノ!

 
こうした混乱の一因として、数年前からよく取り上げられるトピック「ExcelをPythonで操作する」という話が挙げられます。
 
「ExcelをPythonで操作する」とは、Pythonというプログラミング言語を使用してExcelのデータを取り込み、Pythonで計算や分析を行うことを指します。
 
たとえば、「openpyxl」というPythonライブラリを使って、Excelファイルへのデータの書き込みや行・列の挿入、新しいシートの作成、ファイル操作などができます。
 
これにより、「PythonでExcelを自動処理する」というトピックが一時期、一大ムーブメントとなりました。ただ、それは「Pythonでのプログラミングの一例として、Excelも処理できる」という側面の話でした。
 

◾️Python in Excelの機能は限定されている

 
一方、最近のニュースで話題の「Python in Excel」は、これとは全く異なります。文字通り、Excel内でPythonを実行できるものであり、利用可能なライブラリは限定的です。具体的には、Excelファイルを操作するようなライブラリは利用できません。
 
使用できるPythonライブラリは主にデータ分析やデータの可視化、グラフの作成、機械学習を行うものが中心となっています。
 
従って、「Python in Excel」の主な機能はExcel内でのデータの分析や可視化に集中しており、Excelの自動操作のようなことはできないというのが実情です。
 

■ 5、6年前からPython導入のウワサはあったが…なんか期待と違った

 
実際、この事実について、私たちユーザーは少しガッカリした、あるいは拍子抜けした感じがします。元々「Excel内にPythonが導入される」という噂は、おそらく5、6年前からありました。
 
私たちが当時期待していたのは、「Pythonを用いてExcelを自動操作できるようになるのではないか?」ということでした。
 
その当時、マイクロソフトはExcelユーザーに対して「ExcelでPythonを使えるようになったらどう思いますか?」というアンケートを実施していました。それを受けて、ユーザーからの要望が非常に高いことが明らかになりました。
 
しかし、今回「Python in Excel」という機能が発表された際、その内容を確認すると、Pythonでできることが限定的で、私たちが期待していたようなExcelを自動操作するマクロのような機能は、実はほとんど含まれていなかったのです。
 

■ 「Python in Excel」は、プログラミング初心者にとって非常に素晴らしい機能

 
それでも、私は「Python in Excel」は非常に素晴らしい機能だと感じています。私が以前紹介した動画でも触れていますが、Excelさえあれば外部ツールは一切不要で、シート上で直接コードを書き、実行することができ、その結果がシート上に即座に表示される点は魅力的です。プログラミング学習の際、初心者が最も壁に感じるのは環境構築です。開発環境を整えるためにソフトをインストールする過程で、多くの初心者が挫折することが一般的です。
 

◾️環境構築が全くいらないプログラミング

 
しかし、「Python in Excel」を使えば、そのような環境構築は必要なく、Excelが動作するパソコン上で直接コードを書き始められるのです。これは、プログラミング初心者やノンプログラマーのビジネスパーソンにとって、学びのハードルを大きく下げる要因となっています。
 

◾️コードが簡潔で、すぐに結果がExcelに反映される

 
私が以前紹介した動画で、サンプルコードをいくつか示しましたが、元データがExcelのシート上にあるため、そのデータを取り込み処理するコードを書くだけで高度なデータ処理が可能です。
 
このコードの簡潔さは、慣れ親しんだ表計算ソフト、Excel上で開発・実行できる利便性があるからだと思います。
 
したがって、ノンプログラマーのビジネスパーソンやプログラミング初心者にとって、「Python in Excel」は学びやすいプログラミング言語として、また仕事の現場で即座に応用できる学びを提供する最良のツールだと感じています。