ボタンを押したら指定の箇所だけクリアにするGASツール
Googleスプレッドシートで、毎回同じ箇所だけをクリアしたい…そんな作業を効率化するためのGASスクリプトを作成しました。
消す前に確認ダイアログも出る安心仕様で、他の人にも使ってもらいやすくなりました。
このブログは、Google Apps Script(GAS)を使った自作ツールの記録や、開発の過程での気づきをまとめたものです。
丁寧な解説というより、「こんなこともGASでできるんだ」というアイディアのきっかけになれば幸いです。
やりたかったこと
スプレッドシートで特定の範囲だけをクリアしたいが、範囲指定を間違えることがあり、必要な部分まで消してしまうことがあった。
自分は把握していても、他の人が操作するとミスが起きがちなので、誰でも安全に操作できるように「指定範囲だけクリアするボタン+確認メッセージ付き関数」を作成した。
使ったロジック・ポイント
今回のクリア機能では、GASの基本的な操作を組み合わせて、特定範囲のデータだけを消去できるようにしています。
① アクティブシートの取得
- どのシートが開かれているかを自動的に取得
- ユーザーが何かを選ばなくても実行可能
- 汎用性が高い
② 指定範囲の取得とクリア
- 範囲は "B3:D20" など固定値で指定
- `.clearContent()` を使って値だけクリア
- 背景色や罫線などはそのまま残す
③ 処理前の確認ダイアログ
- `Browser.msgBox()` を使ってユーザーに確認を取る
- うっかりミスを防止
- キャンセル時は何も処理しない
コード例
GASの操作が初めての方は、コードを開く・実行する手順をご確認ください。初回実行時の認証については、認証ガイドで紹介しています。
この関数を使えば、ボタンを押すだけで指定範囲のみを安全にクリアできます。確認メッセージ付きで、誤操作も防げます。
// 指定範囲を確認メッセージ付きでクリア
function clearTargetRange() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const range = sheet.getRange("B3:D20"); // 対象範囲を指定
const result = Browser.msgBox(
"確認",
"B3:D20 をクリアしてもよろしいですか?",
Browser.Buttons.OK_CANCEL
);
if (result === "ok") {
range.clearContent(); // 値だけ消す。書式はそのまま
} else {
Logger.log("キャンセルされました");
}
}
メモ・反省・次回やりたいこと
消しちゃいけないところを間違ってクリアする事故がほぼゼロになりました。
チェックボックスと連動して「チェックがついてる行だけ消す」などの発展も考えたいです。
他の作業者による行や列の挿入・削除で範囲がズレないよう、名前付き範囲の活用も今後検討したいです。
関連リンク
自分の業務に自動化機能を追加したい方へ
入力欄の初期化など、繰り返し行う表の操作を自動化する機能を追加したい方はご相談ください。今の作業と希望する自動化を伺い、対応できる範囲をご案内します。