General |
6.16 Zippare files con VBA. (PkZip, Winzip, ...) |
Federico Luciani |
(D) Come posso usare winzip o pkzip da vba per zippare files? (R) La cosa è abbastanza semplice da realizzare. Prima di tutto bisogna procurarsi un software di compressione che può essere lanciato da riga di comando con vari parametri. Quelli che vi consiglio sono: - PkZip 2.50 Command Line for Windows 9x/NT - WinZip 7.0/8.0 (parametri non documentati) - WinZip Command Line Support Add-On BETA A questo punto, da VBA, basta utilizzare la funzione Shell(pathname[,windowstyle]). Di seguito riporto due esempi di utilizzo per la creazione di un file compresso (temp.zip), contenente tutti i files di c:\ Private Sub cmdPkzip_Click() Dim retVal As Variant, strCmd As String strCmd = "C:\pkware\pkzip25.exe -add -max c:\temp.zip c:\*.*" retVal = Shell(strCmd, vbHide) End Sub Private Sub cmdWinzip_Click() Dim retVal As Variant, strCmd As String strCmd = "C:\winzip\winzip32.exe -a -ex c:\temp.zip c:\*.*" retVal = Shell(strCmd, vbHide) End SubNel caso si voglia zippare i files su piu' floppy, allora diventa: Private Sub cmdWinzip_Click() 'Con Winzip 8.0 non serve il parametro -&! (Andrea Bersi) Dim retVal As Variant, strCmd As String strCmd = "C:\winzip\winzip32.exe -a -ex -& a:\temp.zip c:\*.*" retVal = Shell(strCmd, vbHide) End Sub |