ExcelにPythonが搭載されることによるノンプログラマーのメリットとVBAの今後について


python

photo credit: tubblesnap Breakfast! via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

MicrosoftがExcelにプログラミング言語Pythonの搭載を検討しているというニュースがありました。

ノンプログラマー向けにVBAの情報も、Pythonの情報も提供している私としては、非常に喜ばしいニュースです。

当然、PythonプログラマーにとってはExcelで使えるようになるというメリットはかなり大きいのではないかと思うのですが、一方でノンプログラマーにとってもこの話は悪い話ではないと考えています。

そこで、今回は、ExcelへのPython搭載がノンプログラマーにとってどんなメリットをもたらすのかについてです。

また、Python搭載後のVBAがどうなるのかについても考えます。

Excelに「Python」が搭載される!?

ノンプログラマーにとって、決定的な大チャンスがやってきました。

Excelに「Python」搭載検討です!

Excelに「Python」搭載検討 Microsoftがアンケート実施中
米Microsoftが、ExcelとPythonの統合についてアンケートを実施している。「需要についてよりよく理解するため、情報を集めたい」という。

簡単に状況を説明しますと、今MicrosoftがPythonを普段使用しているユーザーやサードパーティに対してアンケートをとっていて、その内容が

ExcelとPythonをいい感じに統合することで、達成しやすくなるタスクは何ですか?

Pythonを使ってソリューションを構築するときは、主に自分が使うためのものですか?それとも他の人が使うためのものですか?

PythonとExcelを統合したツールを使用したことがありますか?もしあるなら、どんな仕事ですか?どのような改善を望みますか?

などという質問です。

ちなみに、実際のアンケートはコチラ。

Fill | Python and Excel

これはマジですね。

そして、この結果をもって要望が多かったものを次期Excelへの搭載を検討しているということです。

ExcelがPythonに急接近せざるをえない理由

いやいや、そんなPythonなどというプログラミング言語によそ見なんてしなくたって、Excelには絶対的なプログラミング言語VBAがあるじゃないか!?

と思う方もいるかも知れません。

Excelはもちろん、ファイルシステムやデータベースにもアクセスできますし、HTTP通信もできます。さらに、Windows APIさえ使えば、Windowsのいろんなことをいじくれるわけで、何が不満なのだ、ということですよ。

実際、書店にいけばたくさんのVBA書籍が並んでいて、日本語の情報もとても充実していますし、当然利用者も圧倒的な数に上るでしょう。

アップデートされないVBA

なのですが、衝撃的な事実として、VBAはここ20年近く実質的なアップデートがされていません。

シンプルな表計算や書類作成にとどまらず、データ分析の分野でもオフィスでの活用を推進していきたいExcel。

今後、AIや機械学習などの機能をうまく取り込んでいく中で、プログラミング言語としても、それらの分野でのアップデートは喉から手が出るほど達成したいところ。

拡張し続けるPython

一方で、Pythonはオープンソースプログラミング言語。どんどん新しいライブラリが追加されています。

前回以下の記事を書いた4か月前にはライブラリの数は「114100」でしたが、本記事執筆時点ではなんと「124746」。

4か月で1万以上のライブラリが追加されています。

そして、Pythonはデータ分析、機械学習は得意するところ。Microsoftが頑張らなくてもそれらの機能がどんどん追加されていきます。

そのような理由もあり、ExcelへのPython搭載を検討しているということになると考えられます。

Python搭載によるノンプログラマーのメリット

Pythonを学習する機会

まず第一はこれでしょう。

Pythonをより簡単に学べるようになるということです。

Pythonのインストールは「バッテリー同梱」と表現される通り、そんなに難しいことではありません。ですが、Excelに搭載されればインストールの手順すらせずにPythonを使い始められるようになります。

また、企業によっては自由にインストールができない場合もありますが、Excelであればほとんごの企業で標準装備ですから、そもそもPythonにである人が増えることも期待できます。

Pythonを学ぶことで市場価値を上げることは大いに期待できますし、前述の通りできることもどんどん増えていきますから、今後の発展性でも有利です。

