仕事効率化!Google Apps Scriptによる自動化事例の徹底解説
GASの自動化って、どうやったらうまく使えるのかよくわからなくて…。自動化の事例とかないかな?

猫男

catman
catmanに会えてラッキーだったな。今日はGASで実際に役立つ自動化事例をいくつか紹介するぞ。
GASでできる仕事の効率化
GAS(Google Apps Script)を使えば、さまざまな日常業務を自動化できます。
以下、いくつかの事例を通して詳しく解説します。
スプレッドシートデータの自動更新
たとえば、特定の時間にスプレッドシートが勝手に更新されたらいいなぁ。Excelで手作業するのは面倒で…。

猫男

catman
スプレッドシートを自動更新するスクリプトを作ればいい。特定の時間に実行させられるさ。
function updateSpreadsheet() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sales');
sheet.getRange('A1').setValue(new Date());
}
このスクリプトは、特定のスプレッドシートの’A1’セルを現在の日付で更新します。
SpreadsheetAppはスプレッドシート操作の主要クラスで、そのメソッドの一例getActiveSpreadsheet()で現在のスプレッドシートを取得します。
メールの自動送信
込み入った報告書を毎回メールで送るのって時間がかかりますよね…。

猫男

catman
GASを使えば、報告書を作成して自動的にメールで送信できるようになる。その時間で猫じゃらしで遊べるぞ。
function sendEmail() {
var recipient = "example@example.com";
var subject = "自動報告書";
var body = "こちらが最新の報告書です。スクリプトが自動生成しました。";
GmailApp.sendEmail(recipient, subject, body);
}
このスクリプトは、GmailAppのsendEmail()メソッドでメールを送信します。宛先、件名、本文を指定するだけで送信可能です。
カレンダーのイベント自動登録
会議の予定を忘れないようにカレンダーにすぐ入れたいんですが、毎回手動で登録するのは大変です…。

猫男

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()メソッドでデータを書き込みます。