[[20210805153321]] 『ブック内全シートの一括保護解除』(ゆうた) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ブック内全シートの一括保護解除』(ゆうた)

Sub 保護解除2()

    On Error GoTo ERR_EXIT

    Dim ws As Worksheet

    For Each ws In Worksheets

    sht.Unprotect

  Next

ERR_EXIT:

End Sub

ブック内の全シートに対して、保護解除を実施したいのですが
上記式では実行されず。
問題点をご教示頂けないでしょうか。

宜しくお願い致します。

< 使用 Excel:unknown、使用 OS:Windows10 >


もともとProtectContentsされてないシートでエラーになりループ脱出してしまう、とか?
(かたつむり) 2021/08/05(木) 15:41

 sht.Unprotect→ws.Unprotect
Option Explicitが有れば判る事です
(どん) 2021/08/05(木) 15:44

ありがとうございます。
確認不足で申し訳ありませんでした。

実行は出来たのですが、パスワードを各シート毎に入力しなければならなく

※各シートは全て同じパスワードになっています。

一括でパスワード入力までは出来ないものでしょうか。
(ゆうた) 2021/08/05(木) 15:51


ご参考まで

https://docs.microsoft.com/ja-jp/office/vba/api/excel.worksheet.unprotect
(ハヤシライス) 2021/08/05(木) 15:53


[[20210805123044]] 『VBAでシート保護解除を入力ウィンドウ表示させたい』(ゆうた)
↑のトピックとまとめて。

単純に↓のようにしてみてはどうですか?

 (1)InputBoxでパスワードをユーザーに入力してもらう
 (2)各シートを巡回して保護解除する
 (3)(2)が失敗(実行時エラー)になったら、パスワードが違うというメッセージを出して処理中止

たとえばこんな感じ

    Sub 研究用()
        Dim i As Long
        Dim パスワード As String

        パスワード = InputBox("パスワード?")

        On Error GoTo エラートラップ
        For i = 1 To Worksheets.Count
            Worksheets(i).Unprotect Password:=パスワード
        Next i
    Exit Sub

    エラートラップ:
        MsgBox "パスワードが違います"

    End Sub

(もこな2) 2021/08/06(金) 08:31


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.