業務効率化に役立つGoogle Apps Script(GAS)活用術:時間削減と自動化の実践ガイド 初心者でもすぐに使える操作手順

業務効率化に役立つGoogle Apps Script(GAS)活用術:時間削減と自動化の実践ガイド
(初心者でもすぐに使える操作手順)


導入

業務で重複して発生する手作業、時間がかかるデータ処理や定型的なメール送信など、人手に頼る作業は“コスト”になります。こうした作業を自動化することで、残業の削減やミスの防止、さらには業務のスループット向上が期待できます。
Google が提供する「Google Apps Script(GAS)」は、G Suite(現 Google Workspace)内のツールを連携し、簡単にスクリプトを書いて自動化できる JavaScript ベースのプラットフォームです。設定・開発もブラウザ内で完結し、実行はクラウド上で行われるため、PCのスペックに左右されません。

本記事では、これから GAS を始める方を想定し、実際の業務で活用できるサンプルを順を追って紹介します。すべてのサンプルは「Google Apps Script エディタ」で作成し、実行できますので、手順を踏めば初心者でも問題なく導入できます。


GASとは何か?

  • JavaScriptベース
    既にウェブ開発や Node.js で JavaScript を触った経験がある方は、コード構文に違和感はほぼありません。
  • クラウド実行
    スクリプトは Google のサーバーで動作します。実行権限(OAuth)を付与した後は、ローカル環境を気にせず何処でも再利用可能です。
  • Google Workspaceの API へアクセス
    Spreadsheet, Gmail, Calendar, Drive, Docs など、Google の多くのサービスと簡単に連携できます。
  • トリガーで自動実行
    時間主導型(例えば毎朝 9:00 に実行)やイベント主導型(メール受信時に自動実行)など、細かなスケジューリングが可能です。

1. Gmailの自動返信を実装する

定期的に受信する問い合わせメールには、定型文で自動返信し、返信漏れを防ぎます。

手順

  1. 新規プロジェクトを作成

    • Google Drive → 「新規」→ 「その他」→ 「Google Apps Script」を選択。
    • プロジェクト名は「AutoEmailResponder」とします。
  2. コードを書き込む

    function sendAutoReply() {
      const labelName = 'autoReply';   // 受信メールに付けるラベル
      const label = GmailApp.getUserLabelByName(labelName);
      if (!label) return;              // ラベルが無い場合は終了
    
      const threads = label.getThreads();
      for (let i = 0; i < threads.length; i++) {
        const thread = threads[i];
        const messages = thread.getMessages();
        const lastMessage = messages[messages.length - 1];
    
        // 1件目の返信だけ送信
        if (!lastMessage.isDraft() && !lastMessage.isUnread()) continue;
    
        const replyMsg = Utilities.formatString(
          '件名: Re: %s\n\nご連絡ありがとうございます。\n\n自動返信です。\n\n敬具',
          lastMessage.getSubject()
        );
        thread.reply(replyMsg);
    
        // 返信済みフラグとして、別ラベルを付ける
        thread.addLabel(GmailApp.createLabel('autoReplyDone'));
        thread.removeLabel(label);
      }
    }
    
  3. トリガーを設定

    • 「時計アイコン」→「トリガーを追加」→
      • 関数:sendAutoReply
      • イベントソース:時間主導型
      • タイプ:分割ごと(5分)
        これで毎5分に受信メールをチェックし、未返信メールに自動返信が送られます。
  4. テスト

    • 任意のメールアドレスにメールを送り、ラベルを付けて autoReply が動作するか確認。

2. Google Drive のファイル自動整理

プロジェクトごとにフォルダを作り、一定条件でファイルを移動・命名するスクリプトです。

手順

  1. スクリプトファイルを作成

    • Google Drive 上で「新規」→「その他」→「Google Apps Script」。
  2. コード

    function organizeDrive() {
      const rootFolder = DriveApp.getRootFolder();   // ルートフォルダ
      const projectLabel = 'ProjectX';               // フォルダ名やラベルを指定
    
      // フォルダ一覧取得
      const folders = rootFolder.getFoldersByName(projectLabel);
      while (folders.hasNext()) {
        const folder = folders.next();
    
        // 1週間以上前に作られたファイルを移動
        const files = folder.getFiles();
        while (files.hasNext()) {
          const file = files.next();
          const date = file.getDateCreated();
          const oneWeekAgo = new Date();
          oneWeekAgo.setDate(oneWeekAgo.getDate() - 7);
    
          if (date < oneWeekAgo) {
            // 新フォルダへ移動
            const targetFolder = DriveApp.createFolder('Archive');
            file.moveTo(targetFolder);
          }
        }
      }
    }
    
  3. トリガー

    • 月に一度、あるいは1日1回など定期的に実行。
  4. テスト

    • ルートに「ProjectX」フォルダと数ファイルを作り、スクリプト実行で Archive フォルダへ移動されるか確認。

3. Google スプレッドシートのデータ集計自動化

複数のシートから必要データを集計し、ダッシュボードとして表示する。

