ここから本文です

プログラム自動実行で仕事を楽に! APIでSlackなどと連携できる「Google Apps Script」とは

8/9(水) 8:10配信

@IT

 業務で発生するちょっとした面倒くさい業務。特定の操作を繰り返すだけなので、今のままでもいいけど、楽になったらいいなと思うこともあるのではないでしょうか。例えば業務を自動化すると時間が空くため、他の業務に時間を充てたり、残業時間を減らしたりできるかもしれません。今回はGASの説明とセットアップ方法を紹介します。

スクリプトエディタの画面構成

●GASとは何か

 Google Apps Scriptは、Googleが提供する数々のアプリケーション(以下、Google Apps)を操作できるプログラミング言語です。略して「GAS」(呼び方:ガス)または「Apps Script」ともいわれます。GASを使いこなし、さまざまなアプリケーションの動作を自動化したり、連携したりすることで、日々の業務を効率化できるようになります。

 本稿では、Google Appsの中でも特に業務で使用されることが多いGoogleスプレッドシートを例に、GASとその使い方についてお伝えします。

○GASを使うとどんなことができるのか

 GASは、多くのアプリケーションを操作できます。デフォルトの状態では以下の11種類のGoogle Appsが操作対象です。

・Googleスプレッドシート
・Googleドキュメント
・Googleサイト
・Googleフォーム
・Googleドライブ
・Gmail
・Googleカレンダー
・Google連絡先
・Googleグループ
・Googleマップ
・Google翻訳

 さらに「拡張サービス」と呼ばれる機能を有効にすることで、データウェアハウス「BigQuery」やアクセス解析ツール「Googleアナリティクス」などのアプリケーションも操作できるようになります。全て合わせると、操作できるアプリケーション数は30を超えます。

 また個々のアプリケーションの動作を自動化することはもちろんですが、2つ以上のアプリケーションを連動させることも可能です。例えば、以下に挙げるようなさまざまなアイデアを実現できます。

・Googleスプレッドシートのデータリストから帳票を作成し、PDF形式でGoogleドライブに保存
・Googleドキュメントの内容を翻訳して、Gmailで送信
・Gmailに届いた予約メールを抽出して予定をGoogleカレンダーに登録
・Googleフォームに回答した人にサンクスメールを自動返信
・Googleスプレッドシートの住所一覧をGoogleマップにプロット

○JavaScriptがベース

 GASは、完全にオリジナルなプログラミング言語ではなく、人気があるプログラミング言語の1つである「JavaScript」をベースに作られています。そのため、JavaScriptを習得済みであれば、GASの習得は容易でしょう。逆にGASを習得することで、JavaScriptを学ぶことができる点は、GASのプログラミングを学ぶ大きなメリットの1つです。

 ただし注意すべき点があります。他の環境で使用しているJavaScriptのコードの中には、GASで使用できない機能が一部あります。その点を認識の上、学習を進める必要があります。

○クラウド上で動作する

 GASの最大の特徴は、クラウドで動作するということです。Excel VBAは、コーディングも、プログラムの実行も、ユーザーが操作するPC内で行われます。一方でGASは、Webブラウザを介してクラウド上でプログラムを編集し、実行もクラウドサーバ内で行われます。

 これによるメリットは幾つかありますが、まず1つ目は「Webに強い」という点が挙げられます。GASは、Google Appsとそのデータにアクセスするだけではなく、Webアプリケーションを構築したり、APIやハブサービスを通じて「Slack」「チャットワーク」「kintone」などの外部のサービスと連携したりできます。

 2つ目は「開発環境が不要」という点です。サーバ上で動くプログラムを作るとき、当然ながらサーバを準備する必要がありますが、GASは必要ありません。全てGoogleが用意しているので、私たちはWebブラウザでアクセスするだけ。すぐにGASの学習と開発を開始できます。

 3つ目のメリットとして挙げられるのは「トリガー」と呼ばれる機能です。実行するプログラムと操作対象となるアプリケーションやデータは、クラウド上にあります。「トリガー」を設定しておくことで、PCを閉じていたとしてもプログラムを特定の時間に動作させたり、他のユーザーの操作をきっかけに動作をさせたりといったことが可能になります。

●GASを開いてみよう

○GASを始めるために必要なもの

 GASを始めるために必要なものは3つだけです。

