← Web制作 へ戻る
第1回

Google Apps Script 基礎

GASの概要 できること一覧 スクリプトエディタ getValue / setValue getRange活用 トリガー設定 Gmail自動送信

GASとは

Google Apps Script(GAS)はGoogleが提供するJavaScriptベースのスクリプト言語。スプレッドシート・Gmail・カレンダー・ドライブなどのGoogleサービスを自動化・連携できます。

スプレッドシート自動化

データの集計・転記・フォーマット変換を自動実行。毎朝9時に自動集計するなど

Gmail自動送信

条件に応じてメールを自動送信。フォーム送信時の自動返信メールなど

Googleフォーム連携

フォーム回答をスプレッドシートに自動記録・集計・通知

Webスクレイピング

URLFetchAppで外部サイトのデータを取得してスプレッドシートに記録

カレンダー自動登録

スプレッドシートの予定をGoogleカレンダーに一括登録

チャット通知

Slack・LINE・Teamsへのwebhook通知を自動送信

Point

GASは完全無料・サーバー不要

GASはGoogleのサーバー上で実行されるため、自前のサーバーが不要。Googleアカウントがあれば無料で使える。1日あたりの実行時間は90分(無料プラン)。

スクリプトエディタの使い方

操作手順
スクリプトエディタを開くスプレッドシートの「拡張機能」→「Apps Script」
関数を実行する関数名を選択して▶(実行)ボタンをクリック
ログを確認するconsole.log() で出力 → 「表示」→「ログ」
保存するCmd+S(Mac)/ Ctrl+S(Win)
// 最初のGASコード:ログ出力
function myFirstScript() {
  console.log('Hello, GAS!');
  SpreadsheetApp.getUi().alert('スクリプトが実行されました!');
}

スプレッドシートの操作

GASでスプレッドシートを操作するには SpreadsheetApp クラスを使います。getRangegetValuesetValue が基本の3メソッドです。

function spreadsheetBasics() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getActiveSheet();

  // A1セルの値を取得
  const value = sheet.getRange('A1').getValue();
  console.log('A1の値: ' + value);

  // B1セルに値を書き込む
  sheet.getRange('B1').setValue('GASから書き込みました');

  // A1:C5の範囲を2次元配列で取得
  const data = sheet.getRange('A1:C5').getValues();
  data.forEach(row => console.log(row));
}
メソッド説明
getRange('A1')A1セルを参照するRangeオブジェクトを返す
getValue()単一セルの値を取得(文字列・数値・Date)
setValue(value)単一セルに値を書き込む
getValues()範囲の値を2次元配列で取得
setValues(array)範囲に2次元配列を一括書き込み
getLastRow()データが入力されている最終行番号を返す

トリガーの設定とGmail自動送信

function sendDailyReport() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const count = sheet.getLastRow() - 1; // ヘッダー行を除く

  const body = `
本日のレポート
=============
登録件数: ${count} 件
集計日時: ${new Date().toLocaleString('ja-JP')}
  `;

  MailApp.sendEmail({
    to: '[email protected]',
    subject: '【自動送信】本日のレポート',
    body: body
  });
  console.log('メール送信完了');
}
設定方法手順
エディタからの設定左メニュー「トリガー」→「トリガーを追加」
イベントのソース「時間主導型」を選択
時間の種類毎日・毎時・毎週などから選択
時刻指定例:「毎日 午前9時〜10時」に設定
注意

メール送信は1日500通まで(無料プラン)

GASのMailApp.sendEmailは無料アカウントで1日500通の上限がある。大量メール送信にはGmail APIやSendGridなどの外部サービスとの連携を検討しよう。

第1回まとめ
  • GASはJavaScriptベース。Googleサービスを無料・サーバーなしで自動化できる
  • スクリプトエディタはスプレッドシートの「拡張機能」→「Apps Script」から起動
  • getRange・getValue・setValueが基本の3メソッド
  • getValuesで範囲を2次元配列として取得してforEachで処理できる
  • MailApp.sendEmailでGmailから自動メールを送信できる
  • トリガーで「毎日9時に実行」などの定期自動実行が設定できる
第2回

Power Automate Desktop 基礎

PADとRPA GASとの違い 基本アクション ブラウザ操作 Webスクレイピング If文・For each 変数の活用

PADとは

Power Automate Desktop(PAD)はMicrosoftが提供するWindowsデスクトップ向けのRPA(ロボティック・プロセス・オートメーション)ツール。Windows 11では標準搭載されており、プログラムを書かずにGUI操作で自動化フローを作成できます。

比較項目GASPAD
動作環境Googleサーバー上(クラウド)Windowsデスクトップ(ローカル)
操作対象Googleサービス(スプレッドシート・Gmail等)デスクトップアプリ・ブラウザ・Excel等
プログラミングJavaScript記述が必要ノーコード・GUI操作で作成
OSブラウザさえあればどのOSでも可Windows限定
費用無料(Googleアカウントのみ)Windows 11は無料。一部機能は有料
Point

「Excelの手作業」こそPADの得意分野

毎日手動でExcelにコピペ・集計・ファイル名変更しているような作業がPADの最も得意な分野。Googleを使わない環境・Excelベースの業務自動化にはPADが有効。

フローの作成と基本アクション

ステップ操作
① PADを起動スタートメニューから「Power Automate」を起動
② 新規フロー作成「新しいフロー」をクリック→フロー名を入力
③ アクションを追加左パネルからアクションをキャンバスにドラッグ
④ アクションを設定アクションをダブルクリックしてパラメーターを設定
⑤ 実行・デバッグ▶(実行)またはステップ実行でフローを確認

Webブラウザーを起動

指定URLをChrome/Edge/Firefoxで開く。ブラウザオブジェクトを変数に格納する

Webページにテキストを入力

テキストボックス・検索フォームなどに文字を入力する

待機

ページ読み込み・要素の表示を待つ。秒数指定または要素の出現まで待機

Webスクレイピング

ステップ操作内容
① ブラウザで対象ページを開く「Webブラウザーを起動」で対象URLを開いておく
② アクションを配置「ブラウザー自動化 → Webデータ抽出」を追加
③ データの選択ライブWebヘルパーで抽出したい要素をクリック
④ 変数に格納抽出されたデータが「DataTable変数」として格納される
⑤ Excelに書き込む「Excelワークシートに書き込む」でDataTableを保存
注意

スクレイピングは利用規約を必ず確認する

Webサイトによってはスクレイピングを禁止している場合がある。robots.txtや利用規約を確認し、許可されている範囲内で行うこと。特に商用利用や大量アクセスには注意が必要。

条件分岐・ループ・変数の活用

アクション説明
If条件が真の場合に実行するブロックを定義
Else / Else ifIfが偽の場合、または複数条件の分岐を追加
For eachリストやDataTableの各要素を繰り返し処理
変数を設定%FileName% のような変数を定義・参照
Tip

変数名は日本語でもOK

PADの変数名は日本語を使える(例:%顧客名%)。チームで共有するフローでは日本語変数名にすると読みやすくなる。ただし半角スペース・記号は使えない。

第2回まとめ
  • PADはWindowsデスクトップのGUI操作を自動化するRPAツール。ノーコードで作成できる
  • GASはクラウド・Googleサービス向け、PADはローカル・Windows・Excel向け
  • フローはアクションをドラッグ&ドロップで並べるだけで作成できる
  • 「Webページからデータを抽出」でWebスクレイピングが実現できる
  • スクレイピング前は必ず対象サイトの利用規約とrobots.txtを確認する
  • If・For each・変数を組み合わせることで複雑な自動化フローが作れる