フリーランスエンジニア向けIT系求人・仕事・案件情報サイト
更新日

Google Apps Scriptをスプレッドシートに活用する方法

GoogleスプレッドシートでGASを使う準備

GoogleスプレッドシートなどGoogleの一部のサービスでは、Google Apps Script (以下、GAS )を利用して、処理の自動化を行うことができます。
以下の手順により、スプレッドシート上でGASを使える準備ができます。サンプルコードを使いながら説明しています。

  1. Googleドライブから「Googleスプレッドシート」を選択
  2. スクリプトエディタを開く
    Googleスプレッドシートの「拡張機能」タブから「Apps Script」をクリックし、スクリプトエディタを開く
  3. コードを入力
    プロジェクト名を「メール送信テスト」、ファイル名を「sendmail」に変更し、下記のコードを入力。

以下、サンプルコードです。

function sendMail() {
  const recipient = '●●●●●@gmail.com'  //送信先のメールアドレス
  const subject = 'メール送信テスト';    //メール件名
  const body = 'テストメール';             //メール本文
  GmailApp.sendEmail(recipient, subject, body);  //メールの送信
}

Gmailからメールを送信する・・・GmailApp.sendEmail()

sendMailのパラメータの説明
recipient:メールが送信されるアドレス、複数ある場合はカンマで区切る
subject:メールの件名(最大250文字)
body:メールの本文

スクリプトエディタの説明

ここで、スクリプトエディタでよく触る箇所の説明をします。

Google Apps Scriptのスクリプトエディタ画面

プロジェクト名はデフォルトでは「無題のプロジェクト」となっていますが、クリックすると変更可能です。作成するプログラムの概要がわかるような名前に変更しましょう。

サイドバーはプロジェクトの情報、実行履歴などを確認できます。時計マークのボタンをクリックすると、スクリプトの時間指定ができます。主にスクリプトが完成した後に確認することが多いです。

エディットバーは「戻る」「進む」「保存」などのファイル編集の機能や、スクリプトの実行ボタンなど、スクリプト作成時によく使います。

スクリプトエディタは実際にコードを書く場所です。

GoogleスプレッドシートでGASを実行する

メニューの「実行」→「sendMail」→クリック

sendMail以外にも関数を複数作ってある場合は、それらが表示されます。

「実行」アイコンでも実行できます。

初めて実行する時に1回だけ、承認と許可を求められます。GASのプロジェクトでは、Googleアカウントのデータを操作するため、Googleで利用している一部のデータへのアクセス権が必要となるからです。

「権限を確認」をクリックします。

アカウント名をクリックします。

下部にある「詳細」をクリックします。

画面内に詳細が表示されるので、下部にある「無題のプロジェクト(安全ではないページ)に移動」を選択します。

「許可」をクリックします。

上記手順により、Google で利用している一部のデータへのアクセス権を許可することができます。

Googleスプレッドシート上に配置するボタンからGASを実行する

メニューから「挿入」→「図形描画」をクリックします。ここでは角丸四角形をボタンとして使ってみます。他の形の図形でも大丈夫です。

「図形」→「角丸四角形」をクリックします。

マウスのドラッグで、大きさを決めて下さい。大きさは、後でも変更できるので、適当で大丈夫です。

「保存して終了」をクリックします。

シートに図形が追加されるので図形をクリックします。

図形の右上の「・」が縦に3つ並んでいるアイコンをクリックします。

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

スクリプト名を入力します。ここでは「sendMail」とします。作成したボタンをクリックしてみます。指定したメールアドレスにメールが届いているのを確認しましょう。

Googleスプレッドシートの値を取得する

ここではスプレッドシートのセルに入力されている値を取得する方法をご紹介します。

サンプルコード

アクティブなスプレッドシートからセルの範囲を指定し、行番号・列番号を指定してセルの値を取得します。アクティブというのはwebブラウザで開いているシートのことだと理解すれば大丈夫です。

function getCellSample() { 
  var sheet=SpreadsheetApp.getActiveSheet(); //アクティブなシート取得
  var range=sheet.getRange("A1:A5"); //getRange()で操作するセルの範囲を指定
  var cell=range.getCell(1,1).getValue(); // getRange()で指定したA1を起点に、getCellメソッドで行番号と列番号を指定してセルの値を取得
  console.log(cell); //コンソールへセルの値をログとして出力する
}

サンプルコードで使っている関数をご紹介します。

アクティブなシートを取得する・・・SpreadsheetApp.getActiveSheet()
シートの中で操作するセルの範囲を指定・・・getRange()
指定したセルを取得する・・・getCell()
指定したセルの値を取得する・・getValue()

getActiveSheet()ではアクティブなシートを取得していますが、getSheetByName(“シート1”)のようにして、シート名を指定することも可能です。

getRange()のサンプルコードは以下です。getRange()には範囲を指定する方法がいくつかあります。

function myRangeSample() {
  var sheet=SpreadsheetApp.getActiveSheet(); //アクティブなシート取得
  var range = sheet.getRange("A1");//セルA1を取得
  var range = sheet.getRange(1, 1);//セルA1を取得
  var range = sheet.getRange(1, 1, 3);//セルA1:A3を取得
  var range = sheet.getRange(1, 1, 3, 2);セルA1:B3を取得
}

Googleスプレッドシートの値を設定する

セルの値を変更するには、setValue()を使います。

サンプルコードは以下です。A1セルをgetRange()で取得し、setValue()で「変更後の値」にセルの内容を変更します。

function setCellSample() {
  var sheet=SpreadsheetApp.getActiveSheet(); //アクティブなシート取得
  var range = sheet.getRange("A1").setValue("変更後の値");
}

サンプルコードで使っている関数をご紹介します。

アクティブなシートを取得する・・・SpreadsheetApp.getActiveSheet()
シートの中で操作するセルの範囲を指定・・・getRange()
セルに値を設定する・・・setValue()

まとめ

今回の記事では、スプレッドシートからGASを使う手順やボタンを押すことをトリガーにスクリプトを実行する方法をご紹介しました。
また、スプレッドシートの基本的な操作方法として、セルに入力されている値の取得と、セルへの値の設定についてもご紹介しました。
GASを有効に活用することで、スプレッドシートと連動させて手作業で行ってきたことを自動化できます。
是非この記事の内容を活用し、GASに挑戦してみてください!

\ ログインしなくても検討機能が使える♪ /
新着のエンジニア案件を見てみる