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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google カレンダー

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

Google Apps Script

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

Q&A

1回答

664閲覧

Google Apps Scriptで、Googleカレンダー詳細部分がcreateEvent()のoptionsで複数入力ができない

YoheiOgawa

総合スコア10

Google カレンダー

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

Google Apps Script

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

0グッド

1クリップ

投稿2019/03/14 09:16

Google Apps Scriptで、GoogleカレンダーのcreateEvent()のoptionsの複数入力ができない

初めまして。
GASを使いフォーム→スプレッドシート→カレンダーの予約登録のような形のコードを書いております。

GASでcreateeventのコードを記入しておりますが、
options
description: sheet.getRange(num_row,1,16).getValues(),

でスプレッドシートの情報をカレンダーの詳細に入力しようと思っているのですが、
詳細部分が
[Ljava.lang.Object;@58a18ccc
となります。
フォームの複数の情報をカレンダーの詳細に入力したいのですが、解決策はありますでしょうか?

解決策と原因を教えていただければ幸いです。

※description: sheet.getRange(num_row,3).getValues(),
にした場合はそのセルのみ表記されました。

発生している問題・エラーメッセージ

[Ljava.lang.Object;@58a18ccc

該当のソースコード

function sendcal() { //有効なGooglesプレッドシートを開く var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); //新規予約された行番号を取得 var num_row = sheet.getLastRow(); //予約を記載するカレンダーを取得 var cals = CalendarApp.getCalendarById("xxxxxx@group.calendar.google.com"); //新規予約された行から名前を取得 var title = sheet.getRange(num_row, 2).getValue(); //予約の開始時間を取得 var stime = new Date(sheet.getRange(num_row, 6).getValue()); //予約の終了時間を取得 var etime = new Date(sheet.getRange(num_row, 7).getValue()); var ndate = new Date(sheet.getRange(num_row, 5).getValue()); var ndates= new Date(ndate.getFullYear(),ndate.getMonth(),ndate.getDate(),stime.getHours(),stime.getMinutes(),0); var ndatee= new Date(ndate.getFullYear(),ndate.getMonth(),ndate.getDate(),etime.getHours(),etime.getMinutes(),0); var options = { description: sheet.getRange(num_row,1,16).getValues(), location: sheet.getRange(num_row,8).getValue(), } //予約情報をカレンダーに追加 var r = cals.createEvent(title, ndates, ndatee, options); }

試したこと

補足情報(FW/ツールのバージョンなど)

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

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

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

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

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

hiroshi0240

2019/03/14 10:15

num_rowはデータの最終行なので、そこから16行範囲を広げても、そもそもデータは存在しないと思いますが、もしかして16列分のデータを指定したいのであれば、(num_row,1,1,16)である必要があります。そういうことですか?
YoheiOgawa

2019/03/14 10:55

ご回答ありがとうございます。 (num_row,1,1,16)でやった場合も [Ljava.lang.Object;@60b990f2 というエラーが返ってきました。
hiroshi0240

2019/03/14 13:12

回答にも書きましたが、配列のままでは使えないと思います。
guest

回答1

0

descriptionが配列のままだとデータを扱えないのでは無いでしょうか。

GAS

1description.join(',')

としてあげれば文字列に変換できます。

投稿2019/03/14 10:19

hiroshi0240

総合スコア640

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

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

papinianus

2019/03/15 00:23

descriptionはキー。joinするのは値なので、getValues().join getValuesは2次元配列が入るから↑これでもまだちゃんと動かない。mapでjoinしたものをjoinする必要がある
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問