プログラミングや電子工作などについての記事がほとんどです

Microsoft「ExcelにPythonを載せちゃおっかなー」の話について考えてみた

0 件のコメント

概要

こちらはpython Advent Calendar 2017 - Qiita21日目の記事です。

今回は技術ゴリゴリというよりはポエムに近い記事です。あんまりまとめることを意識せず、つらつらと書いているので変なところがあるかもしれません。賛同やご意見、議論のある方は是非コメント欄へ!

さてお決まりですが…

※この発言は個人の見解であり、所属する組織の公式見解ではありません

はじめに

ExcelのコミュニティサイトであるExcel’s Suggestion Boxに2015年11月5日にExcelのスクリプトとしてPythonを使いたいという旨のコメントが投稿されました。これはDanielさんという1ユーザの小さな一声。

そして2年後、記憶に新しい2017年12月15日にこのコメントにマイクロソフトのExcelチームから下記の正式なレスポンスが付きました。

Hi folks –

Thanks for the continued passion around this topic.

We’d like to gather more information to help us better understand the needs around Excel and Python integration.

To help us with this, can you please complete the survey below?

https://forms.office.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR7tUuWqOwSJFpBE5ZLhdkgtUMkhZWlkxRjhDRklXSjNTVkNSWkE2WlNQMS4u

Ashvini Sharma
Lead Program Manager
Microsoft Excel

要するに、Danielさんの投稿について熱い議論が長い間続いたので、ExcelにPythonが搭載されることのニーズを知るためにアンケートに協力してくれ、という内容。公式の開発チームがアンケートを取るところまで動き出し、ネット上では話題沸騰です。

PythonがExcelの公式スクリプトになった未来を考える

ここではもしPythonがExcelの公式スクリプトになったらどんな影響があるのかを考えてみましょう。

プログラマにExcelがもっと身近になる

1番最初に思いつくのはこの点でしょう。なぜ身近になるかというと、VBAに比べるとPythonの方がプログラマにとって学習コストが低く、親しみ易いからです。VBAっぽさを感じるDimとかSubといったキーワードは近年一般に使われているC言語、Java、Python、Ruby、JavaScriptでは見かけません。特殊さが他の言語間のそれとは比にならないような気がします。

プログラマにとっては学習することが簡単⇔難しいという単純な尺度だけでは単に学習コストは見積もれません。レガシー⇔モダンなど今後の応用性や発展性に関わる尺度と同時に見積もるべきです。そもそもVBAに対してPythonを習得するのが難しいかというと、簡単なことを実装するレベルであれば大差ないように思います。

情報源の幅が急激に広がる

Web上に情報源が多いのは圧倒的にPythonです。情報源の広がりは、Excelマクロのような軽量プログラム群にはかなりクリティカルに効いてくると思います。なぜならコピペで済むスクリプトが多く流通するから。業務効率の向上が見込まれます。

下記エビデンスから明らか。(結果はすべて2017/12/19時点のものです。)

Google検索結果

  • Python: 60M件
  • VBA: 21M件

PythonはVBAの約三倍です。より多く検索されているということは使っている人もそれだけ多いということが推測できます。

Googleトレンドの人気指数

  • Python: だいたい75
  • VBA: だいたい25

こちらもPythonはVBAの約3倍です。人気指数は検索ヒット数に起因している?

ちなみに地域別の関心度合いを見ると、PythonよりVBAの方が指数が高いのは数ある国の中でも日本(Python:VBA=2:3)とアルジェリア(Python:VBA=1未満:1未満)のみ。 なおアメリカは Python:VBA=4:1 という比率になっている。 普通に蛇の意味でのPythonが引っかかっているかもしれないので、コメントしないことにする。

GitHubのリポジトリ数

  • Python: 2M件
  • VB: 45K件

GitHubのPublicなリポジトリを対象に、様々な統計を出しているnamariというサービスから引用しました。Visual Basicなので厳密にはVBAじゃないのですが、VBAという項目がなかったので仕方なくこれで。

マクロスクリプトの性能が向上する

VBAに比べてPythonの方がプログラミング言語としては明らかに勢いがあることは先述のとおりです。それだけでなく、プログラミングに明るい人が話題に上げるのもやはりVBAよりもPythonです。処理のチューニングや最適化に関する情報はPythonの方が豊かであることは自明でしょう。

ライトなプログラマの人口が急増する

ここでのプログラマとは、「ソフトウェアを生業にして生きている人」ではなく、「コアコンピタンスとは別のスキルとしてプログラミングがこなせる人」のことを意味しています。

Excelでの業務プログラミングをきっかけに、更にディープな技術を学び始める人が増えるかもしれません。企画畑のアイデアマンがパワポを作るような感覚で自分でサービスのプロトタイプを作成し、会議で発表する、なんてことが普通になる未来が来るかもしれません。

マルウェアが増える?

VBAに比べるとPythonは豊富なライブラリが充実しており、複雑な機能も比較的簡単に実装出来ます。それを逆手に取れば、厄介な機能を持つ悪質なソフトウェアを作るのも容易であると言えます。VBA專門のマルウェア開発者だけでなく、他のマルウェア開発の片手間にExcelマクロマルウェアを開発するというシナリオは想像できなくはないでしょう。

VBA職人には生き辛い世界になる

これまでVBAによる業務効率化マクロを生活のあてにしていた人が苦しむことになるのではと考えています。Pythonは言語としての注目度が高く、情報系の学生はもちろんのこと、データ処理を必要とする理系学生の一部も普通に使います。また、ホビーとしてのプログラミングに使う言語としても人気の言語です。ライトなプログラマ層が増えることで、副業やアルバイトとしてのマクロコーダーが発生するのではと考えています。
PythonコーダーがExcelマクロに手を出す分にはそれほど苦労しないと思います。逆にVBAしか使えないひとは唯一に近いフィールドであるExcelマクロの領域を奪われてしまうことになる。VBAの言語としての応用性を考えると、他の領域に取り組もうとすると言語の再学習が必要になり、大変そうです。

蛇足: Excelを扱うPythonライブラリ

Excelが公式にPythonをサポートしていないからといって、マクロスクリプトとしてPythonが使えないわけではありません。現状、色々なライブラリがPythonからExcelを扱う障壁を下げてくれています。

まとめ

色々書きましたが、Excelユーザ、Pythonユーザにとっては今回のニュースは喜ばしいものだと思っています。Pythonユーザであり、業務でExcelを扱う私としては是非Excelの公式スクリプトとしてPythonを採用して欲しい限りです。あと、実現するならPythonをベースにした独自スクリプトとかはやめてほしい。

0 件のコメント :

コメントを投稿