エクセルで楽々校務

学校現場で使えるエクセルファイルや小技の紹介をしています。掘り出し物があるかもしれません。あと、今までの実践での疑問点もつぶやきます。

VBA:全シート保護、解除の両方を一気にできるマクロ

VBAマクロとの出会いは、全シートを一括保護、解除するマクロでした。

★①どんな時に使うか

エクセルで通信簿を作っています。数式に不具合があり、シート保護を全部外して編集したいです。35枚のシートを一気に保護したり保護解除したりしたいです。1枚ずつ操作するなんて気が遠くなります。

★②マクロ(標準モジュールに貼ります)

Sub 全シート一括保護と解除()

Dim Sh As Object

Application.ScreenUpdating = False

If ActiveSheet.ProtectContents = False Then

On Error Resume Next

For Each Sh In Sheets

Sh.Protect

Next Sh

ActiveSheet.Activate

MsgBox "保護しました。"

Else

On Error Resume Next

For Each Sh In Sheets

Sh.Unprotect

Next Sh

ActiveSheet.Activate

MsgBox "保護解除しました。"

End If

End Sub

★③「図形」でボタンを描き、右クリックで「マクロを登録」すると、

ボタンを押すと作動します。

5~10分くらいかかる作業が

1秒かからずできます。

シートの保護、解除は

1シートずつしかできないので

かなり有用です。

★④サンプルファイル

---------------------------------------

初めて仕事で使ったのが、

全シートの保護/解除のマクロでした。

ネットでよく紹介されているのは、

多分、保護と解除が別々だと思います。

ボタンが2つになるので、保護と解除を合体させて、処理出来たらメッセージが出るようにしてみました。

無駄な行があるかもしれませんが、

動くということでご勘弁を。

では、また