earthpg:GAS専門のプログラミングスクール

仕事効率化!Google Apps Scriptによる自動化事例の徹底解説

GASの自動化って、どうやったらうまく使えるのかよくわからなくて…。自動化の事例とかないかな?
猫男
猫男
catman
catman
catmanに会えてラッキーだったな。今日はGASで実際に役立つ自動化事例をいくつか紹介するぞ。

GASでできる仕事の効率化

GAS(Google Apps Script)を使えば、さまざまな日常業務を自動化できます。

以下、いくつかの事例を通して詳しく解説します。

スプレッドシートデータの自動更新

たとえば、特定の時間にスプレッドシートが勝手に更新されたらいいなぁ。Excelで手作業するのは面倒で…。
猫男
猫男
catman
catman
スプレッドシートを自動更新するスクリプトを作ればいい。特定の時間に実行させられるさ。

function updateSpreadsheet() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sales');
  sheet.getRange('A1').setValue(new Date());
}

このスクリプトは、特定のスプレッドシートの’A1’セルを現在の日付で更新します。

SpreadsheetAppはスプレッドシート操作の主要クラスで、そのメソッドの一例getActiveSpreadsheet()で現在のスプレッドシートを取得します。

メールの自動送信

込み入った報告書を毎回メールで送るのって時間がかかりますよね…。
猫男
猫男
catman
catman
GASを使えば、報告書を作成して自動的にメールで送信できるようになる。その時間で猫じゃらしで遊べるぞ。

function sendEmail() {
  var recipient = "example@example.com";
  var subject = "自動報告書";
  var body = "こちらが最新の報告書です。スクリプトが自動生成しました。";
  GmailApp.sendEmail(recipient, subject, body);
}

このスクリプトは、GmailAppのsendEmail()メソッドでメールを送信します。宛先、件名、本文を指定するだけで送信可能です。

カレンダーのイベント自動登録

会議の予定を忘れないようにカレンダーにすぐ入れたいんですが、毎回手動で登録するのは大変です…。
猫男
猫男
catman
catman
会議の情報をすぐにカレンダーに登録できるスクリプトを見せてあげよう。

function addCalendarEvent() {
  var calendar = CalendarApp.getDefaultCalendar();
  calendar.createEvent('チームミーティング',
    new Date('2023-12-01T10:00:00'),
    new Date('2023-12-01T11:00:00'),
    {location: '会議室A'});
}

このスクリプトは、CalendarAppクラスのcreateEvent()メソッドを使用して、カレンダーにイベントを追加します。

練習問題

GASを使って、特定の条件(たとえば「価格が100以上の商品」)をスプレッドシートから抽出して、別のシートにコピーするスクリプトを書いてみてください。

解答・解説


function filterAndCopyData() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = ss.getSheetByName('Data');
  var targetSheet = ss.getSheetByName('FilteredData');
  var data = sourceSheet.getDataRange().getValues();
  
  var filteredData = data.filter(function(row) {
    return row[1] >= 100; // 2列目(価格)の値が100以上
  });
  
  targetSheet.clear(); // 既存の内容をクリア
  targetSheet.getRange(1, 1, filteredData.length, filteredData[0].length).setValues(filteredData);
}

このスクリプトは、SpreadsheetAppからスプレッドシートを操作します。

特定の条件(価格が100以上)のデータを抽出し、filterメソッドでフィルタリングして条件を満たすデータのみを抽出。

最終的に別のシートに書き込みます。

getRange()メソッドでデータ範囲を指定して、setValues()メソッドでデータを書き込みます。