コードの管理がしやすい

Pythonは「誰が書いても同じコードになるように」を目指して作られています。

ですから、個人でもチームでも、作成したプログラムを管理するという点で、しやすくなる可能性は十分にあります。

もちろん、自分で書いたコードであったとしても、読みやすいコードのほうが管理はしやすいわけですし、社会問題といってもいい「誰かが残してくれた(でも誰も中身がわからない)マクロ」が引き起こすいくつかの問題も、その発生やダメージを抑えられることを期待したいです。

まあ、これについては、そもそもちゃんとチームで成果物を管理するようにすべき問題ですが。

配列・辞書が使いやすくなる

他に、わかりやすいところとして、配列や辞書が使いやすくなるという点があります。

VBAは残念ながら配列が使いづらい…

あと、Dictionaryオブジェクトは使えますが、そもそもCreateObject関数で生成するところからって、ちょっと初心者にはハードルがあります。

本当は、シートのデータなどは配列や辞書など、メモリに格納してから操作をしたほうが、処理速度が圧倒的に上がるわけですが、あまりにも面倒だったりするので、処理速度の向上について優先順位が下がってしまう傾向にあります。

Pythonであれば、リストや辞書は超基本で使えますから、そのような心配はないと思います。

ちなみに、今でも、PythonからExcelファイルを操作できるライブラリがあるので、それを使えばこの配列問題は起きません。

ただ、プログラムを配布するときに、配布先の環境にPythonを導入する必要があります。

簡単に使える機能が増える

Pythonは豊富なライブラリで、簡単にいろいろな機能を使うことができるようになります。

HTTP通信、スクレイピング、データ分析、機械学習…

これらが、Excelを開けばすぐにプログラミングできるなんて、楽しみですね!

Python後のVBAについて

私は、VBAを学ぶ価値は今後徐々に低下していくのではないかと思っています。

これまでは、Excelへの標準搭載が大きなアドバンテージとなり、それに連動して圧倒的なユーザー数と情報提供量を確保してきたところがあります。

ですが、Pythonが標準搭載されたのであれば、そのアドバンテージは失われ、発展性の低さという弱点が浮き彫りになってしまいます。

もちろん、過去の膨大なマクロがありますし、パッケージ型のExcelを愛用している企業も多数あるので、感覚的にはPython搭載から数年から場合によっては10年くらいは現役で活躍する可能性は十分にあります。

また、今回は「Excelへの搭載」なので、WordやPowerPoinetについては、まだ全く未定の状態と考えられます。個人的にはWordに搭載しても面白いのではないかと思うんですが。

まとめ

以上、ExcelにPythonが搭載されることによるノンプログラマーのメリットについてお伝えしました。

まだ情報収集段階なので、実際に搭載されるかどうかもわかりませんし、搭載されるとしてもどのように、いつといった部分はいまだに謎です。

ですが、いずれにしてもノンプログラマーにとっても、Pythonというプログラミング言語が無視できない存在になってきたというのは間違いありません。

何かが起こってからアクションを起こすのではなく、それまでじっくり「PyQ」などを利用してPythonを勉強する習慣を作るというのもいいのではないでしょうか?

Pythonを学ぶならオンラインサービス「PyQ」!写経と圧倒的ボリュームで確実に身に着ける
Pythonを学ぶためにはブログ以外に、体系的に学べるオンラインサービスなどと組み合わせるのがオススメです。今回はPython専門の「PyQ」について、その特徴やオススメのポイントをお伝えします。

また、VBAについては今すぐにどうこうという話ではありませんので、1年くらいかけて勉強して、今後5年くらい使い倒すくらいしてもらえれば、まったく損はないと思います。

引き続き、頑張って学んじゃってください。


The following two tabs change content below.
株式会社プランノーツ代表、コミュニティ「ノンプロ研」主宰。1976年こどもの日生まれ。東京板橋区在住。「ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ ★フォロー頂ければ嬉しいです。

コメント