Googleドライブの文書作成機能

メールサービスのGmailをはじめ、ビジネスに役立つサービスを提供するGoogle Apps。文書作成や表計算、プレゼンテーション機能を持つGoogleドライブ(旧Googleドキュメント)、スケジュール機能などもあり、クラウド版のオフィススイート製品ともいえるだろう。

お仕着せの機能だけというわけではなく、JavaScrptベースの「Google Apps Script」、Webアプリケーションプラットフォームの「Google App Engine」を利用することで、企業に応じたカスタマイズも可能だ。とはいえ、組織で使うレベルのシステム開発やカスタマイズは、Google Appsの導入支援を行うGoogleエンタプライズパートナーに相談することが多いだろう。

ここでは、そこまで大きなことではなく、Google Appsを利用する個人ユーザの業務範囲で仕事に役立つようなGoogle Apps Scriptを紹介していく予定だ。例えるなら、マイクロソフトのExcelで、さまざまなデータをVBAを使って分析・集計・レポートしてみるといったようなイメージだ。

Google Apps Scriptとは

Google Apps Scriptは、Webサイトなどで利用されているJavaScriptでGoogle Appsの各サービスを制御するためのスクリプトだ。Webサイトの場合と異なり、スクリプトはユーザーのブラウザではなくサーバサイドで実行される。そのためクライアントPCに負荷がかからないといった特徴もある。

Google Apps Sciptを使うと、GmailやGoogleドライブなどのサービスを制御して、さまざまなことを自動実行させたり、連携して処理を行わせたりといったことが可能になる。もちろんそれ以上のことも可能だが、前述のとおり、この連載ではメールの一括送信やカレンダーへの自動入力、表計算でのデータ操作といった例を紹介する。

簡単なスクリプトを作成してみよう

まずはGoogleドライブのスプレッドシート(表計算)を使って、定番のメッセージ「Hello World!」を表示させるスクリプトを例に、スクリプトの作成と実行の流れを簡単に見てみよう。ちなみに、Google Appsを利用していない場合でも、同じように操作できるので、ちょっと試してみようという場合でも大丈夫だ。

まず、Google Appsのドライブから「作成」→「スプレッドシート」を選択して、新しいシートを作成する。シートを作成せず、すぐにスクリプトを作成することも可能だが、まずは順を追って見ていこう。

スプレッドシートを作成する

メニューから「スクリプトエディタ」を選択

新しいスプレッドシートが表示されたら、メニューの「ツール」→「スクリプトエディタ」を選択する。起動時にメッセージが表示された場合は「閉じる」をクリックすればよい。すると、スクリプトを書くエディタが表示される。

チュートリアルウィンドウ

スクリプトエディタ画面

スクリプトには、最初から以下のように表示されている。

function myFunction() {

}

それでは、先ほどの「Hello World!」だ。ここでは、ブラウザにメッセージボックスを表示させる「Browser.msgBox」を使用して、以下のように記述する。スクリプト(関数)の名前「myFunction」は、わかりやすいように「HelloMessage」などに変更してもよいだろう。

function HelloMessage() {
    Browser.msgBox("Hello World!")
};

次に、作成したスクリプトを保存する。メニューの「ファイル」→「保存」で、わかりやすい名前を付けておこう。

スクリプトを実行してみよう

それでは、さっそく作成したスクリプトを実行してみよう。

まずは、スクリプトエディタから実行ボタンをクリックしてみよう。すると何もおこらない……ように見えるが、スプレッドシートに切り替えると、メッセージボックスが表示されていることがわかる。

メニューバーの実行ボタンをクリック

スプレッドシートに切り替えるとメッセージが表示

エディタはあくまで、スクリプトを編集する場所なので、ここからスクリプトを実行するのは実用的ではないだろう。

次に、スプレッドシートから実行してみよう。エディタを表示したのと同じメニュー項目から「ツール」→「スクリプトマネージャ」を選択する。

スクリプトマネージャには、先ほど作成したスクリプト(関数)の名前が表示されるので、クリックして選択し「実行」を押す。先ほどと同様にメッセージボックスが表示されただろう。

このスクリプマネージャからは、スクリプトの実行以外にも編集や新規作成ができる。動作自体はスクリプトエディタが表示されるという流れなので、後々編集する際には、こちらを選んでもよい。

スクリプトをより簡単に実行できるように

さてスクリプトの実行までできたが、いちいちスクリプトマネージャから実行するというのは、些細なことではあるものの面倒だ。ここでは、メニュー項目にスクリプト実行項目を追加する方法と、ボタン画像にスクリプトを割り当てる方法を紹介する。

まずは、メニューに追加してみよう。先ほどの、スクリプトのエディタ画面に戻り、以下のように追加する。

function HelloMessage() {
    Browser.msgBox("Hello World!")
};

function onOpen() {
    var sheet = SpreadsheetApp.getActiveSpreadsheet();
    var entries = [
        {
            name : "メッセージ表示",
            functionName : "HelloMessage"
        }
        ];
    sheet.addMenu("スクリプト", entries);
};

スクリプトを保存し、さらにスプレッドシートを一度閉じてから、再度開いてみよう。すると、メニューの右端に「スクリプト」メニューが表示されているはずだ。クリックするとメッセージ表示スクリプトの名前があり、これを選択すると、実行されるようになっている。

メニューの右端に項目が追加された

メニューからスクリプトを実行できる

これは、スプレッドシートを開いたときに(On Open)に自動的に実行されるスクリプトという仕組みを利用している。中身としては、メニューの子項目の名前とそれに対応させるスクリプト名の指定、そして親項目の名前指定と追加だ。

スクリプトが実行されてからメニューが追加されるため、環境によっては表示まで数秒かかってしまうこともあるが、基本的かつ有用なテクニックなので覚えておいて損はないだろう。

次にボタンに割り当ててみよう。こちらは簡単で、まず「挿入」→「図形描画」などを利用してボタン画像を用意する。ボタンを選択すると、右上にプルダウンメニューが表示され、ここから「スクリプトを割り当て」を選び実行するスクリプト名を入力すればよい。

ボタン画像を作成

「スクリプトを割り当て」を選択

まとめ

今回は、スプレッドシートを例に簡単なスクリプト作成し、作成したスクリプトの実行までの流れをまとめてみた。特に難しいことはない反面、メッセージを表示するだけではちょっと役立たない……と思われた人も多いと思う。

次回は毎日作成する日報をボタンに割り当てたスクリプトで、上司にメールで送信、自分宛にもBCCで送りたいなどといった典型的なシーンを想定し、役立つスクリプトを扱っていく予定だ。