【MACRO】Google Apps Script 質問スレ【DRIVE】 (968レス)
上下前次1-新
抽出解除 レス栞
648(1): デフォルトの名無しさん [sage] 2020/01/01(水)00:53 ID:DBz6lwN3(1)
>>644
結果を入力するとことか無駄あるけど、こんな感じかな
ポイントはシートにセットする値は二次元配列にしないとだから、resultにpushするときに配列として渡してあげるとこ
ただカレンダーの予定を入力するのは結局一つずつだから、大量に入れると遅くなるのは仕方ないかも
A列 タイトル
B列 日付
C列 イベント作成したかどうか
function sample() {
var sheet = SpreadsheetApp.getActiveSheet();
var calender = CalendarApp.getCalendarById('####');
var data = sheet.getDataRange().getValues();
// カレンダーへのセットの結果を格納する配列
var result = [];
data.forEach(function(value){
if(value[2] === ''){
var title = value[0];
var date = new Date(value[1]);
calender.createAllDayEvent(title, date);
result.push(['done']);
}else{
// すでにセットされている予定は更新しない
result.push([value[2]]);
};
});
sheet.getRange(1, 3, result.length, 1).setValues(result);
}
650: 644 [] 2020/01/01(水)16:06 ID:Xdbev+rH(1/2)
あけましておめでとうございます。
>>645>>648
ありがとうございます。
結果的に下記内容で実行時間を1カレンダー入力を2秒未満に済ませることができました。
カレンダー追加済と日付の指定を探しに行く範囲を限定しただけですが...
前提となるシートの内容が、
上から順に案件番号(3列目,C列)と案件名(10列目)は振られるものの、
カレンダーへの反映は予定日(11列目)が決まり次第のため、
入力済かの判定列(15行目)は途中で空欄が含まれるものでした。
>>648の内容をすることを正月休みの宿題にすることにします。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.513s*