質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google カレンダー

Google カレンダーは、Google社が提供する無料のスケジュール管理ツールです。パソコンやスマートフォン、タブレットなどからアクセスし、スケジュールの追加・変更が可能。Googleアカウントがあれば誰でも使用できます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

1回答

817閲覧

GAS スプレットシート内容をカレンダーやメールの件名に自動入力

soukimi

総合スコア1

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google カレンダー

Google カレンダーは、Google社が提供する無料のスケジュール管理ツールです。パソコンやスマートフォン、タブレットなどからアクセスし、スケジュールの追加・変更が可能。Googleアカウントがあれば誰でも使用できます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

0クリップ

投稿2021/06/28 02:05

こんにちは、プログラミングとGASの初心者です。

予約システムの作成をしています。

googleフォームから入力されスプレットシートにある客先名や担当者名や装置名を
カレンダーの題名やメールの件名に入れたいのですが
どの様にしたら出来ますでしょうか?

下記のプログラミング文だと
メールは「テストご予約完了通知」のみが件名に入って
カレンダーは「担当者名とテスト」と入力されてしまいます。

 function sendToCalendar(e) {
try{
//有効なGooglesプレッドシートを開く
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

//新規予約された行番号を取得
var num_row = sheet.getLastRow();

//新規予約された行から担当者名を取得
var nname = sheet.getRange(num_row, 2).getValue();

//メールアドレスの取得
var nmail = sheet.getRange(num_row,16).getValue();

//予約を記載するカレンダーを取得
var cals = CalendarApp.getCalendarById("カレンダーID");

//予約の開始時間を取得
var stime = new Date(sheet.getRange(num_row, 24).getValue());

//予約の終了時間を取得
var etime = new Date(sheet.getRange(num_row, 25).getValue());

var ndate = new Date(sheet.getRange(num_row, 6).getValue());
var ndates= new Date(ndate.getFullYear(),ndate.getMonth(),ndate.getDate()-1,stime.getHours(),stime.getMinutes(),0);
var ndatee= new Date(ndate.getFullYear(),ndate.getMonth(),ndate.getDate()+1,etime.getHours(),etime.getMinutes(),0);

//客先名を取得
var ncustomer = sheet.getRange(num_row,3).getValue();

//テスト装置名を取得
var ntest = sheet.getRange(num_row,4).getValue();

// 先約があるかどうか調べる
if(cals.getEvents(ndates, ndatee)==0){

//予約の件名を入力
var thing = nname+ "様";

//予約情報
var r = cals.createEvent(thing, ntest,ncustomer,ndates, ndatee);

var thing =nname+"様\n\n テストのご予約を承りました。\n 別途、実験室からご連絡をいたします。\n\n 内容を拝見しまして日程などの変更を依頼する可能性がございます。\n ご了承ください。\n\n ご入力ありがとうございました。このメールは自動返信です。\n\n\n このメールアドレスに返信はしないでください。\n\n\n                                実験室"

MailApp.sendEmail(nmail,ntest,ncustomer+"テストご予約完了通知",thing);
}
else{

var thing =nname+"様 \n\n テストをご希望の日時に先約がありましたので予約出来ませんでした。\n\n 日程を変更して再度お申込みください。\n グーグルカレンダーにて予約日に先約が入っていないのを確認してください。\n\n\n このメールは自動返信です。このメールアドレスには返信しないでください。"

MailApp.sendEmail(nmail,ntest,ncustomer+"テストのご予約ができませんでした",thing);
}

} catch(exp){
//実行に失敗した時に通知
MailApp.sendEmail(nmail, exp.message, exp.message);
}
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

var ncustomer = sheet.getRange(num_row,3).getValue();
var ntest = sheet.getRange(num_row,4).getValue();

まずは、これでちゃんと目的のデータが得られているのかどうか、

GAS

1console.log(ncustomer); 2console.log(ntest);

で確かめてみると良いと思います。

投稿2021/07/03 05:43

itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問