Excel 2000以降、Microsoftは、保護されたワークシートでユーザーが実行できることを定義する機能を追加しました。 [シートの保護]ダイアログボックスのチェックボックスを使用して、許可されるさまざまなアクションを選択できます。 (図1を参照)

image

図1. [シートの保護]ダイアログボックス。

[シートの保護]ダイアログボックスで許可されているアクションの1つは、保護されたワークシートの行と列の挿入と削除です。これは、一部の種類のワークシートにとって優れた機能です。しかし、この機能が実際にどのように機能するかには奇妙なことがあります。

ワークシートを作成して保護するとします。そうすることで、保護されたワークシートに行を挿入したり削除したりしても問題がないことを示します。誰かが保護されたワークシートに行を挿入しようとすると、問題なく挿入されます。誰かが行を削除しようとすると(挿入したばかりの行であっても)、そのアクションは許可されません。それはできません。

何が得られますか? [シートの保護]ダイアログで、ユーザーが行を削除できることを示しましたが、Excelでは削除できません。

その理由は、Excelがワークシート保護を実装する方法に関係しているようです。 [セルの書式設定]ダイアログボックスの[保護]タブで[ロック]として書式設定されているすべてのセルに保護が適用されることに注意してください。削除しようとしている行のセルがロック済みとしてフォーマットされている場合、ワークシート保護では行を削除できません。行のすべてのセルで[ロック]チェックボックスがオフになっている場合、その行は正常に削除できます。 (図2を参照)

image

図2. [セルのフォーマット]ダイアログボックスの[保護]タブ。

興味深いことに、追加された行はその上の行のセル形式を継承するため、ユーザーは追加した行を削除できません。したがって、挿入された行の上の行にロックされたセルがある場合、ワークシートが保護されている限り、挿入された行を削除することはできません。

もちろん、この動作は、行のセルがロックされているかどうかに関係なく、ワークシートの行を削除できるようにすることを本当に望んでいるワークシート開発者にとってはそれほど役に立ちません。あなたがそれらの人々の一人である場合、あなたができる唯一のことはあなたのために削除を行うマクロを作成することです。マクロは次の手順を実行する必要があります:

。ワークシートの保護を解除します。行を削除します。ワークシートを再度保護します

これらの3つの手順は、_ExcelTips._の他の問題で説明されている手法を使用して、比較的簡単に実行できます。マクロを便利にするには、ユーザーが不要な行を削除しようとしないようにするコードを追加することをお勧めします。削除(見出し、合計など)

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(3004)は、Microsoft Excel 2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。