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スプレッドシートで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に挑戦してみてください!

【お知らせ】
現在、エンジニアルートではフリーエンジニアを中心とした、フリーランスの お仕事紹介、お悩み相談を承っております。

一対一のカウンセリングに基づき、スキルやキャリアプランなどのご要望をお伺いしピッタリの案件をご提案します。ご参画中のご相談・節税対策、適正な給与なのか知りたい、マージンを下げたいなど何でもサポートをいたします。

案件獲得までには早ければ1〜3日、平均的に2週間以内には複数案件から選べる状況になっています。将来的な独立の相談のみでも承っております。お気軽な気持ちでご登録ください。
フリーランスを考えてる方やお仕事をご要望、面接指導などをご希望の方は、下記バナーより新規登録をお待ちしております。非公開求人多数です。

よく読まれている記事

「技術について開発言語-ツール情報」でよく読まれている記事