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

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

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

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

Google カレンダー

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

Google Apps Script

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

Q&A

解決済

1回答

1381閲覧

スプレッドシートとカレンダーの連携に使う範囲について

ash05

総合スコア6

Google スプレッドシート

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

Google カレンダー

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

Google Apps Script

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

0グッド

0クリップ

投稿2021/07/14 09:48

A列B列C列D列E列F列
連携日付タイトル 開始時間終了時間拠点
☑ 6/1○○ウィーク   A店
☐ 7/15△キャンペーン11:3014:00B店
7/28◇◇フェアC店

上記のような表をスプレッドシートで作成して、A列の2行目からF列の最終行までをカレンダーに連携したいのですが、

**function registCalendar(){ var calendar = CalendarApp.getCalendarById("01@group.calendar.google.com"); var sheet = SpreadsheetApp.getActiveSheet(); var lastRow = sheet.getLastRow(); var contents = sheet.getRange('A2:F${lastRow}').getValues(); ### //エラー箇所 for(var i = 0;i < contents.length;i++){ var [status, day, title, startTime, endTime, hub] = contents[i]; if(status == "TRUE"){ continue; } var date = new Date(day); if(startTime == "" || endTime == ""){ calendar.creatAllDayEvent(title, date); //終日スケジュール }else{ var startDateObj =new Date(day); startDateObj.setHours(startTime.getHours()); startDateObj.setMinutes(startTime.getMinutes()); var endDateObj =new Date(day); endDateObj.setHours(endTime.getHours()); endDateObj.setMinutes(endTime.getMinutes()); calendar.creatEvent(title, startDateObj, endDateObj); } sheet.getRange('B${i + 2}').setValue("TRUE"); //連携したデータにチェックを入れる } } **コード

**【範囲は見つかりませんでした】**というエラーが表示され、コードの実行がストップしてしまいます。
変数に入れている範囲を認識させるにはどのようにしたらよいのでしょうか?
シングルクォーテーションでカッコってある範囲を認識してくれないので、ダブルクォーテーションにしてみたりしたのですが、
そもそもそういうことではないようで…。

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

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

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

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

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

guest

回答1

0

ベストアンサー

${}を使うときは、シングルクオート「'」ではなく、バッククオート「`」で前後を囲む必要があります。

GAS

1var contents = sheet.getRange('A2:F${lastRow}').getValues(); ### // 誤り 2 3var contents = sheet.getRange(`A2:F${lastRow}`).getValues(); ### // 正しい

下から2行目の

GAS

1sheet.getRange('B${i + 2}').setValue("TRUE"); //連携したデータにチェックを入れる

も同じように

GAS

1sheet.getRange(`B${i + 2}`).setValue("TRUE");

に直す必要があると思います。

投稿2021/07/14 13:15

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

ash05

2021/07/15 00:11

ありがとうございます! バッククォート、しっかり覚えました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問