'Описание 'Скрипт иллюстрирует использование элемента "список" для отображения переменных SPSS. 'Программа просто выводит имя выбранной переменной как сообщение пользователю. 'Конец описания Option Explicit Sub Main 'Во-первых, получим список переменных. Это свойство объекта Info. Dim objInfo As ISpssInfo 'будем хранить имена переменных в этом массиве Dim strVariables() As String 'нам потребуется знать число переменных Dim intNumVariables As Integer 'индексная переменная цикла Dim i As Integer 'сделаем "красиво": отобразим имя файла данных Dim strFilePath As String Set objInfo = objSpssApp.SpssInfo 'переменные в массиве будут пронумерованы от 0 до .NumVariables - 1 intNumVariables = objInfo.NumVariables If intNumVariables > 0 Then 'устанавливаем размер массива по числу переменных ReDim strVariables(intNumVariables - 1) 'читаем имена переменных в массив For i = 0 To intNumVariables - 1 'если хотим, можем работать не с именами, а с метками, либо и с теми и с другими разом strVariables(i) = objInfo.VariableAt(i) 'strVariables(i) = objInfo.VariableLabelAt(i) 'strVariables(i) = objInfo.VariableAt(i) & ": " & objInfo.VariableLabelAt(i) Next Else ReDim strVariables(0) strVariables(0) = "(Нет данных)" End If 'путь к файлу strFilePath = objSpssApp.Documents.GetDataDoc(0).GetDocumentPath 'если файлу ещё не назначено имя If strFilePath = "" Then strFilePath = "(Безымянный)" End If 'Определим и используем диалоговое окно. 'Чтобы отредактировать диалоговое окно, поместите курсор между строками 'Begin Dialog и End Dialog и вызовите Dialog Editor. 'По умолчанию редактор диалогов создаёт шаблон с именем массива ListArray() 'в качестве параметра для списка ListBox; мы заменили его на имя нашего массива - strVariables. Begin Dialog UserDialog 400,203 OKButton 280,175,100,21 GroupBox 10,7,380,154,strFilePath,.GroupBox1 ListBox 20,21,360,140,strVariables(),.ListBox1 End Dialog Dim dlg As UserDialog 'По умолчанию будет выбрана переменная с индексом 0 dlg.ListBox1 = 0 'Эта команда вызывает диалог. Dialog dlg 'отображение выбора пользователя: выбранный индекс содержится в dlg.ListBox1 MsgBox "Выбрали переменную """ & strVariables(dlg.ListBox1) & """", _ vbInformation, "Список переменных - Демо" 'Внимание: чтобы включить символ " в строку надо набрать его дважды End Sub