質問: CalendarApp.getCalendarById('0000@gmail.com');//<---ここを自分のgmailアドレスへ変更する Cal.createEvent(name,start,end,options);//createEvent(タイトル、開始日時、終了日時、オプション) sht.getRange(i,14).setValue("登録完了"); } //ifを閉じる } //forを閉じる } //functionを閉じる ```
回答: 今の問題の状況は、Googleフォーム上へプルダウンを設定し、その中の選択肢の一つとして`15:00`のような時間を選択する項目があり、`15:00`を選択して投稿すると、スプレッドシート上に`'15:00`のように先頭にアポストロフィが付加されてしまうとのことで理解しました。 これが間違っていないようですと、この選択肢から送られた値はスプレッドシートへ貼り付けられた際に文字列として扱われるため、先頭に`'`が追加されてしまいます。以前、同様の問題を次のような方法で回避しました。 ### 問題の回避策 1. 下記のスクリプトを投稿されたデータが記録されているスプレッドシートのスクリプトエディタへ貼り付けてください。 2. 関数`onFormSubmit`にトリガーとして、「イベントのソースを選択」を「スプレッドシートから」、「イベントの種類を選択」を「フォーム送信時」として設定してください。 * トリガー設定は、スクリプトエディタを開いて「編集」 -> 「現在のプロジェクトトリガー」から行います。 #### サンプルスクリプト ``` function onFormSubmit(e) { var range = e.range; range.setValues(range.getValues()); } ``` ### 注意点 * これは、`getValues()`で取得した値には`'`が含まれていないことを利用してこの値を`setValues()`を使って上書きすることで先頭に`'`が追加されるのを回避しています。 * もしも上書きすることで他の値に影響が出てしまう場合は、該当する列のみ変更することで回避してください。