
' Delete existing ZIP if present If Dir(outputZip) <> "" Then Kill outputZip
CreateObject("Shell.Application").Namespace(ZipPath).CopyHere FilePath This method does not support passwords . You’ll get an unprotected ZIP every time. So we need an alternative. Method 1: Using Command‑Line 7‑Zip (Most Reliable) 7‑Zip is a free, powerful archiver. Its command‑line version 7z.exe supports AES‑256 encryption with passwords. Step 1: Install 7‑Zip Download and install 7‑Zip. The default path is C:\Program Files\7-Zip\7z.exe . Step 2: VBA Code Sub ZipWithPassword_7Zip() Dim FileToZip As String Dim ZipFileName As String Dim Password As String Dim SevenZipPath As String Dim Cmd As String ' --- Configuration --- FileToZip = "C:\Temp\Confidential.xlsx" ' File or folder to zip ZipFileName = "C:\Temp\Confidential.zip" Password = "MyStrongP@ssw0rd" SevenZipPath = "C:\Program Files\7-Zip\7z.exe" excel vba zip file with password
In this post, I’ll walk you through three reliable methods to create password‑protected ZIP files directly from Excel VBA. The standard VBA approach for zipping uses Windows Shell: ' Delete existing ZIP if present If Dir(outputZip)
MsgBox "Protected RAR archive created." End Sub ⚠️ Note: This creates a .rar file, not .zip . For strict ZIP compatibility, stick with 7‑Zip. If you cannot install 7‑Zip but use Windows 10/11, PowerShell’s System.IO.Compression can create ZIPs, but it does NOT support passwords natively . However, you can combine it with .NET’s DotNetZip or SharpCompress – but that requires additional DLLs. The default path is C:\Program Files\7-Zip\7z