GAS と VBA を触ってみての比較になります
【結論】
-
GAS は初めてでも理解しやすい
- Googleフォームとの親和性も高く素早くモノを作れる
- 個人利用や小規模のコミュニティ程度の利用であれば十分
-
VBA は GAS に比べて難しく感じるが複雑な要件も満たせる
- VBA 自体が静的型付け言語で GAS に比べ習得が難しい
- Excel だと Python も実行可能
- VBA と組み合わせれば更に高度な実装要件も満たせる
- 導入事例などを確認すると法人向けなど大規模な対象に適している
それぞれの特徴について
GAS
知名度も人気も高い言語を主体に開発を進められる
- GAS は JavaScript を主体に開発を進めていく
- そのため新たに"GAS 専用の言語"を勉強する必要が無い
一般的なウェブ言語を使用
Apps Script を使えば、HTML、CSS、JavaScript を使って開発を行えます。独自のフレームワークの知識を新たに身に付ける必要はありません。Google Workspace より引用
Googleフォームとの親和性が高い
- 下画像のようにスプレッドシートから Google フォームとの連携が行える
- これにより「Google フォームで受け取った値をスプレッドシートで記録」といった構成を素早く構築できる
- Google フォームがフロント側、スプレッドシート側がバックエンド側
- GAS がバックサイドの処理担当、シートが DB の役割担当というイメージ
- Google フォームがフロント側、スプレッドシート側がバックエンド側
- これにより「Google フォームで受け取った値をスプレッドシートで記録」といった構成を素早く構築できる
VBA
静的型付け言語である
- VBA は Java, Go と同じ静的型付け言語であるため GAS (JavaScript 互換言語) に比べ習得難易度が高い
- 開発段階から厳密な型付けなど要求されるので大規模開発に向いている
Python が使用可能 (Python in Excel)
- データ分析にも使用される Python が Excel 上で使用可能
- "Python in Excel" で Excel に記録しているレコードを基にデータ分析をして、その作業を VBA で作業の自動化を図るといったことも可能
- これにより更に法人など大規模組織への導入が増えそう
所感
- 単純な「スプレッドシート v.s. Excel」での比較であればそこまで差は無いのでどちらを採用しても良いかと考えていたが、こうやって比較すると目的によって使い分けられるのではないかと感じた
- 両者の特色がハッキリと異なっており似たようなアプリと思いきや住み分けが出来ているのではないか
参考資料など