Search

  毎日にもっと楽~を! BLOG Tokyo

2007年7月27日

【EXCEL】フォルダ内のブックのパスワード一括解除

最近は情報の漏洩とかでエクセルにもパスワードをかける場合が多い。しかし、最終的には解除しなければいけないんだが、100個くらいもあると結構面倒くさい。開くときにパスワードを入力、保護を解除するときにパスワード入力だ。そこで、一括で出来ないかいろいろ工夫してみた。ネットで調べるとunprotectメソッドが主流だが、これだと、ツール-オプション-セキュリティ-パスワードに設定されているものを解除することは不可能だ。

Sub パスワード一括解除()

Dim myFilename As String
Dim myPath As Variant
Dim myPassword As String


myPassword = "qyo0625"
myPath = "C:\unPassword\"

myFilename = Dir("C:\unPassword\*.xls")

Do Until myFilename = ""

Workbooks.Open Filename:=myPath & myFilename, Password:=myPassword

ActiveWorkbook.Password = ""
'ActiveWorkbook.Unprotect (myPassword) ブックの保護のみ場合は有効

ActiveWorkbook.Save
Application.DisplayAlerts = False 'メッセージを出さない
ActiveWorkbook.Close
myFilename = Dir()

Loop

End Sub

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

UnProtect メソッド

指定された文書の保護を解除します。文書が保護されていない場合にこのメソッドを使用すると、エラーが発生します。

expression.UnProtect(Password)

expression 必ず指定します。Document オブジェクトを表すオブジェクト式を指定します。

Password 省略可能です。バリアント型 (Variant) の値を指定します。文書を保護するときに設定したパスワードの文字列を指定します。パスワードでは大文字と小文字が区別されます。文書がパスワードで保護されていて、指定されたパスワードが正しくない場合、パスワードを求めるダイアログ ボックスが表示されます。
使用例

次の使用例は、パスワードとして "Blue" を使用して、作業中の文書の保護を解除します。文書にパスワードが指定されている場合は、パスワードを求めるダイアログ ボックスが表示されます。

If ActiveDocument.ProtectionType <> wdNoProtection Then
ActiveDocument.Unprotect Password:="Blue"
End If

次の使用例は、作業中の文書の保護を解除します。その後、文字列を挿入し、文書を保護して変更履歴だけを変更できるようにします。

Set aDoc = ActiveDocument
If aDoc.ProtectionType <> wdNoProtection Then
aDoc.Unprotect
Selection.InsertBefore "第 6 部門"
aDoc.Protect Type:=wdAllowOnlyRevisions, Password:="Blue"
End If



Bookmark and Share


編集長のおすすめの一冊!2010

comments

マクロは素晴らしいです。
普段経理の皆さんはマクロを使うことが難しいと思います。
簡単に一括でフォルダ内のすべてのExcelを保護解除出来る方法もありますよ。
http://superdbtool.blog.jp/archives/1000095487.html

comment form

(BLOG Tokyo にはじめてコメントされる場合、不適切なコメントを防止するため、掲載前に管理者が内容を確認しています。適切なコメントと判断した場合コメントは直ちに表示されますので、再度コメントを投稿する必要はありません。)

comment form