・Googleアカウント
・Webブラウザ
・インターネットに接続できるPC

 GoogleアカウントはG Suiteのメンバーはもちろん、無料の「Googleアカウント」でも問題ありません。つまり、GASは無料で利用できます。Webブラウザは、一般的なものであれば動作します。またPCはWindows、Macどちらでも問題ありません。

○スクリプトエディタを起動する

 GASのプログラムには2種類あります。Googleドライブに直接プログラムファイル自体を保存する「スタンドアロン型」と、スプレッドシートなど他のアプリケーションのファイルにひも付いてプログラムを保存する「コンテナバインド型」です。この2つは、作成および保存の方法と一部の機能を除けば、同じように動作します。

 今回は例として、スプレッドシートにひも付くコンテナバインド型のプログラムを作成していきます。ブラウザで対象となるスプレッドシートを開き、メニューから「ツール」→「スクリプトエディタ」を選択します(図1)。

 すると、ブラウザの新規タブでスクリプトエディタが起動し、プログラムの編集や実行などの操作ができます(図2)。

○スクリプトエディタの画面構成

 スクリプトエディタの画面構成を見ていきましょう(図3)。

 まずGASのプログラムは、「プロジェクト」という単位で作成します。スクリプトエディタの上部に「無題のプロジェクト」とありますが、これがプロジェクト名です。プロジェクト名は、「無題のプロジェクト」をクリックすることで、別名に編集できます。

 プロジェクト内には複数のファイルを持つことができ、GASのプログラムは拡張子が「.gs」となるファイルに保存されます。この時点では、「コード.gs」という1つのファイルが存在している状態です。新たなファイルをプロジェクトに追加すると、画面左のファイル一覧にファイルが追加されていきます。

 スクリプトエディタの中央右側の入力エリアにプログラムを書いていきます。現在は、「コード.gs」の内容が表示されています。

 またスクリプトエディタには、メニューやツールバーをはじめ、開発を支援するためのさまざまな機能が提供されています。

●GASの実行と保存

○プログラムを入力する

 では、実際にスクリプトエディタにプラグラムを記述し、実行してみましょう。 スクリプトエディタには既に「コード.gs」の内容として、以下コードが記述されています。

□□
function myFunction(){

}
□□

 「myFunction(){」と「}」の間の行に半角で「Browser.msgBox('Hello');」と入力して、以下のコードを完成させましょう。字下げは「インデント」といい、[tab]キーを使うことで挿入できます。

□□
function myFunction() {
Browser.msgBox('Hello');
}
□□

○入力の注意点

 GASは、大文字と小文字が厳密に区別されます。そのため「browser.msgBox('Hello');」や「Browser.msgbox('Hello');」を、実行するとエラーとなります。このようなエラーを避けるために、スクリプトエディタの「コンテンツアシスト機能」を積極的に使うことをお勧めします。

 コンテンツアシスト機能は[Ctrl]+[Space](Windows)で入力候補をリスト表示する機能で、リストの中から目的の候補を選んで[Enter]キーで選んだコードを記述できます。

 例えば、下図のように「br」まで入力した時点でコンテンツアシスト機能を使うと、入力候補として「Browser」が表示されます(図4)。


○関数とは

 GASでは、プログラムの処理のひと塊を「関数」という単位で記述します。関数は以下の通り「function文」を用いて定義をします。
□□
function 関数名() {
'処理
}
□□

 関数は、呼び出されると、波かっこの間にある命令を上から順番に実行していきます。その処理の単位を「ステートメント」といいます。前述の例では、関数名は「myFunction」、呼び出されて実行されるステートメントは1つで「Browser.msgBox('Hello');」です。

