[GAS]スプレッドシートからデータ取得 #11
これまではGASとGmail、ドキュメントを利用して「メール送信」や「検索結果の取得」「メール一括削除」「メールテンプレート作成」などを学んできました。GASは、他にもGoogleスプレッドシートのデータをGmailと組み合わせることもできます。
これから学ぶのは、GASでスプレッドシートからデータを取得する方法です。
スプレッドシートからデータ取得
今回は「①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」を指定するメソッドが「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を使用することで、指定したスプレッドシートを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スプレッドシートで宛先リストを作成とメール送信」ついて解説していきたいと思います。