長年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の呼び出し