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

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

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

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

Google カレンダー

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

Google Apps Script

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

Q&A

解決済

1回答

1132閲覧

googleカレンダーの内容をスプレッドシートに

gas_23

総合スコア11

Google スプレッドシート

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

Google カレンダー

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

Google Apps Script

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

0グッド

0クリップ

投稿2019/06/28 14:27

毎月1日になると、前月分のgoogleカレンダーの内容をgoogleスプレッドシートに月別にシートを新しく作って出力したいです。(可能なら新しい月のシートは1番左に寄せたい)
ググりかたが悪いのか、指定の日付や指定の期間の取得方法しか分かりませんでした。
トリガーを毎月1日に設定、その前月の1日から昨日までの分の取得方法や、その他諸々分かりません。
スクリプトをどう書けば良いか、どなたかご教示ください。
それと、google apps scriptを学習できるオススメ書籍があれば教えて頂きたいです。(詳解…完全入門は買いました。)
当方プログラミング完全未経験者です。
宜しくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

トリガーを毎月1日に設定

コードで作りたいってことですよね。コードで作るのはいいんですが何回も実行して同じトリガーを複数作らないでくださいよ

javascript

1function createTriggerFor1stOfMonth() { 2 ScriptApp.newTrigger("myFunction") 3 .timeBased() 4 .onMonthDay(1) 5 .create(); 6}

その前月の1日から昨日までの分の取得方法

javascript

1function getEventsOfLastMonth() { 2 return getEvents(get1stOfLastMonth(), getEndOfLastMonth()); 3} 4function get1stOfLastMonth() { 5 const now = new Date(); 6 return new Date(now.getFullYear(), now.getMonth() - 1, 1); 7} 8function getEndOfLastMonth() { 9 const now = new Date(); 10 return new Date(now.getFullYear(), now.getMonth(), 0); 11} 12function getEvents(start, end) { 13 return CalendarApp.getDefaultCalendar().getEvents(start, end); 14}

や、その他諸々分かりません。

あなたが何をわからないか、誰にもわかりません。こんな雰囲気のことがやりたいんです、わかりません、はこのサイトによくでてくる丸投げにも及びません。丸投げは非推奨質問ですが、これでは回答不能質問です。
申し訳ないがトリガーがわからないっていう人はプログラムは無理です。コミュ力でプログラムを書けるやつを口説くか、札束で殴るかしてください。

あとそのカレンダーの劣化コピーは、変更に追従しないので作るだけ無駄です。追従するならカレンダーでいいです。カレンダーの何をどうしたいか具体化してください。

投稿2019/06/30 16:07

papinianus

総合スコア12705

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

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

gas_23

2019/06/30 21:27

ありがとうございました! その他諸々はアバウトすぎましたね、ごめんなさい。 「月別にシートを新しく作って出力したいです。(可能なら新しい月のシートは1番左に寄せたい)」 の意味でした。 あと、「トリガーをまいつ1日に設定」は標準装備されてるトリガーを使う、とゆう意味でした。 文章が下手で申し訳ありませんでした。
papinianus

2019/06/30 22:14

質問に書いてあることを繰り返しても情報量は増えません。 それが全く具体的ではないのです。何をどの列に出すのですか?どういう順ですか?終日の予定はどうするのですか?予定がない日の分詰まって良いのですか?そういう要件が具体化できないなら、どういう使い方をする何なのかカレンダの何をどうしたいのか書くしかないです。 下手とかではなくてほとんどのことが書いてないのです。要件が具体的であれば読み違いも減ります。
gas_23

2019/07/01 13:16

重ね重ねすいませんでした。 ズブの素人が質問するには敷居が高すぎました。 周囲にはプログラミングどころかスプレッドシートさえ使い方が分からない人ばかりなので、誰にも相談できないので、こちらで質問させてもらいました。 具体的に書いてみます。(ノーコメントでも構いません。) 前提として、毎日、スマホでgoogleカレンダーアプリに、終日で、日々の仕事先(現場名や会社名)をタイトル欄に、作業内容を内容欄に、入力しています。 予定がない日は入力無しです。 言わば作業日報のようにカレンダーを使っています。 直接スプレッドシートに書けばいいだけですが、スマホからの入力は、セルの選択ミスなど発生したりするので、入力のしやすさからカレンダーアプリを使っています。 カレレポ ( www.calendar-report.work/ ) とゆうウェブサイトでカレンダーの内容をCSVでエクスポートできるのですが、GASを使えば同じことを自動で出来るのでは?と考え、調べ始めました。 作りたいスクリプトは、日報とゆう名のスプレッドシートをあらかじめ作っておいて、そこからスクリプトエディタを開くコンテナバインドとゆうタイプ。 毎月1日にトリガーで自動実行(GASに元々ある機能)。 日報スプレッドシート内に新たなシートを1枚追加して、その追加シートに、前月の1日から最終日までのカレンダーに入力してある事柄を入力する。(可能ならシート名を「○月分」に変更する。1番左に寄せる。通常、スプレッドシートでシートを追加したら右隣に作成されますが、そうではなく左に追加したい)。 予定が無い日のぶんは行を詰める。 A列には、ナンバーを1から順に振っていく。 B列には、日付(時間はいらない)。 C列には、タイトル。 D列には、内容。 上記のものを作りたいのです。 以上です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問