手順

  1. スプレッドシートを作成

    • 「SalesData」シートに日付、商品、売上金額の列。
    • 「Dashboard」シートに集計結果を表示。
  2. Apps Script コード

    function updateDashboard() {
      const ss = SpreadsheetApp.getActiveSpreadsheet();
      const salesSheet = ss.getSheetByName('SalesData');
      const dashSheet = ss.getSheetByName('Dashboard');
    
      const data = salesSheet.getDataRange().getValues(); // 先頭行を含む
      const header = data.shift();  // 列名を取り除く
    
      // 商品別合計を計算
      const totals = {};
      data.forEach(row => {
        const product = row[1];
        const amount = Number(row[2]);
        if (!totals[product]) totals[product] = 0;
        totals[product] += amount;
      });
    
      // ダッシュボードに書き込み
      dashSheet.clear(); 
      dashSheet.appendRow(['商品', '売上金額(¥)']);
      for (const [product, total] of Object.entries(totals)) {
        dashSheet.appendRow([product, total]);
      }
    }
    
  3. トリガー

    • 毎日 9:00 に実行(タイムトリガー)
    • またはデータが追加されたら自動実行(編集トリガー)
  4. 確認

    • ダッシュボードシートで値が正しく更新されるか確認。

4. Google Calendar へ定期イベントを自動作成

社内ミーティングやクライアント面談など、定期的に繰り返す予定を自動作成。

手順

  1. スクリプトエディタで以下を記述。

    function createRecurringEvent() {
      const calendar = CalendarApp.getDefaultCalendar();
      const eventTitle = '週次プロジェクト会議';
      const startTime = new Date('2026-04-04T10:00:00+09:00'); // 例: 4/4の10:00
      const endTime = new Date('2026-04-04T11:00:00+09:00');   // 1時間
    
      const recurrence = CalendarApp.newRecurrence()
        .addWeeklyRule()
        .times(20); // 20回繰り返し
    
      calendar.createEventSeries(eventTitle, startTime, endTime, recurrence);
    }
    
  2. 権限付与

    • 初回実行時にカレンダーへのアクセス権限を認可。
  3. 結果確認

    • カレンダーに「週次プロジェクト会議」が20回連続で追加されていることを確認。

5. GAS の基本構文と便利関数

  • 変数宣言
    let a = 10;          // 可変
    const PI = 3.14159;  // 不変
    
  • 配列
    const arr = [1, 2, 3];
    arr.push(4);         // 末尾追加
    
  • オブジェクト
    const person = {name: 'Taro', age: 30};
    
  • 関数
    function add(a, b) {
      return a + b;
    }
    
  • 非同期(簡易)
    GAS は同期的に走るので、複雑な非同期は不要。

Google の API ラッパー

  • GmailApp, SpreadsheetApp, DriveApp, CalendarApp
    それぞれの API を使う際のメソッドは公式リファレンスに豊富な例があります。

6. 開発環境とデバッグのコツ

  1. エディタ上のコンソール
    Logger.log() でログを出力し、View → Logs から確認。
  2. デバッグ
    • スクリプトエディタの ▶︎ アイコン ▶︎ デバッグ を選択してステップ実行。
  3. エラー処理
    try {
      // 何らかの処理
    } catch (e) {
      Logger.log('エラー: ' + e.message);
    }
    
  4. スプレッドシートのセルにデバッグ用メッセージを書き込む
    sheet.getRange('A1').setValue('処理完了');
    
  5. バージョン管理
    • Ctrl + Sファイルバージョン管理を使用. 変更前後を保存しておくと、バグが生じた時に簡単にロールバックできます。

7. 成果を共有し、スクリプトを再利用する方法

  • 共有プロジェクト設定
    スクリプトエディタの「公開」→「ウェブアプリケーションとして導入」を選び、アクセス権を指定。
  • パッケージ化
    • 1つのスクリプトをライブラリとして登録し、他のプロジェクトで ScriptApp.getProject() で読み込むことも可能です。
  • 定期メンテナンス
    • トリガーが失効していないか、権限が変更されていないかを定期的に確認。

8. 実務での注意点(セキュリティと運用)

  1. アクセス権限の最小化
    必要なサービスだけ権限を付与し、不要な API へのアクセスは避ける。
  2. 外部に公開しない
    スクリプトに機密情報(API キーなど)が入る場合は、Google Secrets Manager などを使用。
  3. 実行回数の制限
    Google Workspace の無料版はトリガー1日の実行回数に上限があります。大量データの処理は別途バッチ化。
  4. エラーハンドリング
    無視している途中で失敗すると、後続の処理も停止。 try/catch で安全に。

まとめ

  • Google Apps Script は Google Workspace の各ツールをつなげる強力な自動化ツール。
  • 初心者でも簡単に始められるよう、サンプルコードを実際の業務に合わせて紹介しました。
  • 実行トリガーの設定、権限付与、デバッグ手法を押さえることで、初めての自動化から産業レベルの自動運用までスムーズに移行できます。

ぜひ今回のサンプルスクリプトをベースに、御社独自の業務フローに合わせてカスタマイズし、時間を有効活用してください。
業務効率化の第一歩として、GAS で自動化を始めてみましょう。

コメント

タイトルとURLをコピーしました