【GAS】Google Apps Scriptを活用したデータ連携の基本

Google Apps Script(GAS)は、Googleの各種サービスを連携させ、自動化するための強力なツールです。この記事では、Google Apps Scriptを活用してデータ連携を行う基本的な方法について、具体的な例を交えながら解説します。

 

moun45.hatenablog.com

 

Google Apps Scriptとは?

Google Apps Script(GAS)は、JavaScriptベースのスクリプト言語で、Googleのサービス(Google Sheets、Google DriveGmailGoogle Calendarなど)を自動化・拡張するために使用されます。GASを使うことで、異なるGoogleサービス間のデータ連携を容易に行うことができます。

スクリプトエディタの起動方法

まずは、Google Apps Scriptのスクリプトエディタを起動しましょう。

  1. Google Driveを開くGoogleアカウントでGoogle Driveにログインします。
  2. スクリプトエディタを起動:左上の「新規作成」ボタンから「その他」→「Google Apps Script」を選択します。

Google SheetsとGoogle Driveの連携

Google SheetsとGoogle Driveのデータ連携は、GASを使って簡単に行えます。以下のスクリプトは、Google Drive内の特定のフォルダにあるファイル名をGoogle Sheetsに一覧として出力する方法です。

function listFilesInFolder() {
var folderId = 'your-folder-id'; // 対象フォルダのIDを指定
var folder = DriveApp.getFolderById(folderId);
var files = folder.getFiles();
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.clear(); // シートの既存データをクリア
sheet.appendRow(['ファイル名', 'ファイルID']); // ヘッダーを追加

while (files.hasNext()) {
var file = files.next();
sheet.appendRow([file.getName(), file.getId()]);
}
Logger.log('フォルダ内のファイル一覧を出力しました。');
}

このスクリプトを実行すると、指定したフォルダ内のすべてのファイル名とファイルIDがGoogle Sheetsに出力されます。

Google SheetsとGmailの連携

Google SheetsとGmailを連携させることで、スプレッドシートのデータをもとにメールを自動送信することができます。以下のスクリプトは、Google Sheetsに記載されたメールアドレスに対して、指定されたメッセージを送信する方法です。

function sendEmailsFromSheet() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();

for (var i = 1; i < data.length; i++) { // 1行目はヘッダーと仮定
var emailAddress = data[i][0]; // メールアドレスが1列目にあると仮定
var subject = data[i][1]; // 件名が2列目にあると仮定
var message = data[i][2]; // メッセージが3列目にあると仮定

MailApp.sendEmail(emailAddress, subject, message);
}
Logger.log('スプレッドシートのデータをもとにメールを送信しました。');
}

このスクリプトを実行すると、スプレッドシートの各行に記載されたメールアドレスに対して、指定の件名とメッセージが送信されます。

Google SheetsとGoogle Calendarの連携

Google SheetsのデータをもとにGoogle Calendarにイベントを追加することもできます。以下のスクリプトは、Google Sheetsのデータを読み取り、それに基づいてGoogle Calendarにイベントを追加する方法です。

function createEventsFromSheet() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
var calendar = CalendarApp.getDefaultCalendar();

for (var i = 1; i < data.length; i++) { // 1行目はヘッダーと仮定
var title = data[i][0]; // タイトルが1列目にあると仮定
var startTime = new Date(data[i][1]); // 開始時間が2列目にあると仮定
var endTime = new Date(data[i][2]); // 終了時間が3列目にあると仮定
var description = data[i][3]; // 説明が4列目にあると仮定

calendar.createEvent(title, startTime, endTime, {description: description});
}
Logger.log('スプレッドシートのデータをもとにイベントを追加しました。');
}

このスクリプトを実行すると、スプレッドシートの各行に記載されたイベント情報をもとにGoogle Calendarにイベントが追加されます。

データ連携の自動化

データ連携を定期的に自動化するためには、トリガーを設定します。以下の手順でトリガーを設定します。

  1. トリガーの設定
    • スクリプトエディタの左側メニューから「時計」アイコン(「トリガー」)をクリックします。
    • 「トリガーを追加」ボタンをクリックします。
    • 「関数を選択」で実行したい関数を選び、「イベントの種類を選択」で「時間主導型」を選びます。
    • 送信の頻度(毎日、毎週、毎月など)を設定し、「保存」をクリックします。

これで、指定した頻度でスクリプトが自動的に実行され、データ連携が自動化されます。

まとめ

Google Apps Scriptを活用することで、Googleの各種サービス間でのデータ連携を簡単に行うことができます。スクリプトエディタを使ってスクリプトを作成し、Google Sheets、Google DriveGmailGoogle Calendarなどのサービスを連携させることで、効率的なデータ管理が可能になります。トリガーを設定して自動化することで、さらに便利で効率的な業務運営が実現します。

参考リンク

このガイドを参考にして、Google Apps Scriptを使ったデータ連携を始めてみてください。業務の効率化や自動化が大幅に進みます。

 

moun45.hatenablog.com

 

最後によろしければ下記ボタンをクリックお願いします!