コードについてはほとんど分かっていませんし、誰かがこれを行う方法を知っていれば、単にヘルプを探しています。私は、Googleスプレッドシートを持っており、この例のためのがGoogleシート - ドロップダウンメニューの選択時にセル内のアドレスに電子メールを送信するコード
列Aが 列Bは、テキスト 列Cは、アイテムのドロップダウンリストは、(スケジュールと完全に、保留中の)データ検証ツールを使用して作られている電子メールアドレスであるとしましょう。
私は列Cに「完了」を選択時にコードを必要とする、電子メールがすべてのヘルプは次のように理解される
列Bからのテキストを含む電子メールの本文のカラムAに受信者に送信されます私は開発者ではない、私は私の教会がよりスムーズに動くのを手助けしようとしている牧師だ。
、ここでスプレッドシートへのリンクです...このサンプルについてhttps://docs.google.com/spreadsheets/d/1bA-gDvZ_jbJMyU6IqExBjHKclrKmqJSMHyuKHsr2CMA/edit?usp=sharing
、ここではスクリプトです...
var sheetname = "FacilitiesWorkRequests";
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetname);
var range = sheet.getRange(1, 3, sheet.getLastRow(), 1);
var list = SpreadsheetApp.newDataValidation().requireValueInList(["pending", "scheduled", "complete"], true).build();
range.setDataValidation(list);
}
function onEdit() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetname);
var ac = sheet.getActiveCell();
if (ac.getValue() == "complete") {
data = sheet.getRange(ac.getRowIndex(), 1, 1, 2).getValues();
Logger.log(data)
MailApp.sendEmail({
to: data[0][0],
subject: "sample mail",
body: data[0][1]
});
}
}
ありがとうございます!今、列を変更したい場合はどうしたらいいですか?実際のスプレッドシートでは、電子メールアドレスはL列、本文はG列、ドロップダウンフィールドはJ列になります。どうすれば変更できますか?このコードでは列見出しが表示されません。 –
カラムは "getRange()"によって定義されます。 "getRange()"のドキュメントはこちらです。 https://developers.google.com/apps-script/reference/spreadsheet/sheet#getRange(Integer,Integer,Integer,Integer) "onOpen()"はドロップダウンリストを作成します。 "onEdit()"は電子メールを送信します。 – Tanaike
ありがとうございます。今、私は分かる。しかし、私はこのエラーが発生し続けます。 TypeError:nullのメソッドgetActiveCellを呼び出すことができません。(行12、ファイル "コード") –