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

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

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

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

2回答

3145閲覧

Google Apps Scriptでカレンダーにスプレッドシートから自動で予定作成

kentaY_sputnik

総合スコア6

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2017/04/12 04:05

###前提・実現したいこと
Googleのスプレッドシートからカレンダーに予定を登録するスクリプトを実装しました。
そのスプレッドシートでは、日付と時間を計算させて、出た日時をカレンダーに登録するようにしています。

実際にカレンダーに登録は完了しましたが、セルに数式(日付と時間を計算用)のみ入っているセルも参照するため、エラーが発生しています。
しかし、数式は必要なため消すことができません。

createEventを用いて、演算したところのみを参照させてイベントの作成を停止させる方法はありますでしょうか?

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

メソッド createEvent(string,string,string) が見つかりません。(行 14、ファイル「コード」)

###該当のソースコード

function createEventFromSheet() { var sheet, i, myevent, mystart, myend, added; sheet = SpreadsheetApp.getActiveSheet(); for(i = 2; i <= sheet.getLastRow(); i++) { myevent = sheet.getRange(i, 1) .getValue(); mystart = sheet.getRange(i, 2) .getValue(); myend = sheet.getRange(i, 3) .getValue(); added = sheet.getRange(i, 5).getValue(); if(added == "") { thisevent = CalendarApp.getCalendarById("xxxxxxxxxxxxxxx") .createEvent(myevent, mystart, myend ); sheet.getRange(i, 5).setValue("追加済み"); } } }

###試したこと
数式を削除した場合エラーが発生するか確認済み(セルが空白であればエラーが起きない)

###補足情報(言語/FW/ツール等のバージョンなど)
Google Apps Script

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

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

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

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

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

guest

回答2

0

こういうこと?

javascript

1function q72194() { 2 const cal = CalendarApp.getCalendarById("xxxxxxxxxxxxxxx"); 3 const sheet = SpreadsheetApp.getActiveSheet(); 4 const dat = sheet.getDataRange().getValues(); 5 dat.filter(function(e) { return e[4] === ""}).forEach(function(e) { cal.createEvent(e[0], new Date(e[1]), new Date(e[2]));}); 6 sheet.getRange(1,1,dat.length,dat[0].length).setValues(dat.map(function(r) { return r.map(function(c,i){ return i === 4 ? "追加済み" : c;})})); 7}

投稿2020/01/15 13:20

papinianus

総合スコア12705

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

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

0

createEventの引数はString, Date, Dateなので、String, String, Stringでは動作しません。
mystart 及び myend をDate型に変換することで動作するかと思います。

尚、mystart, myendはどのようなフォーマットはわかりませんが、「new Date(mystart)」などで可能かと思われます。(通常のフォーマットならば)

参考

https://developers.google.com/apps-script/reference/calendar/calendar#createeventtitle,-starttime,-endtime

投稿2019/09/27 03:04

yamap55

総合スコア1376

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問