Googleスプレッドシートのセルをロック/保護する方法


9

母のためにGoogleスプレッドシートで非常にシンプルなスプレッドシートアプリケーションを作成しました。しかし、セルを数式でロック/保護して、編集できないようにする必要があります。私が彼女に新しいバージョンを試すように言うたびに、彼女は数式を上書きしました。

技術的な観点からこれにどのようにアプローチするか考えていますか?

ネットを検索したところ、現在Google Appsではできないようです。

回答:


9

現在、特定のセルをロックすることはできません。ただし、スプレッドシートで新しいシートを作成してロックすることはできます。彼女が数式を変更できないようにする場合は、すべての結果/数式を2番目のシートに入れて、最初のシートのデータを参照し、2番目のシートをロックして、読み取り専用にすることができます。

別のシートのデータを参照するには、構文を使用しますsheetname!range。たとえば、2行目から10行目までのシート1の列Aの平均を取るには、を使用しますAverage(sheet1!A2:A10)

シートを追加する+には、スプレッドシートの右下にある記号を使用します。スプレッドシートの左下にあるタブとドロップダウン矢印を使用して、シートを切り替えたり名前を変更したりできます。

google docsスクリーンショット


とてもいい説明です ありがとうございました。単純なテーブルがあり、列と行の合計を計算する場合に使用できるかどうかはわかりません。ユーザーは通常、合計とデータを1つの画面に表示したいと考えています。まあ、彼女が数式を削除し続けるなら、私はそれのための解決策を持っています:-)
Radek

お役に立てて幸いです。importrangeあるシートのセクション全体を別のシートにインポートできるという関数もあります。これを使用して、最初のシートのデータ全体を2番目のシートにインポートし、対応するデータの近くにある数式をすべて表示できます。Googleにはそのためのドキュメントがあります。それでも完璧な解決策にはなりませんが、少なくとも元のデータを含む1つのページにすべての結果が表示されるため、より近いものになります。
nhinkle 2010年

これが現時点での唯一の解決策のように見えます....ありがとう
Radek

問題ない。最終的により良い解決策を見つけた場合は、投稿を更新してください。それについて聞きたいです。
nhinkle

4

編集してはいけないセルに添付されたコメントを作成すると、セルの上にマウスを置いて編集するときに誰かに警告することができることがわかりました。もちろん、実際にはセルをロックしませんが、うまくいけば、メモがポップアップ表示されるのに十分な時間があれば、お母さんが手動でこれらの数値を変更するのをやめるでしょう。

コメントを追加できるのは一度に1つのセルだけなので、数式であるセルの数によっては、この解決策が実行できない場合があります。


数式が列全体にあるため、この場合は使用できませんが、場合によっては素晴らしい解決策になるでしょう
Radek

4

今日の答えは、[データ]メニューの[名前付きおよび保護された範囲]です。スムーズに動作します。


3
このソリューションの制限は、スプレッドシートの所有者が自分自身に対してセルをロックできないことです。OPの問題を解決するには、OPがスプレッドシートを所有し、それをお母さんと共有する必要もあります。
MetaEd

このソリューションに制限はありません。詳しく説明してもらえますか?所有者の変更により、セルの範囲も自分から保護されます。
Radek

3

Googleアプリスクリプトを使用して、JavaScriptで独自のロックメカニズムを記述できます。

例えば:

列Bに数式があり、それが列A + 1の値と等しいとしましょう。セル(B3)を見ると、「= A3 + 1」という数式が含まれているはずです。

これを変更から保護するスクリプトを作成するには、スクリプトエディターを使用して次のように記述します。

function onEdit(event)
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.getActiveSheet();
  var CellRow = SpreadsheetApp.getActiveRange().getRow();
  var CellColumn = SpreadsheetApp.getActiveRange().getColumn();

  if (CellColumn == 2){
    sheet.getRange(CellRow, CellColumn).setFormula("=A"+CellRow+"+1");
    Browser.msgBox("DON'T MESS WITH THE FORMULAS!");
  }
}

誰かが列Bのセルを編集するたびに機能する場合、スクリプトは自動的に数式を元に戻し、警告メッセージを表示します。


3

これを回避するには、データ検証を使用します。

[データ]メニューに移動し、[検証...]をクリックして、「保護」する必要のあるセルの範囲を定義します。例: SheetA!F2:F9999。次に、[基準:テキスト、等しい]を選択します。次に、ボックスに「= *」のように入力します。引用符は不要です。[無効なデータを許可...]チェックボックスをオフにします。セーブ。

これにより、ユーザーは=記号(保護する数式の先頭)で始まる値のみを入力できるようになります。=記号を入力すると、そのセルを変更できます。

アスタリスクを使用すると、=の後のすべてが有効になります。さらに指定して、保護することもできます:例:テキスト、等しい=sum(*)、または=AVG(B*:D*)、など...



1

Excelが同じ問題を抱えていたときの簡単な解決策:

これを行うもう1つの方法は、データ検証を使用することです。セルに必要なコンテンツを入力したら、

データ検証を選択し、カスタムオプションを使用します。式には、=""

次に、「入力を拒否」を選択します。


0

Microsoft Excelでは、シート全体をロックしてから、個々のセルまたは範囲を選択的にロック解除できます。

Googleスプレッドシートでは、他のユーザーが入力できるようにするセルを除いて、1つ以上の個別の範囲にあるすべてのセルをロックしています。今日作成したGoogleシートの例をご覧ください:サンプル

Excelのバリエーションの1つは、Googleシートのすべてのロックされたセルに、背景として灰色の斜めのストライプがあることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.