エクセルで様々な計算式などが入っている表を作った時に、誤って計算式などを消されないようにシートの保護設定をしたら、マクロエラーになったことありませんか?
原因は、シートの保護を設定するとユーザーフォームのテキストボックスからの入力もできなくなってエラーになっているので、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で1クリックで上書き保存してエクセルファイルを閉じる方法
Excelを使っていて作業が終わったら、上書き保存ボタンを押してファイルを閉じるのが面倒だと思ったことありませんか? たった1クリック1秒でできたら作業効率がアップ… -
ファイルの操作
エクセルシートの保護したらマクロエラーになった時のVBA対処法
エクセルで様々な計算式などが入っている表を作った時に、誤って計算式などを消されないようにシートの保護設定をしたら、マクロエラーになったことありませんか? 原因…
紅葉スポット
-
旧碓氷峠見晴台へバスで旧軽井沢駅から紅葉展望へ滞在時間20分
軽井沢と言えば長野県ですが、旧碓氷峠見晴台は長野県と群馬県の県境に位置するのですが、群馬県の観光スポットというよりは、長野県ですね。 ここ旧碓氷峠見晴台からは… -
白馬岩岳の絶景「三段紅葉」へ長野駅からバスで滞在時間140分
10月下旬ごろ~11月上旬になるとテレビなどでよく話題になる絶景のビューポイントで、北アルプスの山頂が雪化粧をして赤く色づいた山麓、そして山のふもとはまだ緑色が… -
黒山三滝では日本観光百選のパワースポットで滝行もできる紅葉名所
【紅葉見頃】 黒山三滝は、男滝(おだき)・女滝(めだき)・天狗滝(てんぐだき)の3つの滝からなり、滝に打たれる修行を行う滝開きまであります。 その為か、パワースポッ… -
四方木ふれあい館から四方木不動滝の紅葉絶景へ安房天津駅からバス
県道から山道に入り林の中にある秘境で、水量によって左右に分かれることから夫婦滝とも呼ばれています。 山深い大自然の中を散策していく四方木不動滝と紅葉がひそかな… -
日光東照宮へバスで日光駅から世界遺産の紅葉へ滞在時間5時間
【紅葉見頃】10月下旬~11月上旬 2017年に約半世紀ぶりの大修理を終え、1999年に世界遺産に登録されている、日光東照宮・日光山輪王寺・日光二荒山神社等の建造物群と… -
ムーミンをイメージしたトーベ・ヤンソンあけぼの子どもの森公園の紅葉
入間市と飯能市の境界にある自然公園で、ムーミンの世界をイメージして作られてライトアップも盛んに行われて、幻想的な世界を体験することができます。 また、秋の紅葉…