Manderには、背景色を変更したいワークシートがあります。一度変更すると、彼は他の人が色を「変更できない」ようにしたいと考えています。 Manderは、ワークシート保護を使用できることを知っていますが、それにより、人々が実際にワークシートを使用できなくなります。彼はワークシートの使用を止めたくありません。一度設定すると、背景を変更したくないだけです。

あなたが望むものを達成するためにあなたが行くことができるいくつかの方法があります。 1つ目は、ワークシート保護をどのように適用しているかを調べることです。背景色はセルのフォーマットと見なされるため、ワークシートを保護し、フォーマット以外のすべての変更を許可するだけです。次の手順に従ってください:

。ユーザーが内容を変更できるようにするセルを選択します。 (必要に応じて、ワークシートのすべてのセルを選択できます。)

。リボンの[ホーム]タブを表示します。

。 [セル]グループの[フォーマット]をクリックし、[セルのフォーマット]を選択します。 Excelに[セルの書式設定]ダイアログボックスが表示されます。

。 [保護]タブが表示されていることを確認します。 (図1を参照)

。 [ロック]チェックボックスをオフにします。

。 [OK]をクリックしてダイアログボックスを閉じます。

。リボンの[ホーム]タブが表示されたままの状態で、[セル]グループの[フォーマット]をクリックし、[シートの保護]を選択します。 Excelに[シートの保護]ダイアログボックスが表示されます。 (図2を参照)

。書式設定(セルの書式設定、列の書式設定、行の書式設定)に関連するものを除くすべてのチェックボックスを選択します。

。必要な場合を除いて、パスワードを入力する必要はありません。 [OK]をクリックするだけです。

これで、フォーマットを変更することを除いて、ステップ1で選択したセルに変更を加えることができます。これは、背景色が保護されたままであることを意味します。

このアプローチには問題があります。数値、日付、時刻の表示方法など、他のセルの書式をユーザーが変更できるようにしたい場合があります。ただし、シートのフォーマットを保護しているため、これらを変更することはできません。

これを回避するためにできることは、マクロベースのアプローチを使用することだけです。簡単な方法は、ワークシートがアクティブ化されるたびにワークシートの背景色を変更するイベントハンドラーを作成することです。このように、誰かが背景色を変更した場合、次にワークシートがアクティブ化されたときに、それらの変更は効果的に削除されます。背景色をターコイズ色に設定する例を次に示します。

Private Sub Worksheet_Activate()

With Cells.Interior         .Pattern = xlSolid         .PatternColorIndex = xlAutomatic         .Color = RGB(0, 192, 192)

.TintAndShade = 0         .PatternTintAndShade = 0     End With End Sub

このマクロは、使用するワークシートのコードシートに追加する必要があります。

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

このヒント(4268)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。