「Google Apps Script」とは、Googleが提供するプログラミング言語です。
略称として「GAS」と呼ばれますので、ここでも以下「GAS」と呼ぶことにします。

GASの基本的な文法は JavaScriptの文法を踏襲しており、これに Googleの各種サービス(Gmail、Googleカレンダー、Googleドライブ、Googleスプレッドシート、Googleマップなどなど)を扱うための機能をプラスしたものと言えます。
ですから JavaScriptを少し学んだことがあれば、すぐにコード作成に進められますし、Googleのサービスを連携させて自動化させることができます。

よく対比されるのが Microsoftの Excelなどに備わる VBA(Visual Basic for Applications)でしょうか。
特に Excelの表データについて処理の自動化などに利用される VBAは古くから現在に至るまで活用されていますが、一部例外もありますが、Excelブックの中で閉じた自動化と言えます。
一方、GASは、クラウド上で実行されます。
Googleの各種サービスがクラウド上で実行されるものなので、これは当然かもしれません。
でも、そのおかげでネット越しで操作でき動作させられ、Webアプリのように扱うこともできます。

その雰囲気を見ていただくため、スプレッドシート上のデータをコピーするという GASのコードを見てみます。
下図のような表データを含むスプレッドシートを例に試してみます。

 

B3セルを 別のセル(例えば B13セル)にコピーして、そのマクロを記録しようと思います。
メニュー [拡張機能]-[マクロ]-[マクロを記録]をクリックし、マクロの記録を開始します。
B3セルを [Ctrl]+[C]キーでコピーし、B13セルで [Ctrl]+[V]キーで貼り付けし、マクロを保存します。
[拡張機能]-[マクロ]-[マクロを管理]を選択し、「マクロの管理」画面で「…」から「スクリプトを編集」をクリックします。
GASの「無題のプロジェクト」画面が開き、その「コード.gs」を開くと下記のようなコードが表示されます:

  function myFunction() {
    var spreadsheet = SpreadsheetApp.getActive();
    spreadsheet.getRange('B13').activate();
    spreadsheet.getRange('B3').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
  };

これが GASで書かれたコードで、初見でもなんとなく動作の意味は掴めそうです。

GASを使うと、一般的には以下のような活用が考えられます:

  • プログラムの自動化
  • Webサイトからの情報収集(スクレイピング)
  • Webアプリケーション開発
  • 外部アプリケーションとの連携


上記の例は、あまりに単純で「プログラムの自動化」とは呼べないかもしれませんが、定型作業やルーチン化される操作などは GASで自動化できます。
そして、スプレッドシートの中だけで操作することに限らず、例えば Gmailに添付されていたファイルを取出して Googleドライブ上に保管するなど、Googleのサービスを連携して動作させることができます。

また「Webアプリケーション開発」では、HTML / CSSコードも一緒に作ってしまえば Webアプリを作って公開することもできます。
これも雰囲気だけご紹介します。
例えば、Googleドライブで「+ 新規」-「その他」-「Google Apps Script」をクリックし「スクリプトを作成」をクリックすると、下図のような開発編集画面が開きます。

 

この「コード.gs」に GASのコードを書き込んで、その上の「ファイル」の「+」から「HTML」を選択し HTMLコードを作れば簡単な Webアプリができます。

そう言えば、先に「Googleフォーム(Forms)(1)」記事で取り上げた Googleフォームも GASで作成したり回答結果に自動応答させたりすることができます。

この記事では、GASとは何かという概要だけをお話したので、これですぐに実践できるわけではありません。
私も参考書を片手に試行錯誤して Webアプリなどを作成してきました。
Googleが提供する「Google Apps Script の概要」ページがありますので、興味あればご参照ください。
Excelのマクロや VBAもそうだったと思いますが、いきなり複雑なことから始めず、単機能の動作から始めていくとよろしいと思います。