当サイトの記事にはプロモーションが含まれています。

Googleスプレッドシートを一括で保護する方法|初心者でもできるGAS活用術

パソコンパソコン・スマホ教室
スポンサーリンク

スプレッドシートをみんなで使っていると、うっかり編集してはいけない部分を触ってしまうこと、ありますよね。特に、計算式や重要なデータが入っているセルを誤って変更されると、大変です。そんなときに役立つのが、Google Apps Script(GAS)を使った「一括保護」の方法です。

今回は、初心者の方でもわかりやすいように、GASを使ってスプレッドシートを一括で保護する方法を、実際のコードとともにご紹介します。これを覚えれば、誤操作を防ぎ、安心してスプレッドシートを共有できますよ。

スポンサーリンク

目次

Googleスプレッドシートのイメージ

Googleスプレッドシートのイメージ

GASでスプレッドシートを一括保護するとは?

スプレッドシートを複数人で使っていると、誰かがうっかり重要なセルを編集してしまうことがあります。そんなとき、GASを使って一括で保護をかけることで、誤操作を防ぐことができます。

例えば、計算式が入っているセルや、他のシートから参照されているセルなど、触ってほしくない部分を保護することで、安心して共同作業ができます。

GASで一括保護する基本のコード

まずは、GASを使ってスプレッドシートのすべてのシートを保護する基本のコードをご紹介します。


function protectAllSheets() {
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
sheets.forEach(function(sheet) {
var protection = sheet.protect().setDescription('保護されたシート');
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
});
}

このコードを実行すると、スプレッドシート内のすべてのシートが保護され、スクリプトを実行したユーザーだけが編集できるようになります。

特定のセル範囲を保護する方法

すべてのシートを保護するのではなく、特定のセル範囲だけを保護したい場合は、以下のようにコードを変更します。


function protectSpecificRange() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange('B10');
var protection = range.protect().setDescription('重要な範囲');
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
}

このコードを実行すると、指定したセル範囲(この例ではからB10)が保護され、スクリプトを実行したユーザーだけが編集できるようになります。

チェックボックスで行を保護・解除する方法

チェックボックスを使って、選択した行を保護したり、保護を解除したりする方法もあります。以下のコードは、チェックボックスがオンの行を保護し、オフの行の保護を解除する例です。


function protectRowsBasedOnCheckbox() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
data.forEach(function(row, index) {
var checkbox = row; // チェックボックスがA列にあると仮定
var range = sheet.getRange(index + 1, 1, 1, sheet.getLastColumn());
var protection = range.protect().setDescription('行 ' + (index + 1));
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (!checkbox) {
protection.remove();
}
});
}

このコードを実行すると、A列のチェックボックスがオンの行が保護され、オフの行の保護が解除されます。

注意点とまとめ

オーナー権限の制限Googleスプレッドシートでは、シートやセルの保護をかけても、オーナーやスクリプトを実行したユーザーは編集可能です。これを制限することはできません。
保護の解除保護されたセルやシートの編集を行いたい場合は、スプレッドシートのオーナー権限を持つユーザーに解除を依頼する必要があります。
スクリプトの実行GASのスクリプトは、スプレッドシートのオーナーや編集者であっても、スクリプトの実行権限がないと実行できません。スクリプトを共有する際は、実行権限の設定に注意しましょう。

よくある質問や疑問

Q1: GASのスクリプトを実行するには、どのようにすればよいですか?

スプレッドシートを開いた状態で、メニューの「拡張機能」から「Apps Script」を選択し、スクリプトエディタを開きます。そこで上記のコードを貼り付けて保存し、実行することができます。

Q2: 保護をかけたセルの内容を変更したい場合はどうすればよいですか?

保護をかけたセルの内容を変更するには、スプレッドシートのオーナー権限を持つユーザーが保護を解除する必要があります。解除方法は、右クリックで「保護を解除」を選択するか、「データ」メニューから「保護されたシートと範囲」を選択して解除できます。

Q3: チェックボックスの状態で行の保護を切り替える際、誤ってチェックボックスを削除してしまった場合はどうすればよいですか?

チェックボックスが削除されてしまった場合、手動でチェックボックスを再挿入する必要があります。再挿入後、再度スクリプトを実行することで、保護の状態を更新できます。

まとめ

GASを使ってスプレッドシートを一括で保護する方法をご紹介しました。これを活用すれば、誤操作によるデータの変更を防ぎ、安心して共同作業ができます。ぜひ、実際に試してみてください。

他にも疑問やお悩み事があれば、お気軽にLINEからお声掛けください。

この記事を書いた人
この記事を書いた人

企業の情報システム部門で10年以上、PC・アカウント・社内ネットワーク・Microsoft 365/Google Workspace運用を担当。年間数百件の問い合わせ対応(PC不調、メール送受信、Excel/Word資料、Teams会議、スマホ連携など)を通じて、初心者がつまずくポイントを「再現→原因切り分け→最短解決」の手順に落とし込んできました

現場や身近で実際に起きたトラブルをベースに、手順だけでなく「なぜそうなるか」「失敗しやすい落とし穴」「安全な設定(セキュリティ)」まで含めて解説します。

相談窓口(問い合わせ/LINE等)を設け、記事で解決しないケースも個別にサポートしていますので「パソコンが急に動かなくなった」「スマホの設定がわからない」などの悩みは一人で抱え込まず、お気軽にご相談ください。

【お問い合わせは下記URLから】
https://m32006400n.xsrv.jp/inquiry-form/

【公式LINEは下記URLから】
https://lin.ee/t8TDjcj

uri uriをフォローする
スポンサーリンク
よかったらシェアしてね! /
uri uriをフォローする

コメント

タイトルとURLをコピーしました