• ログインログイン
  • 新規登録新規登録

MENU

Google Apps Scriptでプログラミングを学ぶ 第2回

連載Google Apps Scriptでプログラミングを学ぶ

Google Apps Scriptは、開発環境の設定がなくてもすぐにコーディングができる優れもののサービスです。初心者でもすぐに取り掛かれる事例を用いながら、実践に耐えうるレベルまで徐々にステップアップして学習していきます。

この記事は、株式会社らしく様からの寄稿記事となります。前回までのプログラミング学習コラムに続き2回目の勉強内容です。今回はGoogle Apps Scriptの概要を知るための内容となっています。

セクション1 Google Apps や GASとは

Google Appsとは 

“グーグルアップス”と発音します。Appsとは、Applicationsの短縮で、”アプリたち”という意味です。

独自ドメイン(例;www.example.comなど)でGmailをはじめとするいくつかのGoogleのウェブアプリケーションを使えるようにする企業向けのサービスです。従来のマイクロソフトオフィスなどのオフィススイートに似た機能を持ち、メール(Gmail)、Googleドライブ(Googleスプレッドシートやドキュメント)、Googleカレンダーといったウェブアプリケーションが含まれす。

従来のオフィススィートでは、ファイルはパソコンに保存されますが、Google Appsでは、Googleのデータセンターに保存されます。パソコンをはじめスマートフォンからでもインターネット経由でアクセスすることで、どこからでもアクセスできます。また、同じファイルを複数の人で同時に編集できるなどのクラウドサービスならではの使い方も特徴的です。

個人で利用する場合は、Googleアカウントを取得することで、Gmail、Googleスプレッドシートやドキュメント、Googleカレンダーなどを利用できます。

今回は個人利用を想定し、Googleアカウントを取得する前提で説明を進めます。

参考までに、Google Appsの提供されているサービスの機能を表にまとめました。

Google Apps Scriptとは

Google Apps Script(通称GAS)とは、JavaScriptで記述する、クラウド上で動作するスクリプト言語と開発環境です。GASを利用することで、GoogleスプレッドシートやGmailの自動化や機能を拡張できます。マイクロソフトオフィスに付随しいているVBA(Visual Basic for Application)と同様な役割ですね。また、ブラウザがあれば開発でき、ソースコードの編集や実行、デバッグも全てGoogleのサーバー上で行うことができます。

Googleアカウントの取得

まだ、Googleアカウント(Gmailアドレス)をお持ちでない方は、Googleアカウントを取得しましょう。

Googleアカウントの取得の手順はこちらを参照してください。

※Androidのスマートフォンをお持ちの方は、Googleアカウントが取得されていると思われます。スマートフォンの設定から、Googleアカウントを確認してみてください。

Googleドライブとは

スプレッドシート、文書、プレゼンテーションなどのGoogleウェブアプリケーションと、クラウドストレジ(インターネット上のフォルダ)が一体となったウェブアプリケーションです。乱暴に言うと、Dropbox(ドロップボックス)とマイクロソフトオフィスのいいとこどり、という感じです。Googleドライブの作成から、Googleスプレッドシートや文書を作成します。それらは、フォルダを作成して、グループ分けして管理することができます。

セクション2 GoogeスプレッドシートとGASを使ってみる

このセクションでは、第1章で紙とペンで書いてみた「すごろくプログラム」を、GoogeスプレッドシートとGASを使って動かしてみたいと思います。

まず、Googleアカウントでログインします。

Googleドライブを開き、左の「作成」ボタン→「スプレッドシート」を選択して、新規Googleスプレッドシートを作成します。

Googleスプレッドシートのメニューをクリックし、「ツール」→「スクリプトエディタ…」をクリックします。

GASエディタが開きます。右側の大きい領域にプログラムを書いていくことになります。(具体的には、function myFunction()に続く{ }の中に、書いていきます。)

さて、練習として、第1章で紙に書いてみたロジックを、GASで書いてみて、実行してみましょう。

プログラムはこちらです。

/*
* スゴロクのプログラム
* 止まったマスの色を変え、マス目が30を超えたら、
* サイコロを振った数を記録して終了
* ここでは、理解しなくていいです。
* 「こんな感じなのね。」というくらいに、
* 眺めていただくだけでよいです。
*/

// スプレッドシートをGASで扱えるようにしています。

function myFunction() {
 var sheet = SpreadsheetApp.getActiveSheet();
 var position = 0;
 var count = 0;

// 「position(位置)」が30を超えるまで、{ }の間の処理を繰り返します。

 while (position <= 30) {
 var number = shake_dice();
 position = position + number;

// セルの色と赤にしています。

 sheet.getRange("A" + position).setBackground("#ff0000");
 count++;
 }

// セルB1に計算結果を書き込んでいます。

 sheet.getRange("B1").setValue("サイコロを振った数 = " + count);
}

