【GAS入門】スプレッドシートからデータを抽出し、1行目をヘッダーとして扱う方法

スプレッドシートからデータを抽出し、1行目をヘッダーとして扱う方法 GAS

GASで最終受注日をチェック&通知するスクリプト解説【全体の流れ】

こんにちは。イカPOです。今回からは連載形式の記事を掲載します。この記事はその第1回です。

下記の記事で「最終受注日が10か月以上経過したデータを自動抽出&メール通知する方法」 について簡単に紹介しました。

この記事で、スプレッドシートからデータを条件をつけて、データを自動で抽出し、抽出したデータをメールで送信するスクリプトについて紹介しました。

このスクリプトの詳細を全3回に分けて解説し、処理の仕組みをしっかり理解できるように説明します。
第1回目は主にスプレッドシートからデータを取得する方法と、1行目をヘッダーとして扱う方法 について詳しく解説します。

最終的にスクリプトで実装する処理の考え方。

スクリプトの処理を3つのステップに分けて考えます。
1️⃣ 顧客管理表を取得(スプレッドシートのデータを取得)
2️⃣ 取得したデータから、最終受注日が10か月以上経過した顧客を探す
3️⃣一覧をメールで送信する

この流れが理解できれば、スクリプトの実装も難しくありません。
「やりたいこと(日本語)」を GAS(Google Apps Script)のコード に落とし込み、Googleに処理させましょう。

今回は1️⃣の顧客管理表を取得(スプレッドシートのデータを取得)にフォーカスして解説します。

スクリプトの最終完成形のコード全体はこの記事に記載しているので、そちらを確認してください。


前提条件

このスクリプトを実行するには、以下の準備が必要です。
📌 Googleスプレッドシートに「最終受注日」を記録したデータがあること
📌 Google Apps Script(GAS)を使える環境があること
📌 プログラミング初心者でも理解できるよう、できるだけシンプルに解説します!


スクリプトの解説の前に、データの準備から

まずは、スプレッドシートに、以下のデータを準備しましょう。

顧客ID名前最終受注日最終受注項目
1テストタロウ2024/05/01ソケット
2ヤマダタロウ2023/01/15足部
3スズキタロウ2025/01/06ライナー

データ入力時の注意点

✅ 1行目はヘッダー として扱います(このデータをスクリプトで利用するため、正しく入力してください)。
✅ 最終受注日の日付は「日付フォーマット」に設定 してください。
✅ シートの名前を「一覧表」に変更 してください。スクリプト内でこの名前を使用するので、異なる名前にするとエラーの原因になります。

シートの準備ができたら、拡張機能 → Apps Script からスクリプトエディタを開く

シートの準備ができたら、拡張機能 → Apps Script からスクリプトエディタを開き、コードを入力しましょう。


スプレッドシートのデータを取得する方法

スプレッドシートのデータを取得するためには、以下の 3つの手順 を踏みます。
1️⃣ スプレッドシートをアクティブにする(Googleが操作できるようにする)
2️⃣ アクティブなスプレッドシートから対象のシートを選択する
3️⃣ シート全体のデータを取得する

この流れを GASのコード に落とし込んでいきましょう!


まずは関数を用意しよう

GASでは、コードを実行するためには関数が必要 です。関数とは、特定の処理をまとめて実行できる「コードのまとまり」 のことです。
まずは、スプレッドシートのデータを取得するための関数を作成しましょう。
以下のように 関数の枠組み を用意して、その中にコードを書いていきます。

function checkOverdueOrders() {

  // この中にコードを記載する

}

関数を作成する理由

✅ コードを整理できる(どの処理が何をしているか明確になる)
✅ 必要な処理だけ実行できる(関数を呼び出せば、その処理だけ実行される)
✅ 再利用しやすい(他のスクリプトでも流用できる)

これで、データを取得する準備が整いました!
それでは、次のステップとして スプレッドシートをアクティブにする処理を追加していきましょう。


1. スプレッドシートをアクティブにする

まずは、対象のスプレッドシートを GASが操作できる状態 にします。

const ss = SpreadsheetApp.getActiveSpreadsheet(); // アクティブなスプレッドシートを取得

📌 解説: このコードは、現在開いているGoogleスプレッドシートを取得する処理 です。

SpreadsheetApp.getActiveSpreadsheet();

🔹 Googleがどのスプレッドシートを操作すればよいのかを理解できるようにする おまじないみたいなものです。
🔹 「ss」という変数 に、アクティブなスプレッドシートを格納しています。

この処理がないと、Googleは「どのスプレッドシートを操作すればいいの?」と迷ってしまうので、必ず最初に設定しましょう!


2. 操作対象のシートを取得する

次に、スプレッドシートの中から、特定の シート(一覧表) を取得します。

const sheet = ss.getSheetByName('一覧表'); // 操作対象のシートを取得

📌 解説:
🔹 getSheetByName(‘一覧表’) は、シート名を指定して取得 するメソッドです。
🔹 変数 sheet に 「一覧表」シートを格納 しています。


3. シート全体のデータを取得する

次に、スプレッドシートの すべてのデータ を取得します。

const data = sheet.getDataRange().getValues(); // シート全体のデータを取得(2次元配列)

📌 解説:
🔹 getDataRange() で、シートの すべてのセル範囲 を取得
🔹 getValues() で、値を取得(2次元配列として取得)

これで、スプレッドシートのデータを data という変数に格納できます。


4. 1行目(ヘッダー)を取得する

最後に、1行目(ヘッダー)を分離 します。

const headers = data.shift(); // ヘッダー行(1行目)を取得

📌 解説:
🔹 shift() は、配列の最初の要素を取得し、それを削除するメソッド
🔹 つまり、data の 最初の行(ヘッダー)を取得して headers に格納 する処理です。


コードの全体像

function checkOverdueOrders() {

  const ss = SpreadsheetApp.getActiveSpreadsheet(); // アクティブなスプレッドシートを取得

  const sheet = ss.getSheetByName('一覧表'); // 操作対象のシート(適宜変更)

  const data = sheet.getDataRange().getValues(); // シート全体のデータを取得(2次元配列)

  const headers = data.shift(); // ヘッダー行(1行目)を分離して取得

  Logger.log(data);

  Logger.log(headers);

}

まとめ

この記事では、スプレッドシートのデータを取得する方法 について詳しく解説しました。
✅ スプレッドシートをアクティブにする
✅ 対象のシート(一覧表)を取得する
✅ シート全体のデータを取得し、ヘッダーを分離する

これで、次の処理 「10か月以上経過した受注データを抽出する」 準備が整いました!


次回予告

次回の記事では、「取得したデータから、最終受注日が10か月以上経過した顧客を探す方法」 について詳しく解説します!

この記事についてのご意見や間違いのご指摘は、ぜひX(旧Twitter)でお知らせください!

皆さまのフィードバックをお待ちしています。以下のアカウントまでお気軽にメッセージをお寄せください。

この記事には筆者の個人的な解釈も一部含まれています。一つの参考としてお読みいただきつつ、最終的にはご自身や担当の方としっかり相談の上で判断いただけますと幸いです。

皆様の声で情報をアップデートしていきます。よろしくお願いします。

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