長年VBAを使い続けた結果、とある感情を抱えた人が書いたVBA入門記事その1です。まずはこの記事でVBAの基礎を身に付けて、その後Pythonにステップアップしましょう。→VBAユーザーのためのPython入門 ~xlwingsでExcelからPythonを呼び出す~
記事一覧
- Excel VBA入門 ~その1 Excel VBAとは~
- Excel VBA入門 ~その2 最初のプログラム~
- Excel VBA入門 ~その3 基礎1~
- Excel VBA入門 ~その4 基礎2~
- Excel VBA入門 ~その5 Tips~
- Excel VBA入門 ~その6 アンチパターン~
Excel VBAとは
Excelにくっついているプログラミング言語。Excelでできるほとんどのことが可能(Power QueryやPower Pivotに関するものは不可)。古臭い。
VBAとPythonの比較
VBA | Python | 理由 | |
---|---|---|---|
開発環境の準備 | ○ | △ | VBAはすぐに使えるが、Pythonはアプリのインストールが必要 |
MS Officeとの連携 | ○ | △ | Pythonはライブラリーを使えばある程度可能 |
実行速度 | △ | ○ | Pythonはライブラリーを使用すれば早い。並列処理も可能。 |
並列処理 | × | ○ | VBAだとCPUの性能を活かしきれない |
言語の柔軟性 | × | ○ | VBAは古すぎて制限が多い。Pythonは現代的なプログラミング機能をひと通り揃えている |
新機能追加 | × | ○ | VBAは開発が停止されているが、Pythonは現在も開発されており機能追加されている。 |
開発環境の使いやすさ | × | ○ | VBAは古いVBEしか使えないが、PythonはVSCodeが使える |
開発速度 | × | ○ | Pythonの方が言語の機能やライブラリーが豊富 |
ライブラリー | × | ○ | VBAにはサードパーティーのライブラリーがほとんどない |
応用 | × | ○ | Pythonはライブラリーを活用すればいくらでも応用できる |
人気 | × | ○ | VBAは嫌われ言語上位常連、Pythonは好きな言語上位常連 |
バージョン管理 | × | ○ | VBAは都度モジュールを出力しなければならない |
VBAやってはいけない
Excel/VBAは業務ツールのフロントエンドとして使用。データ取り込みはPower Queryで、ロジックを伴う処理はPythonで行うのが効率的。
以下はVBAではやってはいけない:
- データ取り込み。Power QueryやPythonで行うこと。
- データ出力。Pythonで行うこと。
- 統計処理。車輪の再発明になるため。Pythonのパッケージで提供されているので、それを使う。
- ロジックを伴う処理。Pythonの方が機能が豊富で環境も優れているため。
VBAでやることは以下くらいしかない:
- PythonやPower Queryの呼び出し