まず、スプレッドシートを新規作成してから、スクリプトエディタを起動し、以下のスクリプトを記述します。
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [{name: "実行", functionName: "myFunction"}];
ss.addMenu("拡張", menuEntries);
}
function myFunction() {
var sh = SpreadsheetApp.getActiveSheet();
var subject = sh.getRange("B2").getValue();
var body = sh.getRange("C2").getValue();
var mail_cc = Session.getActiveUser().getEmail();
var rg = sh.getDataRange();
var rows = rg.getLastRow(); //最終行を取得
var values = rg.getValues(); //データを配列に格納
for (var i = 1; i < rows; i++) {
var mail_to = values[i][0];
MailApp.sendEmail(mail_to, subject, body, {cc: mail_cc});
}
Browser.msgBox("メールを送信しました!");
}
このスクリプトを保存し、スクリプトエディタも閉じます。
更に、スプレッドシートも保存し、スプレッドシートの画面も閉じます。
一旦閉じたスプレッドシートを開くと「拡張」メニューが追加されます。
2行目に、宛先、件名、本文を入力し、「拡張」メニューから「実行」を選択します。
初めて実行した時は以下のメッセージが表示されます。
ここで「OK」を押して承認しないとスクリプトは実行されません。
ただし、承認した時はスクリプトが実行されていませんので「拡張」メニューから「実行」をもう一度選択してスクリプトを実行します。
このスクリプトのポイントは、以下の3点です。
・シート.getDataRange()でレンジを取得
・レンジ.getLastRow()で最終行を取得
・values = rg.getValues()でレンジ内のデータを2次元配列に格納
【参考にしたサイト】
Google Code > Tutorial: Creating Your First Spreadsheet Script
http://code.google.com/intl/ja/googleapps/appsscript/articles/yourfirstscript.html
Google Code > Tutorial: Sending emails from a Spreadsheet
http://code.google.com/intl/ja/googleapps/appsscript/articles/sending_emails.html
Mail Services > Class MailApp > method sendEmail(recipients, subject, body, optAdvancedArgs)
http://code.google.com/intl/ja/googleapps/appsscript/class_mailapp.html#sendEmail
Spreadsheet Services > Class Range > method getValues()
http://code.google.com/intl/ja/googleapps/appsscript/class_range.html#getValues
【おまけ】新ブログを開設しました。
『ExcelユーザーのためのGoogleスプレッドシート入門』
Excelはフツーに使えるよという方でも、Googleスプレッドシートを使った時にはアレッと思うことが結構あるものです。そういう方々向けの企画です。
0 件のコメント:
コメントを投稿