/*
* コンピュータ上でサイコロを振る
*/

// コンピュータにサイコロを振らせています。 

function shake_dice() {
 var result = Math.ceil(Math.random() *6/10 * 10);
 return result;
}

プログラム内のコメント

プログラム内に日本語で説明を書いているセクションがあります。コメントと言い、処理に関係しない文章を書くことができます。「コメントだよ」とGASに知らせる記号・方法は、2つあります。

書き終わったら、赤枠で示した「フロッピーディスク」ボタンをクリックしてGASを保存します。
次に、赤枠で示した「再生」ボタンをクリックして実行します。このGASでは、別タブのスプレッドシートにGASの実行結果が書かれます。

セクション3 オブジェクトの概念

Googleスプレッドシートやシートという言葉が、GASでは、何という単語になるのかを説明します。

皆さんは、ふだんGoogleスプレッドシートを使うとき、スプレッドシート、シート、範囲、セルなどの言葉でGoogleスプレッドシートの対象を認識して使っていると思います。プログラムでGoogleスプレッドシート(もしくはExcel)を扱う場合も、それらの”モノ”をプログラムの中で認識して、アクセスします。”モノ”の種類を一覧で示すと、以下のようになります。

これらの”モノ”を総称してオブジェクトといいます。オブジェクトは、データと命令(メソッド)を持っています。では、プログラムでのオブジェクトの操作のイメージを、いくつか例をあげて見てみましょう。ここでは、なんとなくイメージをつかむことを目的にしています。具体的には、3章以降で学んでいきます。

プログラムの中でのセル、レンジの数え方

プログラムの中でセル、レンジを示すには、2つの表現方法があります。

A1記法

Googleスプレッドシートをブラウザで表示させた際に、列はアルファベット、行は数字で示されます。この指定方法で、レンジやセルを指定する方法です。

数字記法

○行目の○列目のセルと、数字でセルを指定する方法です。このコラムでは、ほとんどの場合で、直観的にわかりやすいA1記法を用いて説明します。

このコラムでは、ほとんどの場合で、直観的にわかりやすいA1記法を用いて説明します。

プログラムの中でのオブジェクトの表記方法

var range = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("A2:B4");
range.clear();

ピリオド(.)は「の」か「を」を意味すると思ってください。これは、以下の2つの文章になります。

  1. SpreadsheetAppというクラスの(SpreadsheetApp.)、現在開いているスプレッドシートの(getActiveSpreadsheet.)、現在開いているスプレッドシートの(getActiveSheet.)、A2~B4のレンジを(getRange(“A2:B4”).)、rangeというオブジェクトに設定する。
  2. rangeをクリアする。

また、上記の文章は、以下のように分割して書いても同じ意味になります。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange("A2:B4");
range.clear();

これは、以下の4つの文章になります。

  1. SpreadsheetAppというクラスの(SpreadsheetApp.)、現在開いているスプレッドシートを(getActiveSpreadsheet.)、ssというオブジェクトに設定する。
  2. ssオブジェクトの現在開いているシートを(getActiveSheet.)、sheetというオブジェクトに設定する。
  3. sheetオブジェクトの、A2~B4のレンジを(getRange(“A2:B4”).)、rangeというオブジェクトに設定する。
  4. rangeオブジェクトをクリアする。

クラス、オブジェクト、メソッド

たいやきを例にとり、クラス、オブジェクト、メソッドの概念を説明してみたいと思います。

たいやきは、小麦粉や小豆を原料にして、たいやきの型に入れて焼かれ、たいやきとなります。たいやきには重さや色があり、測定可能です。砂糖をくわえれば、より甘くなります。

GASの世界では、以下のとおりです。先ほどの例で出て来た、SpreadsheetAppというものがクラスと呼ばれるもので、定義書や設計書です。このクラスをもとに、GASの世界もしくはコンピュータの世界の中に作りだされたものがオブジェクトです。メモリやハードディスク内に領域が確保されるという感じです。その状態を測定したり、変化させる命令が、メソッドです。

プログラミングの説明で、このクラス、オブジェクト、メソッドが著者も読者の皆さんも苦労するところです。
理解できないか方は、すぐに理解できないからと焦らなくてよいです。こつこつ、プログラミングを学んでいく過程で、いつか「そういうことだったのか!」と理解できるときがきます。また、インターネット上にいくつも解説が存在しますので、いくつか読み比べて理解を深めることも効果的です。

今回は以上となります。次回からは、GASの基本文法を学んでいきます。

株式会社らしくのインターン応募はこちら

完全無料!

1で登録完了!

エンジニアの仕事・年収や選考ノウハウ記事が読めるほか、
会員にはプログラミング講習やES・面接対策などリアルな無料サポートも充実。
ここだけの求人情報も多数。

今すぐ新規会員登録
Page Top