ここから本文です

複数シートの一括保護解除をしたい

rug********さん

2019/7/1520:00:25

複数シートの一括保護解除をしたい

複数のパスワード付き保護シートがあり全て同じパスワード設定されています。
調べてみて現在使用のコードで動作はありませんでしたが、伏せ文字にしたいのでインプットボックスではなくユーザーフォームでこの動作を行いたいと思っているのですがうまくいきません。よろしくお願いします。

現在使用のコードです。
Sub 保護解除()

Dim myPass As Variant
Dim myWS As Worksheet

myPass = InputBox("Password入力")

On Error GoTo エラー
For Each myWS In ThisWorkbook.Worksheets
myWS.Unprotect Password:=myPass
Next

Exit Sub

エラー:
MsgBox (myWS.Name &"のパスワードが違います")
End Sub

閲覧数:
16
回答数:
1

違反報告

ベストアンサーに選ばれた回答

vcx********さん

2019/7/2115:37:35

"現在使用のコードで動作はありませんでしたが" の部分は "動作は「問題」ありませんでしたが" という意味でしょうか?

一例です。
UserForm1 に TextBox1 と CommandButton1 を置き、UserForm1 のモジュールに全て書きます。

Private Sub UserForm_Initialize()
  Me.TextBox1.IMEMode = fmIMEModeDisable
  Me.TextBox1.PasswordChar = "*"
  Me.CommandButton1.Caption = "OK"
End Sub


Private Sub CommandButton1_Click()
Dim ws As Worksheet

On Error GoTo ER:
  For Each ws In ThisWorkbook.Worksheets
      ws.Unprotect Me.TextBox1.Value
  Next ws
  Unload Me
Exit Sub

ER:
  MsgBox "パスが違います。", vbExclamation, "ERROR"
  Me.TextBox1.Value = ""
End Sub

"現在使用のコードで動作はありませんでしたが" の部分は...

  • 質問者

    rug********さん

    2019/7/2115:47:54

    仰る通りです。
    現在のコードで動作は問題ありませんでした。
    現在手元にパソコンがない為、すぐに確認出来ませんが、すごく悩んでいたので回答ありがとうございます!

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2019/7/21 22:20:07

動作確認出来ました。
思い通りの動作で感激です。
ありがとうございました!

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる