私はこれまで、主にVBAを用いて開発を行ってきましたが、最近になって、あるグループからの依頼でGAS(Google Apps Script)を用いた開発を行う機会がありました。
GASに関する知識はあまりありませんでしたが、生成AIのお陰でなんとか無事に開発することができました。ただし、AIに指示を出したり、AIからの回答を読み解いたりする中で、VBAとGASの用語の違いにとまどうことが何度かありました。
そこで、今後の開発の備忘録もかねて、GeminiにVBAとGASの用語の違いを一覧表にまとめてもらいました。改めて比較してみると、違う用語が用いられている場合もあれば、同じ用語が違う意味で使われている場合もあり、非常に面白い発見があります。以下がその比較表です。
VBAとGASの用語比較表
概念の大きいもの(アプリケーションやプログラムの全体構造)から小さいもの(コードの構成要素や個別の命令)の順に並べています。
| VBAの用語 | GASの用語 | 意味・概要 |
|---|---|---|
| マクロ | スクリプト | 作成されたプログラム(処理のまとまり)全般を指す通称。 |
| マクロ記録 | マクロ記録(マクロ) | ユーザーの操作を記録し、自動的にコードを生成する機能のこと。GASにも同等の機能があり、Googleスプレッドシートの「拡張機能」→「マクロ」→「マクロを記録」から利用できる。生成されるコードはGASで記述される。なお、GASでは「マクロ」という語がこの記録機能を指す場合と、スクリプト全般の通称として使われる場合があるため注意が必要。 |
| ブック (Workbook) | スプレッドシート (Spreadsheet) | ファイル全体のこと。GASではExcelのブックを「スプレッドシート」と呼ぶ。 |
| シート (Worksheet) | シート (Sheet) | アプリケーション内の各ページ。 |
| 行 (Row) | 行 (Row) | シートの横方向の並び。 |
| 列 (Column) | 列 (Column) | シートの縦方向の並び。 |
| プロジェクト | プロジェクト | プログラムをまとめた全体の単位。 |
| モジュール | スクリプトファイル (.gsファイル) | コードを記述するファイル。VBAの標準モジュールなどに相当する。 |
| 標準モジュール | スクリプトファイル (.gsファイル) | 一般的なコードを記述する領域。GASでは特有の区分はなく、すべてスクリプトファイルに記述する。 |
| ブックモジュール / シートモジュール | (特定の区分なし) | ブックやシートに紐づく専用のコード領域。GASでは専用の区分はなく、通常のスクリプトファイルにイベント処理などを記述する。 |
| フォーム (UserForm) | カスタムUI(HTMLサービス) | 独自の操作画面を作成する機能。GASではHTMLおよびCSS、JavaScriptを用いて作成し、ダイアログやサイドバーとして表示する。なお、GASには「Googleフォーム」を操作するための FormApp という別の機能も存在するため、混同しないよう注意が必要。 |
| プロシージャ (Sub) | 関数 (Function) | 処理のまとまり。GASでは戻り値の有無にかかわらず、すべて「関数(function)」として扱う。 |
| 標準プロシージャ | 関数 (Function) | イベントに依存せず、手動やほかのコードから呼び出されて実行される一般的な処理。 |
| イベントプロシージャ | トリガー(イベントハンドラ) | 特定の操作(ファイルを開く、編集するなど)をきっかけに自動実行される処理。GASでは onOpen や onEdit などのシンプルトリガーのほか、インストーラブルトリガーがある。 |
| 関数 (Function) | 関数 (Function) | 値を返す処理のまとまり。(GASではプロシージャと同義) |
| ユーザー定義関数 | カスタム関数 | セルから直接呼び出して計算などに利用する独自関数のこと。 |
| クラス / クラスモジュール | クラス (Class) | オブジェクトの設計図。独自のプロパティやメソッドを定義するために使用する。 |
| オブジェクト | オブジェクト | データおよび処理(メソッド)をまとめたもの。 |
| プロパティ | プロパティ | オブジェクトが持つ属性やデータ。 |
| メソッド | メソッド | オブジェクトが持つ操作や処理。 |
| ステートメント | 文(ステートメント) | 処理を実行するための1行、またはまとまった命令。 |
| 宣言 | 宣言 | 変数や定数を使用するための定義。VBAの Dim に対し、GASは let、const、var を使用する。 |
| 変数 | 変数 | データを一時的に格納する入れ物。 |
| バリアント型 (Variant) | (特定の型名なし) | GASは動的型付け言語であるため、すべての変数が宣言時に型を特定せず、さまざまな型のデータを保持できる。 |
| 定数 | 定数 | 書き換え不可能な値の入れ物。 |
| 配列 (Array) | 配列 (Array) | 複数のデータを順序付けてまとめる構造。GASの配列はサイズ変更が容易で、多様な操作メソッドを備える。 |
| Collection | 配列 (Array) | 順序付きのリストとしてデータを管理する構造。GASでは配列がこれに相当し、push や filter などの豊富なメソッドを利用できる。 |
| Dictionary | オブジェクト ({}) / Map | キーと値のペアでデータを管理する構造。GASではオブジェクト({})やビルトインの Map で代用する。 |
| 代入 | 代入 | 変数などに値を入れること。VBAでは = が代入と比較の両方に使われるが、GASでは代入が =、比較が ==(型変換あり)または ===(厳密比較)と明確に区別される。 |
| 演算子 | 演算子 | 計算や比較を行う記号(+、=、==、=== など)。 |
| Nothing / Empty | null / undefined | オブジェクトや値が存在しない状態。GASでは「値がない(null)」と「未定義(undefined)」が明確に区別される。 |
| On Error(エラーハンドリング) | try…catch 文 | エラー(例外)発生時の処理を記述する構文。 |
| MsgBox | getUi().alert | ユーザーにメッセージを表示するダイアログ。 |
| Debug.Print | console.log | デバッグ時に値を出力するための命令。GASではエディタの実行ログに表示される。 |
| コメント | コメント | 実行されない説明書き。VBAは '、GASは // や /* */ を使う。 |

コメント