Formからの情報をスプレッドシートで一覧化し、昨日以降の日付で自動で日付を更新するscriptを作成しています。
■スプレッドシートの情報
F列にある日付でフィルターをかける
1行目は説明文のため、2行目でフィルターをかける(3行目からデータ)
以下のscriptを作成しましたが、「TypeError: sh.newFilterCriteria is not a function(行 16、ファイル「フィルター」)」のエラーが表示されます。
また、一旦フィルターをかけると毎回フィルターを一旦削除しなければscriptが動かないのでしょうか。
毎回、動きを確認する際に、「フィルターを解除してください。」のMSGが表示されます。
どなたかご存じの方がいらっしゃいましたら、よろしくお願いいたします。
function
1 var ss = SpreadsheetApp.getActiveSpreadsheet(); //アクティブなスプレッドシートを取得 2 var sh = ss.getActiveSheet(); //アクティブなスプレッドシートのアクティブシートを取得 3 4 filterSet = sh.getRange(2,6,sh.getLastRow(),sh.getLastColumn()).createFilter(); 5 6//現在日時を取得 7var day = Moment.moment(); 8//現在から一日引く(昨日の日付) 9var yesterday = day.subtract(1,'days'); 10 11 /*フィルターをかける列*/ 12 filterSet.criteria = {}; 13 columnIndex = 5; 14 15 var criteria = sh.newFilterCriteria() 16 .whenDateAfter(yesterday) 17 .build(); 18 19 20filterSet.setColumnFilterCriteria(columnIndex, criteria); 21 22 23 24 25 26}
コードがコード表示になってませんので修正を。
あと、「フィルタを作成し、『昨日以降の日付』で自動で日付を更新する」は、
GAS使わなくても普通にスプレッドシートのフィルタ機能で可能ですが、GASで実現したいということでしょうか?
ご確認ありがとうございます。
コード表示に修正いたしました。
スプレッドシート上で完結するのであれば、そうしたいのですが、
現在、スプレッドシートには以下のフィルタを設定しています。
【現在のフィルタ】
2行目の項目を選択し、フィルタ設定をする。日付が入力される列のフィルタを条件フィルタの「次より後の日付」を選択し、「昨日」を選択。
このスプレッドシートは共有をしているため、共有者全員にフィルタがかかった状態で表示を公開しています。そのため、データ>フィルタの表示からでは、設定した本人のみしか設定がフィルタ表示されてないため、上記のような設定としました。
しかし、この設定だと、昨日の日付で自動更新されておらず、毎朝手動でフィルタを「OK」ボタンをクリックしてフィルタをかけなおしているといった状況です。
他の方法で何か、自動更新が可能な設定箇所がありましたらご教示お願いいたします。
>条件フィルタの「次より後の日付」を選択し、「昨日」を選択
自動で更新されませんでしたでしょうか?失礼しました。
当方ではフィルタ表示を保存し、そのアドレスをメンバーに共有する運用をしており、
そのフィルタ表示だと自動更新されるので、普通にフィルタでも更新されるものと思ってました。
フィルタ設定での自動更新は検証してみますので、少々お待ちください。GASの方は回答いれときます。
ご回答ありがとうございます。
フィルタ設定を保存したURLを共有すると、自動更新されるのですね。
気が付きませんでした。
フィルタの設定で、URLが変わることも、今回初めて気が付きました。
ありがとうございます。
ご連絡いただいた、フィルタ保存の設定で、自分でも検証を行い、これで問題ないようであれば、URL変更となったことを周知するか、ご連絡いただいたscriptを再度検証し、実行するかどちらかで検討しようと思います。
色々とご回答いただき、本当にありがとうございます。
大変助かりました。
認識にズレがないように、念のため追加で書かせていただきますが、私がコメントで記載しているのは「フィルタ表示」っていう機能です。
https://trinity.jp/175944/
普通にフィルタをかけてしまうと共有している利用者全員に影響してしまいますが、
「フィルタ表示」は、他の人に影響なくフィルタが出来るという利点があります。
フィルタ表示状態でも セルの値の更新等もできるので、なかなか便利なのですが、スマホやiPadからは使えないというデメリットがあります。
ご連絡ありがとうございます。
認識が、合っておりました。
先ほど、確認したところ、「フィルタ表示」をしたURLを別のアカウントで表示させたところ、
フィルタが共有されておりました。
明日、日付の更新が自動でできているか確認をしてみたいと思います。
回答1件
あなたの回答
tips
プレビュー