GoogleスプレッドシートでVBAは使用できるか?
Googleスプレッドシートでは、Microsoft ExcelのVBA(Visual Basic for Applications)を直接使用することはできません。 これは、GoogleスプレッドシートがExcelとは異なるプラットフォームやシステム技術を採用して開発されているためです。
代わりの方法:Google Apps Script(GAS)
Googleスプレッドシートでは、VBAに代わる強力な自動化ツールとしてGoogle Apps Script(GAS:ガス)を使用することができます。Google Apps Scriptは、世界的に広く使われているJavaScriptをベースにしたスクリプト言語であり、スプレッドシートをはじめとする様々なGoogleサービスをプログラムで操作するために設計されています。
Google Apps Scriptを使用したサンプルコード
以下は、Googleスプレッドシートの特定のセルに値を入力する最もシンプルなサンプルコードです。
// Google Apps Scriptのサンプルコード
function writeDataToCell() {
// アクティブな(現在開いている)シートを取得
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// セルA1に値を入力
sheet.getRange('A1').setValue('Hello, Google Apps Script!');
}
このコードを実行すると、開いているシートのセルA1に「Hello, Google Apps Script!」という文字列が自動で書き込まれます。
VBAとGoogle Apps Scriptの違い
| 特徴・項目 | VBA(Excel) | Google Apps Script(スプレッドシート) |
|---|---|---|
| プログラミング言語 | Visual Basic(VB)ベース | JavaScript(ES6+)ベース |
| 実行環境 | ユーザーのパソコン(ローカル環境) | Googleのクラウド(サーバーサイド環境) |
| クラウド・外部連携 | 限定的(OneDriveや外部ライブラリが必要) | GmailやGoogleドライブ、各種WebAPIと手軽に連携 |
| 主な利用シナリオ | Excel内のマクロ処理や社内ツールの構築 | 複数人での共同ワークフローや日常業務の自動化 |
Google Apps Scriptの高度な活用例
Google Apps Scriptを活用すれば、単純なセルの操作だけでなく、以下のような高度なシステム機能も実現可能です。
- 特定の曜日や時間、あるいはフォーム送信をきっかけにした「処理の自動実行(トリガー機能)」
- Googleカレンダー、Gmail、Googleフォームなど、他のGoogleサービスとのシームレスな自動連携
- 外部APIとの統合(例:Web上のデータを自動で定期取得してスプレッドシートに反映する)
応用サンプル:外部APIを使用したデータ取得
以下は、外部のWeb APIからデータを取得し、スプレッドシートへ自動的に書き込む応用例です。
// Google Apps ScriptのAPI使用例
function fetchDataFromAPI() {
const response = UrlFetchApp.fetch('https://api.example.com/data');
const data = JSON.parse(response.getContentText());
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// データをループ処理でスプレッドシートに書き込む
data.forEach((item, index) => {
sheet.getRange(index + 1, 1).setValue(item.name);
sheet.getRange(index + 1, 2).setValue(item.value);
});
}
このコードを実行すると、外部システムから最新のデータを自動で取得し、シートのA列とB列に並べて書き出すことができます。
結論
GoogleスプレッドシートではExcelのVBAをそのまま動かすことはできませんが、Google Apps Script(GAS)を活用することで、VBAと同等、あるいはクラウド環境を活かしたそれ以上の自動化を実現できます。特にリモートワークでの共同作業や、各種クラウドサービスとの連携が必要なシーンでは、GASは非常に強力な味方になります。
VBAでプログラミングの基礎(変数、条件分岐、ループなど)が身についている方であれば、GAS(JavaScript)の習得コストは非常に低いため、ぜひこの機会に挑戦してみてください!