○プログラムの実行と承認

 実際に関数「myFunction()」を呼び出して実行してみましょう。スクリプトエディタからプログラムを実行するには、まずツールバーから実行する関数名をプルダウンリストで選択します(現在はmyFunction1つしかありません)。その上でツールバーの「実行ボタン」(三角形のアイコン)をクリックするか、ショートカットキー[Ctrl]+[R](Windows)/[Command]+[R](Mac)を押すことで実行できます(図5)。

 初回の実行のときに「プロジェクトを実行するには、先に保存する必要があります。今すぐ保存しますか?」というダイアログが表示されます。「はい」を選択の上、プロジェクト名を編集し、保存をしてください。

 再度プログラムの実行をすると、今度は「承認が必要です」というダイアログが表示されます(図6)。

 プログラムを実行するユーザーは、GASのプロジェクトが「操作対象とするスプレッドシートにアクセスしてもいい」という許可を承認する必要があります。これは、GASならではの手順といえます。

 「承認が必要です」ダイアログで「許可を確認」をクリックし、アカウントを選択します(図7)。続いて表示される画面で「許可」を選択すれば承認作業は完了です(図8)。初回で承認を終えれば、次回以降は承認を求められることはありません。

 実行しても何も起きないように見えますが問題ありません。実はちゃんと動いています。スクリプトエディタからスプレッドシートに画面を切り替えると、「Hello」と表示されたダイアログボックスが表示されているはずです(図9)。

○プロジェクトを保存する

 プログラムに変更を加えると、ファイル名の横に「*」(赤いアスタリスクマーク)が付与されます。スプレッドシートやドキュメントなどのアプリケーションでは、編集した内容が自動保存されます。しかし、スクリプトエディタのプログラムは自動で保存されません。このアスタリスクマークがあるときは、ツールバーの保存ボタン(ディスク型のアイコン)またはショートカットキー[Ctrl]+[S](Windows)/[Command]+[S](Mac)でプログラムを保存しましょう(図10)。

 今後、このプロジェクトを開く場合は、ひも付いているスプレッドシートを開き、メニューから「ツール」→「スクリプトエディタ」を選ぶことで開くことができます。

●次回はVBAで簡単なツールを作ります

 今回は「GASとは何か」「どのように使うか」を解説してきました。これで実際にGASを活用するスタートラインに立つことができたと思います。今後、少しずつ学習と活用を積み重ね、できることを増やしていってほしいと思います。

 今回出てきたショートカットキー/アクセスキーをまとめておきます。これらは、ぜひ覚えておいてください。

●ショートカットキーまとめ

・コンテンツアシスト機能:[Ctrl]+[Space](Windows)

※コンテンツアシスト機能のMacのショートカットは存在するようですが、作動しない可能性もあるため、本稿では記載を避けさせていただきます。

・プログラムの実行:[Ctrl]+[R](Windows)/[Command]+[R](Mac)
・プログラムの保存:[Ctrl]+[S](Windows)/[Command]+[S](Mac)

 さて、1回目ではVBA、2回目ではGASについて伝えてきました。この2つは以下の点で類似しています。

・アプリケーション群を操作できること
・業務の効率化や自動化に有効なこと
・開発環境の準備が簡単で手軽に始められること

 しかし、どちらか一方が他方を代替する存在かというと、それは早計です。Google Appsを操作するならGASを使わない手はありませんし、クラウドにあるからこそトリガーによる実行やWeb経由での連携が容易となります。

 一方で、GASには実行時間や特定の処理の回数などについて制限があり、それらの制限に抵触しないように注意を払う必要があります。VBAであれば、そのような実行時間の制限を気にせずに開発ができます。またOfficeアプリケーションやInternet Explorerなどを使って仕事をしているなら関連性の高いVBAで開発を行った方が最適でしょう。

 それぞれの得意分野を理解し、適材適所で活用をするのが最も賢い方法です。ぜひ、両方のマスターを目指して頑張っていきましょう。



●著者プロフィール

○高橋宣成

プランノーツ 代表取締役

「ITを活用して日本の『働く』の価値を高める」をテーマに、ExcelやVBA、G Suite、Google Apps Script、クラウドなどによる企業または個人事業主向けのシステムおよびツールの開発やコンサルティング、セミナー講師などを務める。「IT×働き方」をテーマに運営するブログ「いつも隣にITのお仕事」は、開設2年弱で月間40万PV達成。

●書籍紹介

○ExcelVBAを実務で使い倒す技術

高橋宣成著 秀和システム 1944円(税別)

動くコードが書けたその先、つまり「ExcelVBAを実務で使う」という目的に特化した実践書。ExcelVBAを楽に効果的に使いこなし続けるための知恵と知識、そしてそのためのビジョンと踏み出す勇気を提供する1冊。

最終更新:8/9(水) 8:10
@IT