近年、IT関連の雑誌やネット記事で「Python(パイソン)でExcel操作」といった記事が多く目にするようになりました。
その多くは「仕事を自動化しよう」という目的であることが多いです。

でも、Excelの自動化でしたら、「マクロ」とか「VBA(Visual Basic for Applications)」などでできます。
(「マクロ」については「Excel マクロ(1)」「Excel マクロ(2)」「Excel マクロ(3)」でご紹介しました。)
なぜ、わざわざ「Python」というプログラム言語を覚えて自動化しようとするのでしょうか。

RPAとは?」記事で触れましたが、日々の仕事の中でルーティン化されている作業って結構あります。
その作業を自動化して、それまで手間をかけていた作業がボタンをクリックするだけで完了できたら時短にもなりそうです。
そのためには、その作業をプログラム化しないといけません。
職場全体で使うようなプログラムでしたら、ソフトウェア開発企業に外注して作ってもらうこともありますが、大きな費用も発生しますし、なによりプログラムにやってもらいたい内容を“定義書”などを通じて開発会社に伝えなくてはなりません。

日々の仕事を振り返って、個人またはチームで必要とされるプログラムは、それよりも小規模で、予算もそれほど用意できない場合が多いです。
なにより、仕事の内容を十分に知っているのは、その当事者です。
当事者が仕事を効率アップするためプログラムによる自動化するとき、当事者がそのプログラムを作ってしまうのが一番手っ取り早いです。

それなら、Excelで使える「マクロ」「VBA」でやればよい?
半分“Yes”で半分“No”です。

過去に、ネットショップを運用されている方から、VBAでの処理を依頼されたことがあります。
毎日送られてくる注文・入金・発送などのデータが 1,000~2,000行ほどあり、これらのデータのダブりや現在のステータスをチェックし、顧客に適切に応答しなくてはなりません。
そのデータチェック作業を VBAで、というご依頼でした。

Excelで完結する作業なら、このように「マクロ」「VBA」でやればよいと思います。
でも、その作業が、Excelだけでなく、例えば Webサーバからデータを取り込んだり、メールで応答したり、他のアプリに絡んで進めるというものであれば「Python」の利用をご検討ください。

「マクロ」「VBA」も「Python」もまだ知らないという方は「Python」を覚えましょう。
「マクロ」「VBA」は知っているという方でも、作業が Excelの枠を超えているなら「Python」も覚えましょう。

 

「Python」は汎用のプログラミング言語です。
プログラミング言語」で簡単に触れたように、他にもプログラミング言語はたくさんあります。
でも、Pythonは文法がシンプルで覚えやすく、他方面の仕事に使えるライブラリが充実しています。

今回は Pythonの具体的な使い方はご紹介しません。
ネット記事などを検索すると、とても多くの記事が検索されます。
Excelファイルを扱うライブラリにも「openpyxl」「pywin32」「xlwings」「pandas」などなどいくつか提供されています。
また、Python 自体のインストールとかも面倒な方には、例えば「Google Colaboratory」などを使えば Webブラウザ上で操作できます。

いずれ機会があれば、これらのこともご紹介していきます。