2016-09-21 2 views
1

특정 디렉토리의 모든 Excel 파일에 암호를 설정하려고합니다. 다음 코드를 시도했지만 불행히도 암호를 설정하지 않습니다. 파일을 열고 닫을 수 있지만 파일을 수동으로 열 때 암호를 묻지 않습니다.VBA를 사용하여 Excel 파일에 암호 설정

Sub LoopThroughFiles() 
    Dim StrFolder As String 
    Dim StrFile As String 
    StrFolder = "S:\lnb\SecPFM\REPORTS\CRC\201608\" 
    StrFile = Dir(StrFolder & "*xls*") 
    Do While Len(StrFile) > 0 

     Workbooks.Open Filename:=StrFolder & StrFile, Password:="OpenFile" 
     Application.DisplayAlerts = False 
     ActiveWorkbook.Close Savechanges:=True 
     StrFile = Dir 
    Loop 
End Sub 

내가 뭘 잘못 생각하고 있니? 이것은 Excel 2010과 같습니다

답변

0

저장하지 않고 파일 암호를 설정할 수 있다고 생각하지 않습니다.

이 경우에는 SaveAs이 필요합니다.

Option Explicit 

Sub LoopThroughFiles() 
    Dim StrFolder As String 
    Dim StrFile As String 
    Dim wb As Workbook 

    StrFolder = "S:\lnb\SecPFM\REPORTS\CRC\201608\" 
    StrFile = Dir(StrFolder & "*xls*") 

    Do While Len(StrFile) > 0 

     Set wb = Workbooks.Open(Filename:=StrFolder & StrFile) 

     With wb 
      .SaveAs .Path & "\protected_" & .Name, xlExcel12, "OpenFile" 
     End With 

     Application.DisplayAlerts = False 
     ActiveWorkbook.Close Savechanges:=True 
     StrFile = Dir 
    Loop 
End Sub 
새 보호 버전을 만들지 않으려면

당신은 단지 기존 파일을 덮어 쓸 수 있습니다 :

Application.DisplayAlerts = False 

    Do While Len(StrFile) > 0 

     Set wb = Workbooks.Open(Filename:=StrFolder & StrFile) 

     With wb 
      .SaveAs .FullName, , "OpenFile" 
     End With 

     ActiveWorkbook.Close Savechanges:=True 
     StrFile = Dir 
    Loop 

Application.DisplayAlerts = True 
관련 문제