見出し画像

[GAS]スプレッドシートからデータ取得 #11

これまではGASとGmail、ドキュメントを利用して「メール送信」や「検索結果の取得」「メール一括削除」「メールテンプレート作成」などを学んできました。GASは、他にもGoogleスプレッドシートのデータをGmailと組み合わせることもできます。

これから学ぶのは、GASでスプレッドシートからデータを取得する方法です。

スプレッドシートからデータ取得

#11で学ぶこと まとめ図

今回は「①GAS上でスプレッドシートを呼び出す」を行い「②スプレッドシートからデータ取得」をして「③実行画面で取得情報を表示」という内容について解説してきたいと思います。

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

Google ドライブからGASを作成しますので、Google Apps Scriptにアクセスします。

Google Apps ScriptのURL ←クリック

新しいプロジェクトを作成

「新しいプロジェクト」を作成します。

「無題のプロジェクト」を立ち上げる

GASを作成できました。

2.プロジェクト名を変更

GASプロジェクトが作成できたら、デフォルトでは「無題のプロジェクト」になっているので、 こちらをクリックして適当な名前に変更し、[OK]ボタンをクリックしてください。

プロジェクト名を変更する

3.コードを入力する

これから詳細については説明しますので、まず下記コードを「コード.gs」のところにコピー&ペーストしてください。

function myFunction() {
  const ss = SpreadsheetApp.openByUrl("**********************"); //スプレッドシートのURLを指定する
  const sheet = ss.getSheets()[0]; //シートを指定する
  const recipient = sheet.getRange(2,2).getValue(); //2列目2行目の値を取得

  console.log(recipient); //メールアドレスを取得
}

こちらのコードを貼り付けたら、下記のような画面になると思います。

コードを貼り付けましょう

これから上記コードについて、確認します。

ここから難しく感じる方もいるかもしれませんが、肩の力を抜いて気楽に読んでください。

4.コードで何しているか理解する

コードで何をしているか、 少しづつ内容を分解して考えると理解しやすくなります。

①→②→③の順序で理解しよう

①GAS上でスプレッドシートを呼び出す

今回のメインテーマは、この①の部分です。

const ss = SpreadsheetApp.openByUrl("**********************"); //スプレッドシートのURLを指定する
const sheet = ss.getSheets()[0]; //シートを指定する

「SpreadsheetApp.openByUrl("")」メソッドを使用して、指定しているスプレッドシートを呼び出しています。これまでの学習では「GmailApp.」や「DocumentApp.」を利用していましたが、それが「SpreadsheetApp.」に変わっただけです。

そしてopenByUrlメソッドでは、ドキュメントのURLを指定してアクセスしています。

シート1を指定

そこからスプレッドシートにある「シート1」を指定するメソッドが「ss.getSheets()[0]」です。プログラミングにおける配列の知識が必要ですが、今回のメインテーマではないのでわからない人は、コードをコピーしてください。

②スプレッドシートからデータ取得

①で呼び出したドキュメントから、メールアドレスを取得しましょう。

const recipient = sheet.getRange(2,2).getValue(); //2列目2行目の値を取得

スプレッドシートから、getRange()getValue()を使いメールアドレス情報を抽出しています。今回はgetRange(2, 2)を指定し、2行目2列目のデータを取得するようにします。

③実行画面で取得情報を表示

②で取得した情報を実行画面に表示します。

console.log(recipient); //メールアドレスを取得

表示するには「console.log();」というメソッドを使います。

5.スプレッドシートを作成する

GAS上でスプレッドシートのデータを取得するために、新しいドキュメントを作成しましょう。

GoogleスプレッドシートURL ← クリック

新しいスプレッドシートを作成

「無題のドキュメント」が作成されますので、適当な名前に変更してください。

無題のスプレッドシートを立ち上げる

メールアドレスについてはテストシートなので、任意のメールアドレスを入力してください。今回は「捨てアド」というサービスのメールアドレスを利用してみたいと思います。

メールアドレスを作成

シートが作成できたら、作成したスプレッドシートのURLを取得してください。

スプレッドシートURLをコピー

スプレッドシートのURLを使用することで、指定したスプレッドシートをGASで呼び出すことができます。次の「6.コーディングしよう」では、スプレッドシートURLを使用しますのでコピーしてください。

6.コーディングしよう

では上記内容を踏まえて、実際にコーディングしてみましょう。

function myFunction() {
  const ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1X6E8-K6kbkNy0V3uJUHC2q91VWltGyTFRPXc08mDGd4/edit#gid=0"); //スプレッドシートのURLを指定する
  const sheet = ss.getSheets()[0]; //シートを指定する
  const recipient = sheet.getRange(2,2).getValue(); //2列目2行目の値を取得

  console.log(recipient); //メールアドレスを取得
}

さきほど取得したスプレッドシートURLを「SpreadsheetApp.openByUrl()」の中にいれてください。上記コードにあるURLは、私が作成したスプレッドシートURLが入っていますので、ご自分が作成したドキュメントURLに変更してください。

参考画面

7.プロジェクトを保存→実行

情報を入力したら、「プロジェクトを保存」をクリックしましょう。「プロジェクトを保存」が完了したら、「実行」をクリックしましょう。

「プロジェクトを保存」→「実行」

8.権限を確認→許可

毎度のことですが、初めてプログラミングを実行する場合、権限の承認が求められます。

権限を確認

「このプロジェクトがあなたのデータへのアクセス権限を必要としています。」と言うポップアップが出ますので、「権限を確認」をクリックしてください。

スプレッドシートからデータ取得(安全ではないページ)に移動

次の画面で「このアプリはGoogleで確認されていません」と出るので「詳細」から「スプレッドシートからデータ取得(安全ではないページ)に移動」をクリックしてください。

「許可」をクリック

次の画面で「許可」を求められますので、ご自身のアカウントであることを確認し「許可」をクリックしてください。

9.「実行完了」を確認

「許可」の確認が終わりましたら「実行ログ」のクリックをもう一度クリックしましょう。そして画面上で「実行開始」及び「実行完了」できているか確認しましょう。

「実行完了」を確認

プログラミングに問題がなければ、 実行ログにスプレッドシートで入力したメールアドレスが表示されています。

10.GASでスプレッドシートからデータ取得についておさらい

GASでは、Gmailやドキュメントだけではなくスプレッドシートも呼び出すことができます。

SpreadsheetApp.openByUrl()

URL以外にも、IDで呼び出すことができたり用途によって選べるメソッドがあります。

11.まとめ

いかがでしょうか?これまでのカリキュラムが理解できていると、そこまで難しくないですよね。

GASは、Gmailやドキュメント、スプレッドシートなどGoogleが提供しているサービスについて横断的にデータ移行をすることができます。しかも特別なサーバーを用意する必要などありません。

次回は「#12スプレッドシートで宛先リストを作成とメール送信」ついて解説していきたいと思います。

いいなと思ったら応援しよう!