毎週火曜に手動でチェック外しているよ、というお友達が意外と多い。

地味に面倒なチェック外し作業を自動化しちゃおう!という記事。

 

今回はみんな使ってる(であろう)スプレッドシートの場合で書くよ。



①まず一覧を作る。どんな形式でも良い。

 作った一覧のシート名を任意の名前に変更する。例:MD管理(スクショ赤線のところ)



②上の方の『拡張機能』から、『Apps Script』を開く。


↓こんな感じのページが別タブで開かれてたらOK。

 もし違う画面だったら、左端の『<>』マークを押したらこの画面になると思う。



③右半分の、グレー背景部分(4行あるところ)を全部消す


④消したところに、↓をコピペする

function resetCheckboxes() {

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('MD管理');

  if (!sheet) {

    Logger.log('シート "MD管理" が見つかりません');

    return;

  }

 

  var range = sheet.getDataRange();

  var values = range.getValues();

 

  for (var i = 0; i < values.length; i++) {

    for (var j = 0; j < values[i].length; j++) {

      if (values[i][j] === true) {

        sheet.getRange(i + 1, j + 1).setValue(false);

      }

    }

  }

}


↑こうなってたらOK
 Ctrl+Sで保存を忘れずに。

***補足①***
ざっくり書いてあること
・resetCheckboxesという名前のコードだよ

・『MD管理』って名前のシートがあるか確認するよ

・『MD管理』のシートの隅々まで、チェックボックスをオフにするよ

***補足②***
2行目、4行目に『MD管理』と書いてあるが、

①でつけた任意のシート名が『MD管理』ではない場合は、

各々がつけたシート名に書き換えをすること。

 

また、今後一覧のシート名を変えることがあれば、

その都度『MD管理』のところを新しいシート名に変更すること。

 

 

今のチェックボックスの入力状態をスクショで保存したうえで

 『▷実行』を押して試運転する。(省略可)


一覧のシートのチェックボックスが全部とれていたらOK。

稼働確認のための実行なので、チェックボックスを元の状態に戻して問題ない。


⑥左端の『⏰トリガー』を開く。



こんな画面に変わればOK

⑦右下の青い『トリガーを追加』から、↓の通りに設定する。


実行する関数:resetCheckboxes
イベントのソース:時間主導

トリガータイプ:週ベース

曜日:毎週火曜日     ※メンテの曜日

時刻:午後12時~1時 ※メンテ時間なら何時でも可

⑧多分保存を押すとこんなポップアップがでてくるので、

左下の『Advanced』を押す。

つづいて、『Go To 無題のプロジェクト(unsafe)』を押す。
※警告出るとびびるんですけど、このコード信用していい?だいじょぶそ?って画面です

 自動化したいので避けては通れぬのだ。無視して次へ

次の画面で下にスクロールすると↓みたいな文章がでてくるので、

『Continue』を押す。


トリガー設定されてたら全部の設定がおわり!おつかれさまでした