ラリーは、自分が開発したワークシートを保護する際に直面した問題について書いています。彼には、数式と条件付き書式の両方を含むセルがあります。彼はワークシートで両方を保護できますが、誰かがセルを選択して別のワークシートにコピーすると、条件付き書式が表示されます。

保護されたセルをあるシートから別のシートにコピーするときに、ソースセルの数式が保護プロセスで非表示になっている場合、数式の結果は保護されていない状態でターゲットセルに貼り付けられます。結果ではなく数式を保護する必要があるため、これはおそらく大したことではありません。

ただし、Excelは条件付き形式についてはそれほど保護的ではありません。貼り付けるセルの条件付きフォーマットは、保護されていないワークシートにあるため、必要に応じて表示および変更できます。これは、条件付きフォーマットに非公開にしておきたい数式が含まれている場合に問題になる可能性があります。

この問題を回避する唯一の方法は、保護されたワークシートから何かをコピーする機能を無効にすることです。これを行うには、ワークシートオブジェクトに追加された、コピーを無効にするマクロを使用します。

Private Sub Worksheet_Deactivate()

Application.CutCopyMode = False End Sub

このマクロが機能するのは、ワークシートが非アクティブ化されると(つまり、ターゲットワークシートが選択されると)、CutCopyModeがFalseに設定されるためです。

これにより、ユーザーがCtrl + Cを押したときにソースセルの周囲に表示された「アリの行進」が削除され、貼り付けができなくなります。同じワークシートにコピーして貼り付けることは問題ありません。別の(保護されていない)ワークシートではありません。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

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

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