'Below goes an example which sequentially opens 17 'zipped files And executes the same Command sequence For 'Each. It Is an SPSS script. 'Rafael Osorio in newsgroup on 2000/1/31 Option Explicit Dim objSpssApp As Object Dim strCommands As String Dim idx As Integer Dim PnadZip, PnadSav, PnadAge Sub Main 'Matrix with name of zipfiles PnadZip = Array ("PNAD76Familia.zip", "Pnad77Familia.zip", "PNAD78Familia.zip", "PNAD81Familia.zip", "PNAD82Familia.zip", "PNAD84Familia.zip", "PNAD85Familia.zip", "PNAD86Familia.zip", "PNAD87Familia.zip", "PNAD88Familia.zip", "PNAD89Familia.zip", "PNAD90Familia.zip", "PNAD92Familia.zip", "PNAD93Familia.zip", "PNAD95Familia.zip") ReDim Preserve PnadZip (17) PnadZip(15) = "PNAD96Familia.zip" PnadZip(16) = "PNAD97Familia.zip" 'Matrix with names of files inside zipfiles PnadSav = Array ("PNAD76Fam.sav", "Pnad77Fam.sav", "PNAD78Fam.sav", "PNAD81Fam.sav", "PNAD82Fam.sav", "PNAD84Fam.sav", "PNAD85Fam.sav", "PNAD86Fam.sav", "PNAD87Fam.sav", "PNAD88Fam.sav", "PNAD89Fam.sav", "PNAD90Fam.sav", "PNAD92Fam.sav", "PNAD93Fam.sav", "PNAD95Fam.sav") ReDim Preserve PnadSav (17) PnadSav(15) = "PNAD96Fam.sav" PnadSav(16) = "PNAD97Fam.sav" 'Matrix with var name that changes through years PnadAge = Array ("v2105", "v173", "v2805", "v805", "v805", "v805", "v805", "v805", "v805", "v805", "v805", "v805", "v03034", "v03034", "v03034") ReDim Preserve PnadAge (17) PnadIdade(15) = "v8005" PnadIdade(16) = "v8005" Set objSpssApp = CreateObject("SPSS.Application") For idx = 0 To 16 'Call and run pkunzip Shell("C:\\pkunzip c:\\pnadsfamilia\\" & PnadZip(idx) &" " &PnadSav(idx) &" C:\\pnadsfamilia") 'wait while pkunzip unzips, PIF config should be set to Close window after finished While idx = idx On Error GoTo desvio AppActivate "pkunzip" Wend desvio: 'Puts appropriate GET command on string strCommands = "GET FILE = 'c:\\pnadsfamilia\\" &pnadsav(idx) &"' /KEEP pesfam tpfamfp sitdom sitfam nfd paren nagreg npensi nempre npaemp " PnadAge(idx) &" ." 'Execute string objSpssApp.ExecuteCommands strCommands, False 'Wait processing While objSpssApp.IsBusy Wend 'Here you make a call to another sub with desired commands, Or Write them here strCommands = "NEW FILE." objSpssApp.ExecuteCommands strCommands, False While objSpssApp.IsBusy Wend 'erases unzipped file Kill "c:\\pnadsfamilia\\" &PnadSav(idx) Next idx End Sub