本記事では、
「エクセル業務でVBAとPythonを勉強するならどっちがいい?」
「エクセル業務でVBAとPythonを使った感想を教えて」
という疑問にお答え致します。
こんにちは。エクセル業務でVBAとPythonを使用しているインプロです。
今回は実際にVBAとPythonを使用した詳細な感想やどっちがおすすめなのかを記事にしようと思います。
VBAとPythonの比較
プログラムを学ぶやすいのはPython
プログラムを覚えるという点で難易度が低いのはPythonの方と思います。
理由は、コードを記載するときに、より簡単にコード記入ができるからです。
いちいちデータ型などを指定する必要がありません。
しかし、エクセル業務のために、プログラムを学ぶことを考えるならば、VBAの方が楽です。
理由はVBAを学ぶツール(本や動画講座)が非常に多く揃っていることや、エクセル自体に組み込まれているので直感的な操作を通して学びやすいです。
エクセル業務をする点ではVBA
エクセルをプログラムで動かすことを考えるとVBAの方が楽です。
理由は、Pythonは外部ソフトでエクセルをいじりますので、環境構築から始まり、デバッグ(バグだし)に至るまで面倒ですし、Pythonでエクセルを動かす情報はまだ十分ではないと思います。
VBAの場合、エクセルに付属しているので、「マクロの記録」から「コードの記入」まで情報が非常に多く学びやすいと思います。書籍も多数出ていると思います。
また、エクセルVBA付属デバッガーが優秀で、プログラムをミスった場合にどこで記入ミスをしたのかなど、非常にわかりやすいです。
処理速度が早いのはPython
処理速度が早いのはPythonです。エクセルを開くことなく処理するのでかなり早いです。(他にも理由はあると思います。)
ただし、技術者でもない限りは、VBAでそんなに遅く感じことはないと考えます。
私は膨大な実験データを拾ってきて、計算とグラフ化まで行うので、ちょっと重く感じてしまいます。
社内で共有するならVBA
作ったプログラムを社内で共有して、誰でも使えるようにするならVBAの方が有利です。
理由はVBAはエクセルファイルの保存形式を変えるだけで誰でも使えるからです。エクセルは多くの人のパソコンにインストールされていると考えられるため、配布しやすいです。
一方で、Pythonでプログラムを共有する場合、その共有された人もPythonをインストールしないといけないので、作った人だけが便利なプログラムになります。いわゆる、社内レガシー化しやすいです。
また、ディープラーニングなどでPythonが普及しているとは言え、Pythonで作ったエクセルプログラムを社内共有しているところをいままでみたことがありません。
どっちを学ぶべきか?
Pythonに向いている人
技術者やエクセル以外の業務をやりたい人は、Pythonを学ぶべきと思います。
理由はPythonを学んでおけば、その後プログラムに応用が効くからです。例えば、自動打刻やスクレイピング、ディープラーニングなどはPythonの方がやりやすいです。
いちいちエクセルVBAを学んでからPythonを学ぶと、Pythonのコードに慣れるのに少し時間がかかります。
VBAを知っていれば、Pythonはある程度理解できますが。
VBAに向いている人
VBAを学ぶ人に向いているのは、エクセル業務中心の人です。プログラム自体はPythonの方が簡単ですが、エクセル業務に使用するにはVBAの方が向いています。
使ったプログラムそのままエクセルに記入されるので、わかりやすさも抜群です。
また、VBAはエクセルだけのものと思っている人もいますが、パワーポイントやワードでも使えます。
実験で撮影した膨大な写真をパワーポイントに一気に貼り付けるなんてこともできます。
しかも、調べたら誰かのサンプルコードがネット上に落ちていることがあります。気に入らなかったら、少しコードをいじるだけです。
Officeを使った業務全般にVBAは使えるのでおすすめです。また、VBAがわかるようになれば、PythonやC言語など他の言語を学びやすいと思います。
逆にPythonを学んでから別の言語を学ぼうとすると、他の言語の面倒さにイラッとすることがあると思います。
エクセル業務ではどっちを使うべき?
業務で使うなら、やはりVBAの方が楽です。
私が楽だと思うのは、デバッグが優秀で楽なのと、先人の情報がWEB上の至るところに落ちているので苦労することがあまりないです。
一時期、エクセルにPythonが組み込まれると噂されていましたが、まだ実現されていません。
エクセル処理に勉強におすすめ本
VBAの本
インプレスブックスの「できる イラストで学ぶ 入社1年目からのExcel VBA」から勉強することをおすすめします。
こちらも、kindle unlimited(1ヶ月無料)利用すれば、1ヶ月無料の読み放題対象商品です。この人気本が一ヶ月無料で読めるのはちょっとびっくりです。上で本と合わせて紹介している本と合わせて勉強するのもありです。
本書は、VBAの文法、語彙、作文力を1冊で効率的に身に付けられる入門書です。キャラクター会話やイラストを豊富に用いており、つまずきがちな項目もかみ砕いて解説しています。
会話やイラストなどが理解を助けてくれるため、初心者の方でも途中で引っかかることなく、最後まで着実に読み進められます。
以下の記事も参考にしてみてください。
Pythonの本
現在、以下のような方が出版されています。いずれもopenxmlを使って、外部からエクセルを操作します。
「めんどうな作業が秒速で終わる! Excel×Python自動化の超基本」
「Pythonでかなえる Excel作業効率化」
「Excel×Python最速仕事術」(プログラムを最初に勉強するには難しいです。)
以下、Pythonでエクセル以外の操作も可能になります。
「PythonでExcel、メール、Webを自動化する本」
「できる 仕事がはかどるPython&Excel自動処理 全部入り。 全部入り。」
「退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング」(分厚い本ですが、詳しくてわかりやすいのでおすすめです。)
より安く、より効率的な勉強はオンライン動画
オンライン動画講座
通信教育よりも圧倒的に安くかつ効率的勉強したい人は、オンライン動画で学ぶことを強くおすすめします。
ただし、VBAやPythonの一般的な通信教育では、数万~数十万円くらいでします。
しかし、Udemyというサイトでは、非常に格安で動画を購入することが可能です。数万する動画講座もセールの時は1000~2000円くらいで購入できます。
私もセールの時は、かなり購入してしまいがちです。
現場のプロでありながら、個人で講座を作成しているので、大手と比べてかなり安く購入できます。
おすすめVBA講座
真っ先におすすめしたいのが「EXCEL兄さん」の授業です。Udemyのなかでも低価格で高品質のためおすすめです。
段階を踏んでいきながら勉強でき、無理なくレベルアップできます。初心者~脱初心者までのコースがあります。
一度、講義内容や感想・レビューを一読してみてください。挫折した人たちがこの講義で、「理解できた!」という感想が多数あります。そのくらいわかりやすいです。
【講座の内容】新感覚!アニメで学べる新感覚のマクロVBA講座。「エクセル作業が終わらない、時間がかかって残業ばかり…」と悩むカフェ店長マークの前に、ある日突然あらわれた正体不明のクマ。エクセルを自動操作して次々に仕事を終わらせたマクロVBAの魔法とは…?
Excel VBA[第1弾](超入門)エクセルが自動で仕事する!マクロの魔法 文系・非IT職もできるプログラミング
以下、講座がレベル別になっており、一つずつクリアしていけば、効率的にステップアップできるのがいいです。
以下、講座がレベル別になっており、一つずつクリアしていけば、効率的にステップアップできるのがいいです。
Excel VBA[第1弾](超入門)エクセルが自動で仕事する!マクロの魔法 文系・非IT職もできるプログラミング
Excel VBA[第2弾](脱・入門編)請求書を1クリックで出力するマクロを作成!文系・非IT職もできるプログラミング
Excel VBA[第3弾](実用マクロ入門編)受注データを5秒で入力できるユーザーフォーム作成 VBAプログラミング
Excel VBA[第4弾]大量ブック・大量シート操作編!50個のExcelブックを一気にデータ収集するマクロ3時間講義
エクセル兄さんは本も出してます。動画の教科書にしても良いです。本を持つメリットは、動画よりも復習が楽です。
Pythonでエクセル操作
Pythonでエクセル操作する講座はあまり多くないですが、以下の講座があります。
Python で Excel・Word を自動操作しよう!【Python 初心者が知るべきモジュールの使いこなし方も】ワードとエクセルに焦点を当てており、内容としては広く浅くの内容です。
【夢月流】PythonでExcel操作自由自在~OpenPyXLの使い方~は、通常エクセルを操作する際にはPythonの中のライブラリを使用しますが、ここではOpenPyXLというライブラリを使用して説明しています。