エクセルで様々な計算式などが入っている表を作った時に、誤って計算式などを消されないようにシートの保護設定をしたら、マクロエラーになったことありませんか?
原因は、シートの保護を設定するとユーザーフォームのテキストボックスからの入力もできなくなってエラーになっているので、Protectメソッドを使用してシート保護・解除を自動化すれば解決しますので、使い方をご紹介します。
Protectで保護・Unprotectで解除
エクセルシートの保護をする時に、ワークシートの「校閲」から「シートの保護」で行わずにVBAコードで保護・解除ができるようになります。
この方法ならば、コマンドボタンなどに直接書き込めるので、シートの保護設定をしたからといって、入力・並べ替えなどもできるようになります。
使い方は簡単で、作業開始直前に保護解除(Unprotect)をして、作業終了直前にシートの保護(Protect)をすれば完成なので、既存のVBAコードに付け足すだけです。
Workbookで設定の場合
エクセルファイルを開いたら自動的にシートの保護をする設定方法は、「Microsoft Visual VasicのVBA Project」の中にある、「ThisWorkBook」に下記コードを記述します。
Private Sub Workbook_Open()
Worksheets(“HOME”).Activate
Range(“A1”).Select
ActiveSheet.Protect
UserForm1.Show
End Sub
- エクセルファイルが開いたら
- シート名「HOME」を前面にして作業するシートとする
- セルA1を選択する
- 開いたシートを保護する
- ユーザーフォーム1を表示する
- マクロ記録終了
5行目にActiveSheet.Protectを付け足すだけで完成で、あとは各コマンドボタンをクリックすると最初に保護解除するVBAコードを加えるだけで、マクロエラーから解放されます。
ちなみに、上記VBAコードはパスワード設定や部分許可の設定をしないシンプルな方法です。

ThisWorkBookの場所についてはこちらに記載していますのでご参考下さいませ。


各コマンドボタンの設定
先ほどブックでシートの保護を自動的に設定したので、各コマンドボタンにはすでに書いてあるプログラムの開始前にシートの解除設定をして、プログラムが終了するEnd Subの直前にシートの保護を設定するだけです。
Private Sub CommandButton1_Click()
ActiveSheet.Unprotect
Unload UserForm1
UserForm2.Show
ActiveSheet.Protect
End Sub
- コマンドボタン1がクリックされたら
- 表示中のシートの保護を解除する
- ユーザーフォーム1を閉じる
- ユーザーフォーム2を開く
- 表示中のシートの保護を設定する



このようにするだけで、シートの保護を設定してもプログラム開始直前に解除・実行・保護となるのでコードを書き直したりする必要が無いので必ず使っていますよ。
関連記事
-
エクセル関数とVBAを組み合わせて商品期限切れ通知を表示する方法
小さな会社や個人では、アプリや専用ソフトを使って商品管理とかはコストが見合わず、エクセルで商品管理していませんか? このエクセルによる商品管理でリストの中にあ… -
エクセルシートの保護したらマクロエラーになった時のVBA対処法
エクセルで様々な計算式などが入っている表を作った時に、誤って計算式などを消されないようにシートの保護設定をしたら、マクロエラーになったことありませんか? 原因… -
VBAで1クリックで上書き保存してエクセルファイルを閉じる方法
Excelを使っていて作業が終わったら、上書き保存ボタンを押してファイルを閉じるのが面倒だと思ったことありませんか? たった1クリック1秒でできたら作業効率がアップ…
紅葉スポット
-
奥日光湯滝や湯ノ湖へ東武バスの湯元温泉フリーパス終点の観光名所へ
【紅葉見頃】 10月中旬~10月下旬 紅葉時期の日光なのに空いている穴場スポットの湯滝や湯ノ湖をご存知ですか? 中禅寺湖周辺から戦場ヶ原を通り過ぎてさらに奥へ進む… -
鬼怒川温泉駅からバスで川俣ダムと瀬戸合峡渡らっしゃい吊橋紅葉へ
【紅葉見頃】10月中旬~11月上旬 紅葉を見に日光を訪れて中禅寺湖周辺を目指して、大渋滞や混雑に巻き込まれて大変な思いをした方多いと思いますが、関東エリアの紅葉… -
秩父長瀞紅葉へ不動の埼玉県ナンバーワンの紅葉スポットへ
東京から電車で2時間半ほどで長瀞駅からバスを使わなくても、秩父鉄道で長瀞の各観光スポットを巡ることができるので、車の運転ができなくてもたっぷり楽しめますよ。 … -
フリーパスで10月の茨城紅葉スポットへ
【茨城県内の人気紅葉スポット】 関東地方で紅葉名所といえばなんといっても日光ですが、紅葉シーズンになると平日でもいろは坂は大渋滞なのに休日ともなると日光駅周辺… -
花貫渓谷の汐見滝吊り橋は茨城県人気紅葉スポットでライトアップは幻想的
花貫川沿いに遊歩道が整備されていて、途中に汐見滝吊り橋があり紅葉と一緒ミニられる事で撮影スポットになっていて、茨城県の人気紅葉スポットとして有名です。 紅葉の… -
2023年茨城紅葉スポットへ魅力度再び最下位!空いている穴場へ
紅葉と言えば日光や箱根が有名ですが、あえて茨城県を探すのは混雑や密を避けたいと思ったからですよね。 実は知られていないだけで探してみるとたくさん茨城紅葉スポッ…