プロが教えるわが家の防犯対策術!

エクセルの各シートにかけられた保護パスワードを一つ一つ開かずに、全シート一斉に解除する方法はありませんか?
エクセル2003でシートにデータを記入し、各シートごとにに保護パスワードをかけたのですが、すべてのシートに訂正が発覚しました。
36シートもあるエクセルファイルが8つもあり、シートを一つずつパスワードを解除しては修正し、またパスワードをかけるという気の遠くなるような事態になってしまいました。
全シートを一斉に解除できる方法はありませんか?なお、パスワードはすべて同じです。

A 回答 (3件)

パスワードが「xyz」で、すべてのシートの保護を解除するなら、以下のようなマクロを実行してください。



Sub SAMPLE()
Dim WS As Worksheet
For Each WS In Worksheets
WS.Unprotect Password:="xyz"
Next
End Sub

編集後、まとめて保護したい場合は、上記のUnprotectをProtectにしたマクロを実行することになります。
    • good
    • 0
この回答へのお礼

すごい!の一言です。
ありがとうございました。
ばっちり成功しました。

お礼日時:2011/02/09 23:39

多数のBookがあるとして


他のBookの各シートについてUnprotectしてBookをSave
BK=・・・はBookのあるだけBook名を指定して下さい。
UnprotectするBookと同じディリクトリにPW解除マクロを
記したBookを保存して実行です。

Sub PW解除()
BK = "book1.xls": GoSub PW
BK = "book2.xls": GoSub PW
BK = "book3.xls": GoSub PW
Exit Sub
PW:
FL = ThisWorkbook.Path & "\" & BK
Dim sr
Set sr = CreateObject("Excel.Application")
sr.Workbooks.Open FL, ReadOnly:=False
For i = 1 To sr.Sheets.Count
sr.Sheets(i).Select
sr.ActiveSheet.Unprotect Password:="XXXXXXX"
Next
sr.DisplayAlerts = False
sr.Save
Set sr = Nothing
Return
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。
ちょっと難しかったですが、なんとかできそうです。

お礼日時:2011/02/09 23:41

 今晩は。


VBAでやるのはありでしょうか?
自分はいつも下のようなコードを書いて実行しています。

Sub 全シートUnProtect()
'パスワード解除の場合
For Each MyWorksheet In Worksheets
MyWorksheet.Activate
If ActiveSheet.Name = "Data" Then
ActiveSheet.Unprotect Password:="9999"
Else
ActiveSheet.Unprotect Password:="9999"
End If
Next
End Sub

Sub 全シートProtect()
'パスワード設定の場合
For Each MyWorksheet In Worksheets
MyWorksheet.Activate
If ActiveSheet.Name = "Data" Then
ActiveSheet.Protect Password:="9999", DrawingObjects:=True, _
contents:=True, UserInterfaceOnly:=True
Else
ActiveSheet.Protect Password:="9999", DrawingObjects:=True, _
contents:=True, UserInterfaceOnly:=True
End If
Next
End Sub

VBAの実行方法については、
 エクセルの画面でAltを押しながらF11を押す
 →出てきた画面の左側のツリーの中にある、「ThisWorkbook」(緑色のアイコン)をダブルクリック
 →右の画面に上のコードをそのままコピペ
 →上記の「'パスワード解除の場合 」の所を1回クリック
 →画面の上のツールバーにある再生ボタン(三角形)をクリック
でできます。上記の「9999」を好きなパスワードに書き換えて実行してください。

 少しでもお役に立てれば。
    • good
    • 0
この回答へのお礼

ありがとうございました。
ばっちり成功しました。
すごいワザですね。

お礼日時:2011/02/09 23:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!