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

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

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

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

Google カレンダー

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

Google Apps Script

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

Q&A

1回答

1328閲覧

googleカレンダーの予定をスプレッドシートへ出力する際、カレンダーIDをスプレッドシートの値から取得したい

hikaru_snoopy

総合スコア0

Google スプレッドシート

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

Google カレンダー

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

Google Apps Script

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

0グッド

0クリップ

投稿2020/04/26 14:19

編集2022/01/12 10:55

前提・実現したいこと

エンジニアではなく、GASも初心者です。
googleカレンダーの予定を、1日後とにスプレッドシートの新規シートへ出力するスクリプトを書いています。

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

その際、カレンダーIDを以下のように取得すると思いますが、以下のように直接スクリプトにカレンダーIDを入れるのではなく、
スプレッドシートの特定のセルにある値(カレンダーID)を利用したい

var cal = CalendarApp.getCalendarById('abcdef@gmail.com');

該当のソースコード

function CreateDailyplan() {

// 今日の日付を取得
var today = new Date();
var month = today.getMonth() + 1;
var date = month + "/" + today.getDate()

// FMTのシートを指定
var formatSheet = SpreadsheetApp.getActive().getSheetByName('FMT');
// FMTのシートをactiveシートに設定
SpreadsheetApp.setActiveSheet(formatSheet);
// FMTシートの複製を作成
SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet().setName(date);

// 新規作成したシートを指定
var newSheet = SpreadsheetApp.getActive().getSheetByName(date);
// 新規作成したシートをactiveシートに設定
SpreadsheetApp.setActiveSheet(newSheet);
// activeなシートを取得
var activeSheet = SpreadsheetApp.getActiveSpreadsheet();
// 新規作成したシートを一番左に移動
activeSheet.moveActiveSheet(0);

// カレンダーから情報を取得
var myid = activeSheet.getRange('F1').setValue();
Logger.log (myid);

var cal = CalendarApp.getCalendarsByID('myid');
var events = cal.getEventsForDay(today); // 本日の日付を指定

for
(var i=0; i<events.length; i++){ // 繰り返す回数は予定の個数分
activeSheet.getRange('A'+(i+3)).setValue(events[i].getStartTime());
activeSheet.getRange('B'+(i+3)).setValue(events[i].getEndTime());
activeSheet.getRange('C'+(i+3)).setValue(events[i].getTitle());
}

}

試したこと

ここがうまく動かないです。

var myid = activeSheet.getRange('F1').setValue();
Logger.log (myid);

var cal = CalendarApp.getCalendarsByID('myid');
var events = cal.getEventsForDay(today); // 本日の日付を指定

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

参考にした日報ツール
https://qiita.com/Naoto9282/items/6dd701cf523f40ed3e61
何か良い方法があれば、教えていただきたいです。

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

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

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

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

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

CHERRY

2020/04/27 04:18

myid には、なにが入っていますか?
hikaru_snoopy

2020/04/27 04:22

idだとわかりづらいと思い、myidとしました。 myid = activesheetのF1のセルに記載してあるカレンダーID としたかったです。
guest

回答1

0

javascrpt

1var myid = activeSheet.getRange('F1').getValue();

set ではなく get では。

投稿2020/04/26 16:08

papinianus

総合スコア12705

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

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

hikaru_snoopy

2020/04/27 04:08

ありがとうございます! 変えてみました!が、以下のようなエラー分が出てきてしまいました。 TypeError: CalendarApp.getCalendarsByID is not a function これってIDの取得が上のスクリプトだとできないということでしょうか。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問