とっちゃん@nyanco! です。
今回はGoogleスプレッドシートの任意のシート内のチェックボックスを指定の時間に自動でリセットさせる方法について画像付きで分かりやすく解説するよというお話です。
スクリプトを使いますが、コピーペーストでほぼそのまま使えるコードがあるのでスクリプトなんて書けない!という方でも設定できるはずです。
スムーズにできれば10分もかかりませんにゃ~
一度設定してしまえば毎日勝手にリセットしてくれて地味だけど便利ですにゃ~
やりたいこと
やりたいことは非常にシンプルです。
▼以下のようなスプレッドシート内のチェックボックスを任意の時間に自動でリセット(オフ)する!だけです。
▼ちなみにそのくらい自動でしなくても、列(もしくは範囲選択)で選択して半角モードでスペースキーを押すでも一括オン・オフはできるっちゃできるんですが…
ちょっとした作業でも毎日のことだとバカになりませんにゃ~
積み上げ大事ですにゃ~
ということで、これをスクリプトに自動でリセットしてもらう設定方法の解説です。
スプシのチェックボックスを自動リセットする方法
Step1. スクリプトコードを入力
▼まずはリセットしたいチェックボックスのあるスプレッドシートのシートを開き、メニューの「拡張機能」をクリックします。
「拡張機能」メニューが見当たらない場合はウィンドウ幅が狭くて隠れているか、アップデートでメニュー名が変わっている可能性があります。
▼サブメニューが開くので「Apps Script」をクリックします。
▼別タブでApps Script「無題のプロジェクト」というページが開き、コードが入力できる画面になります。
▼まず、デフォルトで入っているコード(function myFunction() {~)は不要なので削除しておきます。
▼次に「無題のプロジェクト」のままでは後から何のスクリプトか分からなくなるのでクリックして適当な名前をつけておきます。
▼今回は「reset-checkbox」としました。入力したら「名前の変更」をクリックします。
▼続いて以下のコードを丸々コピーします。
function resetCheckboxes() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート名');
if (!sheet) {
Logger.log('シート "シート名" が見つかりません');
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);
}
}
}
}
※コードは生成AI「Perplexity」で生成したものを少しカスタマイズしています。
▼Apps Scriptにのコード欄にコピーしたコードをペーストします。
▼ペースト後、2行目と4行目の【シート名】を任意のシート名に変更します。
▼シート名はスプレッドシートのここで確認できます(以下の例だと「task」)。
▼変更ができたらフロッピーボタンをクリックして保存しておきます。
Step2. トリガーで時間を指定する
▼続いてウィンドウ左側にあるメニューのストップウォッチのアイコン「トリガー」をクリックします。
▼トリガー設定画面になるので、ウィンドウ右下にある「トリガーを追加」をクリックします。
▼「reset-checkboxのトリガーを追加」ダイアログが表示されるので次のように設定します。
- 実行する関数を選択: resetCheckboxes
- 実行するデプロイを選択: Head
- イベントのソースを選択: 時間主導型
- 時間ベースのトリガーのタイプを選択: 日付ベースのタイマー
- 時刻を選択: 任意の時間
▼時刻は任意ですが、「午後1時~2時」のように1時間ほどの幅があるので、実際にリセットしたい時刻よりも-1時間で設定しておくと良いかと思います。
スクリプトが実行される時間がアバウトなのは仕様ですにゃ〜
ちなみにスプレッドシートを開いてなくてもOKですにゃ~
▼設定ができたら「保存」をクリックします。
Step3. アプリにアクセスを許可する
▼すると「スクリプトの承認に失敗しました。ポップアップ ブロッカーの設定を確認してもう一度お試しください」となり、ブラウザのURLバー横にアラートが表示されるのでクリックします。
▼ブロックされたポップアップにURLが表示されるのでクリックします。
▼「Sign in with Google」ウィンドウが表示されるので自身のGoogleアカウントをクリックします。
▼警告めいた表示が出てドキッとしますが(以下に和訳アリ。以下同)、これはGoogleが未検証のアプリなので要注意!という内容です。今回は自分で作成したアプリなので「Advanced」をクリックします。
外部で入手したアプリや怪しいサイトに掲載されていたコードを導入する際などは、ご自身の責任の上で十分に検証してから判断するようにしてください。
Google hasn’t verified this app
The app is requesting access to sensitive info in your Google Account. Until the developer (自分のアドレス@gmail.com) verifies this app with Google, you shouldn’t use it.【Google翻訳】Google はこのアプリを検証していません
アプリは Google アカウントの機密情報へのアクセスを要求しています。開発者 (自分のアドレス@gmail.com) が Google でこのアプリを検証するまで、このアプリを使用しないでください。
▼さらに注意喚起が表示されますが、「Goto reset-checkbox(unsafe)」をクリックします。
Continue only if you understand the risks and trust the developer (millielove@gmail.com).
【Google翻訳】リスクを理解し、開発者を信頼できる場合にのみ続行してください
▼最後の確認です。内容を確認して問題なければ「Allow(許可する)」をクリックします。
reset-checkbox wants to access your Google Account
This will allow reset-checkbox to:
See, edit, create, and delete all your Google Sheets spreadsheets
Make sure you trust reset-checkbox
You may be sharing sensitive info with this site or app. Learn about how reset-checkbox will handle your data by reviewing its terms of service and privacy policies. You can always see or remove access in your Google Account.【Google翻訳】reset-checkbox があなたの Google アカウントにアクセスしようとしています
これにより、reset-checkbox は次の操作を実行できるようになります:
すべての Google スプレッドシートのスプレッドシートを表示、編集、作成、削除
reset-checkbox が信頼できることを確認してください
このサイトまたはアプリと機密情報を共有している可能性があります。reset-checkbox があなたのデータをどのように処理するかについては、利用規約とプライバシー ポリシーを確認してください。Google アカウントでいつでもアクセスを確認または削除できます。
▼Apps Scriptの画面に戻ればOKです。
Step4. アプリをデプロイ
最後に、開発したアプリをサーバー上で利用できる状態にする「デプロイ」という作業で締めくくりです。
▼ウィンドウ右上あたりにある「デプロイ」→「新しいデプロイ」をクリックします。
▼「新しいデプロイ」ウィンドウが開くので「種類の選択」右横にある「歯車アイコン」をクリックします。
▼サブメニューが開くので今回は「ウェブアプリ」をクリックします。
▼設定画面になるので内容を確認、必要であれば修正して「デプロイ」をクリックします。
基本はデフォルトのままでOKですにゃ~
「説明」欄に簡単なアプリの説明を入力しておくと良いかもですにゃ~
▼「デプロイを更新しました」と表示されたら設定は全て完了です!
▼指定した時間帯にチェックボックスがリセットされているのが確認できればOKです。
おつかれさまでしたにゃ~
おわりに
本記事がどなたかの参考になれば幸いです。
今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧
コメント