エクセルで様々な計算式などが入っている表を作った時に、誤って計算式などを消されないようにシートの保護設定をしたら、マクロエラーになったことありませんか?
原因は、シートの保護を設定するとユーザーフォームのテキストボックスからの入力もできなくなってエラーになっているので、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コードはパスワード設定や部分許可の設定をしないシンプルな方法です。
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
ThisWorkBookの場所についてはこちらに記載していますのでご参考下さいませ。
![](https://tripbowl.net/wp-content/uploads/2018/07/84b2433e779fb853675f85e60a9476e8-300x200.jpg)
![](https://tripbowl.net/wp-content/uploads/2018/07/84b2433e779fb853675f85e60a9476e8-300x200.jpg)
各コマンドボタンの設定
先ほどブックでシートの保護を自動的に設定したので、各コマンドボタンにはすでに書いてあるプログラムの開始前にシートの解除設定をして、プログラムが終了するEnd Subの直前にシートの保護を設定するだけです。
Private Sub CommandButton1_Click()
ActiveSheet.Unprotect
Unload UserForm1
UserForm2.Show
ActiveSheet.Protect
End Sub
- コマンドボタン1がクリックされたら
- 表示中のシートの保護を解除する
- ユーザーフォーム1を閉じる
- ユーザーフォーム2を開く
- 表示中のシートの保護を設定する
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
このようにするだけで、シートの保護を設定してもプログラム開始直前に解除・実行・保護となるのでコードを書き直したりする必要が無いので必ず使っていますよ。
関連記事
-
エクセルシートの保護したらマクロエラーになった時のVBA対処法
エクセルで様々な計算式などが入っている表を作った時に、誤って計算式などを消されないようにシートの保護設定をしたら、マクロエラーになったことありませんか? 原因… -
エクセル関数とVBAを組み合わせて商品期限切れ通知を表示する方法
小さな会社や個人では、アプリや専用ソフトを使って商品管理とかはコストが見合わず、エクセルで商品管理していませんか? このエクセルによる商品管理でリストの中にあ… -
VBAで1クリックで上書き保存してエクセルファイルを閉じる方法
Excelを使っていて作業が終わったら、上書き保存ボタンを押してファイルを閉じるのが面倒だと思ったことありませんか? たった1クリック1秒でできたら作業効率がアップ…
紅葉スポット
-
ムーミンをイメージしたトーベ・ヤンソンあけぼの子どもの森公園の紅葉
入間市と飯能市の境界にある自然公園で、ムーミンの世界をイメージして作られてライトアップも盛んに行われて、幻想的な世界を体験することができます。 また、秋の紅葉… -
日光穴場!中禅寺湖展望台へ紅葉の中禅寺湖からバスで滞在時間30分
【紅葉見頃】10月中旬~11月上旬 紅葉の見頃となる10月中旬~11月上旬になると、いろは坂から延々華厳の滝や竜頭の滝までとにかく大渋滞して混雑が当たり前ですが、い… -
黒山三滝では日本観光百選のパワースポットで滝行もできる紅葉名所
【紅葉見頃】 黒山三滝は、男滝(おだき)・女滝(めだき)・天狗滝(てんぐだき)の3つの滝からなり、滝に打たれる修行を行う滝開きまであります。 その為か、パワースポッ… -
日光自然博物館へバスで日光駅から紅葉景色へ滞在時間50分
【紅葉見頃】10月中旬~11月下旬 中禅寺湖から竜頭の滝や戦場ヶ原方面と反対方向に行くと、中禅寺湖を一望できる半月山展望台と中禅寺湖展望台があり、その途中の中禅… -
日光東照宮へバスで日光駅から世界遺産の紅葉へ滞在時間5時間
【紅葉見頃】10月下旬~11月上旬 2017年に約半世紀ぶりの大修理を終え、1999年に世界遺産に登録されている、日光東照宮・日光山輪王寺・日光二荒山神社等の建造物群と… -
無料で色づいたの紅葉トンネルを散策できる清水公園の紅葉絶景へ
自然公園内に春・夏・秋と季節ごとに楽しめる約500種類以上の花々やがある「花ファンタジア」「アスレチック」「バーベキュー」「キャンプ場」と様々な施設が整った公園…