非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Googleスプレッドシートを制御するGoogle Apps Scriptを導入する

      2018/05/05

Googleドライブの表計算ソフトであるスプレッドシートをスクリプトで制御するGoogle Apps Scriptを導入する方法です。

Google Apps Script単独でも使えますが、スプレッドシートを制御する上でも便利です。(もちろんGoogleドキュメントも制御できます。)

クラウド上で動くオフィスソフトではMicroSoftのOffice Mobileが競合ですが、こちらにはマクロが提供されていないので、ここに関してはGoogleが一歩リードしています。

JavaScriptベースとのことで、さっそく試してみました。

 

広告

まずは簡単なスクリプトを記述してみる

スプレットシートを開いて、メニュー「ツール」から「スクリプト エディタ」を選びます。

2

 

そうすると、マクロエディタが現れます。デフォルトで function myFunction() が記述されています。もちろん関数名は自由に変更できます。

3

 

今回は、お試しということで、簡単にメッセージボックスで Hello World と表示させるだけにしています。

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

 

Browser.msgBox は、VBAで言えば MsgBox、JavaScriptなら alert と同じようなものです。JavaScriptベースなんだから「alert」でいいじゃん、と思われるかもしれませんが、これはスプレットシート上に疑似的なメッセージボックスを出現させるものなので、alertとはちょっと違います。

書き終わったら保存しましょう。保存しないと実行できないみたいです。保存ボタンを押すとプロジェクト名を聞いてきますが、適当に入力してください。

4

 

次はイベントを発生させるボタンを作成

さて、今度はスプレットシート側です。マクロを起動させるためのボタンを作ります。「メニュー」-「図形描画」を選び・・・、

5

 

通常の図形描画と同じように描いていきます。今回はボタンらしく長方形を選びました。描いたら右上の「保存して閉じる」ボタンを押します。

6

 

で、出来上がった長方形。

7

 

今度は長方形の図形にスクリプトを割り当てます。

図形を選択すると右上に矢印が現れるので、それをクリックするとプルダウンメニューが現れます。その中から「スクリプトを割り当て」を選び、「どのスクリプトを割り当てますか?」と来るので、先ほど作った関数名を入力します。正直ここは選択式にしてほしいんですが、直接入力なんです。

8

 

準備はできたので実行・・・と思ったら

さあ、準備が済んだと思い、さっそく図形をクリックすると・・・、

7

 

初回だけ、認証が必要みたいです。まあサーバー上で稼働させるものだから仕方ないですね。「続行」を押しましょう。

9

 

次に以下の図のようなウィンドウが現れます。「許可」を押します。

a1

 

さあ、今度こそ実行だ!

ボタンを押すと以下のウィンドウが現れました。成功です。ちなみに2回目以降から認証手続きがないので、ボタンを押すとそのまま実行されます。

a2

 

サーバー上で動作させているだけに、速度は若干遅め。このスクリプトでどこまでできるか今後試していきたいと思います。しかし、MicroSoftは一歩で遅れていますね。Excel mobileでマクロが使えると最高なんですが、まあ、それをやっちゃうと製品版Officeが売れなくなっちゃうのでしょうかね。

次はセルの操作かな。乞うご期待。

広告

 - Google Apps Script, Google Dirve