'Ниже даётся пример того, как программно можно последовательно открыть '17 архивированных .zip-файлов и выполнить для каждого из них какие-то команды. 'Это скрипт для SPSS. 'Автор: Rafael Osorio, опубликовано в новостной группе SPSS 31.01.2000 Option Explicit Dim objSpssApp As Object Dim strCommands As String Dim idx As Integer Dim PnadZip, PnadSav, PnadAge Sub Main 'Матрица с именами .zip-файлов 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" 'Матрица с именами соответствующих .sav-файлов, вместо .zip. 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" 'Матрица имён переменных, которые специфичны для каждого из файлов '(т.е. в каждом файле есть 1 переменная с уникальным именем, остальные переменные - общие для всех файлов) 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 'Вызываем распаковщих архива (он должен находиться в указанной ниже папке) Shell("C:\\pkunzip c:\\pnadsfamilia\\" & PnadZip(idx) &" " &PnadSav(idx) &" C:\\pnadsfamilia") 'Ждём, пока распаковка завершится; Соответствующий .pif-файл должен быть настроен на то, 'чтобы закрыть окно DOS по завершении While idx = idx On Error GoTo desvio AppActivate "pkunzip" Wend desvio: 'Составляем подходящую команду для SPSS strCommands = "GET FILE = 'c:\\pnadsfamilia\\" &PnadSav(idx) &"' /KEEP pesfam tpfamfp sitdom sitfam nfd paren nagreg npensi nempre npaemp " PnadAge(idx) &" ." 'Выполняем команду objSpssApp.ExecuteCommands strCommands, False 'Ждём, пока выполнится While objSpssApp.IsBusy Wend 'Далее можно вызвать процедуру, которая запустит нужные команды обработки файла, 'либо написать эти команды прямо здесь. Так, например: strCommands = "NEW FILE." objSpssApp.ExecuteCommands strCommands, False While objSpssApp.IsBusy Wend 'удаляем распакованный файл, переходим к обработке следующего. Kill "c:\\pnadsfamilia\\" &PnadSav(idx) Next idx End Sub