2017-02-22 10 views
0
  • 私は.xlsbワークブックのフォルダを持っています。
  • 各ブックには5枚のシートがあり、すべてがパスワードで保護されています。
  • パスワードはすべてのシート、すべてのワークブックに共通です。
  • ワークブック自体にはパスワードがありません。

すべてのブックのすべてのシートの保護を解除し、保護されていないとして保存するにはどうすればよいですか?保護を解除し、すべてのフォルダ内のすべてのバイナリワークブック内のシートとそれらを保存し、保護されていない

私は次のコードを見つけましたが、必要な処理を実行できません(アクティブなワークブックのみで動作します)。このような

Sub unprotect_all_sheets() 
On Error Goto booboo 
unpass = InputBox("password") 
For Each Worksheet In ActiveWorkbook.Worksheets 
Worksheet.Unprotect Password:=unpass 
Next 
Exit Sub 
booboo: MsgBox "There is s problem - check your password, capslock, etc." 
End Sub 
+0

で報告されているhttp://stackoverflow.com/questions/13996740/import-passwordこれを試してみてください-protected-xlsx-workbook-to-r –

+0

Rでは、パスワードで保護されたスプレッドシートを読むために、 'excel.link'の' xl.read.file'を使用できます。 http://stackoverflow.com/questions/34233738/how-to-read-an-xls-file-that-is-encrypted-with-r –

+1

@Bradあなたのリンクは保護に関するもので、保護されていないものです。重複サインを取り消してください。 – user3507584

答えて

0

何か:

はどれシートの保護を解除するために失敗したがすぐに窓

Sub LoopThroughFiles() 
    Dim StrFile As String 
    Dim Wb As Workbook 
    Dim ws As Worksheet 
    Dim strFol As String 
    Dim strPass As String 

    'password 
    strPass = "tested" 

    With Application 
     .ScreenUpdating = False 
     .EnableEvents = False 
     .DisplayAlerts = False 
    End With 

    'folder to work in 
    strFol = "c:\temp\" 

    StrFile = Dir(strFol & "*.xls*") 
    Do While Len(StrFile) > 0 
     Set Wb = Workbooks.Open(strFol & StrFile) 
      For Each ws In Wb.Worksheets 
      On Error Resume Next 
      ws.Unprotect strPass 
      If Err.Number <> 0 Then Debug.Print strFol & StrFile & " " & ws.Name 
      On Error GoTo 0 

     Next 
     Wb.Save 
     Wb.Close 
     StrFile = Dir 
    Loop 

    With Application 
     .ScreenUpdating = True 
     .EnableEvents = True 
     .DisplayAlerts = True 
    End With 
End Sub 
関連する問題