検索

キーワード


【Excel VBA】ワークシートの保護・解除をする方法

  • 公開日:2021-05-18 14:00:21
  • 最終更新日:2021-05-17 11:48:12

はじめに

こんにちは。IMMRです。

例えば、月次に売り上げを報告する下記のような報告書があるとします。


図1 売上報告書(フォーマット)

売上報告書(フォーマット)


そして、この報告書に店舗や売上値を入力します。


図2 売上報告書(数値入力)

売上報告書(数値入力)

本来なら上記のように入力して、報告書を提出しますが、場合によっては下記のようにちょっとキーボードに

手が当たってしまって報告する数値が違う値になってしまうこともあります。


図3 売上報告書(数値入力誤り)

売上報告書(数値入力誤り)


このように手違いで数値をいじってしまうので、保護したいと思うことはあると思います。

ここでは、シートの保護そして、解除の方法を説明していきます。


1.ワークシートを保護する

ワークシートを保護するには、Protectメソッドを使用します。


ワークシートを保護する

ActiveSheet.Protect Password:="パスワード"


現在、参照しているシートを「ActiveSheet」で定義します。

そして、Protectで保護を行いますが合わせて、保護するためのパスワードも記載します。


これにより、保護がかかります。しかし、保護をかけてしまうと修正も出来なくなってしまいます。

修正するには保護を解除しなくてはいけません。

そのため、保護の解除方法も合わせて説明します。


2.ワークシートを保護を解除する

パスワードで保護したワークシートを解除するには、Unprotectメソッドを使用します。


ワークシートの保護を解除する

ActiveSheet.Unprotect Password:="パスワード"


先ほどと同様、参照しているシートを「ActiveSheet」で定義します。

そして、Unprotectで保護の解除を行いますが、Protectで保護した時に使用したパスワードを記載します。

もし、ここで保護した時に使用したパスワードと異なると下記のようなエラーが発生します。


図4 保護解除のエラー

保護解除のエラー


3.ワークシートの保護・解除をするサンプルプログラム

では上記で説明したワークシートの保護および解除をするマクロを作成します。

マクロはサンプルとして下記のように作成しました。


図5 マクロ(売上報告)

マクロ(売上報告)


ボタンは「入力完了」と「修正」の2つにしています。

店舗、売上値を入力して。「入力完了」ボタンを押すと保護がかかります。

修正をする場合は「修正」ボタンを押して、保護を解除してから修正します。


「入力完了」ボタンのサンプルコード

Sub TEST34_1()
    Range("C6") = "入力完了!"
    ActiveSheet.Protect Password:="1234"
End Sub

※パスワードは1234です。

 そして、完了ボタンを押して、保護をしたことがわかるようにセル(C6)に"入力完了"という文字が入力されます。


 注意:Protectdで保護をかけた後で、Range("C6") = "入力完了!"というように文字を入力するとエラーなります。

 


「修正」ボタンのサンプルコード

Sub TEST34_2()
    ActiveSheet.Unprotect Password:="1234"
    Range("C6") = ""
End Sub

※パスワード1234で保護をしたので1234で保護の解除をします。

 また、さきほど、"入力完了"と入力したセル(C6)は初期化(ブランク)されます。


 注意:Unprotectで保護を解除する前にRange("C6") = ""というように文字を入力するとエラーなります。


4.ワークシートの保護・解除をするサンプルプログラムの実行

では、上記で説明したマクロを実行してみようと思います。

まずは、マクロに数値等を入力します。


図6 マクロ(売上報告)値の入力

マクロ(売上報告)値の入力


そして、「入力完了」ボタンを押します。


図7 マクロ(売上報告)実行

マクロ(売上報告)実行


セル(C6)に"入力完了"という文字が入力されました。次に保護がきちん行われるか確認を行います。

再び、売上値を入力するためにセル(C4)をダブルクリックします。

そうすると


図8 マクロ(売上報告)保護状態の入力

マクロ(売上報告)保護状態の入力


修正ができません。保護がしっかり出来ていることが確認できます。

次に修正をするために保護の解除を行います。【図7 マクロ(売上報告)実行】の状態で「修正ボタン」を押します。


図9 マクロ(売上報告)保護解除

マクロ(売上報告)保護解除


セル(C6)に"入力完了"という文字が削除されました。そしてセル(C4)をダブルクリックをします。


図10 マクロ(売上報告)数値の修正

マクロ(売上報告)数値の修正


数値を修正することが出来ました。保護が解除出来ていることが確認できます。


これにより、

ワークシートの保護・解除することができました。


【著者】

Imamura

今まではExcel VBAの開発をしてきました。
開発を主にしたものや他の業務の効率化を目指して行ったものさまざまです。
現在は、他のプログラミング言語に挑戦して、スキルアップを目指しています。

よく読まれている記事