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

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

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

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

date

dateは、date型や日付に関する関数や処理についてのタグです

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google カレンダー

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

Google Apps Script

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

Q&A

解決済

1回答

610閲覧

GAS フォームからカレンダーへの時間の変換方法

退会済みユーザー

退会済みユーザー

総合スコア0

Google スプレッドシート

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

date

dateは、date型や日付に関する関数や処理についてのタグです

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google カレンダー

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

Google Apps Script

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

0グッド

0クリップ

投稿2020/08/20 01:36

フォームの送信された内容をもとにスプレットシートからカレンダーへ予約カレンダーを作る仕組みを考えています。

【わからない事】
送信された内容で日付をまたいでも時間の部分が表示されないようにしたいです。(今のままだと当日借りた時に上の部分に表示されない。。)
あと実際のタイムスタンプも載せているのですが、月と曜日の表示形式を日本語にしたいです。

イメージ説明

【スプレットシート】
イメージ説明

以下ソースコードを乗せているのですが、new Dateの引数に渡すもので他に必要なものはありますか?
またタイムスタンプのフォーマットを2020 月 日 曜日のような形にする仕組みはあるのでしょうか。。
【ソースコード】
function createEvent() {
// 自分のカレンダーIDに置き換え
var myCal = CalendarApp.getCalendarById('カレンダーID');

var sheet = SpreadsheetApp.getActiveSheet();
var dat = sheet.getDataRange().getValues();

for(var i = 0; i < dat.length; i++) {
if (dat[i][7] != "") {
continue;
}
var title = dat[i][4];
var startDate = new Date(dat[i][2]);
var endDate = new Date(dat[i][3]);
var options = {
description: "" + dat[i][1]
+ "\n" + dat[i][0]
+ "\n" + dat[i][5]
+ "\n" + dat[i][6],

} var myEvent = myCal.createEvent(title , startDate , endDate, options); dat[i][7] = "済";

}
sheet.getRange(1, 1, dat.length, dat[0].length).setValues(dat);
}

お手数ですがアドバイスいただけると幸いです。宜しくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

終日イベントにする場合には、createEventではなくcreateAllDayEventを使います。
https://developers.google.com/apps-script/reference/calendar/calendar#createAllDayEvent(String,Date,Date,Object)

また日付のフォーマット変換はmomentを使用するのがよく知られています。
下記を参考にどうぞ。
日付&時刻の便利ライブラリ「Moment.js」をGoogle Apps Scriptで使う方法
Moment.jsを使う - Qiita

投稿2020/08/20 02:15

macaron_xxx

総合スコア3191

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

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

退会済みユーザー

退会済みユーザー

2020/08/20 04:45

ご回答していただきありがとうございます。 日にちの部分に関してはできるようになりましたが、タイムスタンプの部分が 正しく表示されないです。 function createEventPC() { // 自分のカレンダーIDに置き換え var myCal = CalendarApp.getCalendarById('カレンダーID'); var sheet = SpreadsheetApp.getActiveSheet(); var dat = sheet.getDataRange().getValues(); for(var i = 0; i < dat.length; i++) { if (dat[i][7] != "") { continue; } var timestamp = Moment.moment(dat[i][0]); timestamp.format("YYYY年MM月DD日"); var title = dat[i][4]; var startDate = new Date(dat[i][2]);  var endDate = new Date(dat[i][3]); var options = { description: "" + dat[i][1] + "\n" + timestamp + "\n" + dat[i][5] + "\n" + dat[i][6], } var myEvent = myCal.createAllDayEvent(title , startDate , endDate, options); dat[i][7] = "済"; } sheet.getRange(1, 1, dat.length, dat[0].length).setValues(dat); } どこか違うかアドバイスいただけないでしょうか。。
macaron_xxx

2020/08/20 07:45

timestamp.format("YYYY年MM月DD日"); ↑これが不要で + "\n" + timestamp.format("YYYY年MM月DD日"); ↑こうします。
退会済みユーザー

退会済みユーザー

2020/08/20 23:42

やりたかったことができるようになりました!! アドバイスしていただきありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問