【エクセルVBA】シートの保護をするとき特定のセルだけ編集可能にする

Excel VBA シートの保護

エクセルVBAでシート保護をして特定のセルだけ編集可能にする方法を紹介します。

1.セルの書式設定で保護タブを初期設定にする

シート左上の「全セル選択ボタン」を押してすべてのセルを選択します。

シートの上で右クリックして「セルの書式設定」のダイアログボックスを表示します。

「保護」タブを選択してロックに☑チェックが入っているのを確認して「OK」ボタン押します。

これでセルの書式設定の保護タブが初期設定になりました。

2.シートの保護をする

VBE(Visual Basic Editor)を起動して「挿入」→「標準モジュール」を選択して標準モジュールを作成します、作成した標準モジュールのModule1に下のコードをコピーして貼り付けます。

Sub シートの保護()

Range("A1:A10").Select    '編集可能にしたいセルを選択します。
Selection.Locked = False '現在選択されているセル範囲のロックを解除して編集できるようにします。
Selection.FormulaHidden = False '選択されているセル範囲の数式を表示します。
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True 'Excelシート全体を保護します。
ActiveSheet.EnableSelection = xlUnlockedCells       'ロックされたセル範囲の選択をできないようにする。

End Sub

3.シートの保護のプログロムの実行

今回はA1セルからA10セルまでを編集可能にしたいと思います。

エクセルのシート1を表示して「開発タブ」 →「マクロの表示」ボタン → マクロ名(シートの保護)を選択 → [実行] ボタンを押すとプログラムを実行できます。

プログラムを実行後にA1セルからA10セルまでが選択できて、他のセルは選択できなくなっていればシートの保護の設定は完了です。

プログラムの1行目の「Range(“A1:A10”).Select」のところが編集可能にしたいセル範囲ですので、B1からB10を編集可能にしたい場合は「Range(“B1:B10”).Select」に書き換えてプログラムを実行すればOKです。

シートの保護を解除する方法

シート保護を解除するには、Excelのリボンにある「校閲」タブをクリックします。その中の「シート保護の解除」ボタンを押してください。

今回はエクセルVBAがはじめての方が出来るだけわかりやすいように、難しい説明は無しに書かせていただきました。!(^^)!