1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
'Описание
'Скрипт иллюстрирует использование элемента "список" для отображения переменных 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