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
'Begin Description
'Скрипт заменяет подпись "Page Title" (заголовок страницы) в колонке "дерева" результатов (слева в окне выдачи)
'на содержимое этого заголовка из раздела самих результатов (справа в окне выдачи).
'Это удобно для быстрой навигации по файлу выдачи: можно ориентироваться на заголовки,
'которые сам пользователь определил через синтаксис.
'Условия: документ выдачи (Output) должен быть открыт.
'Ограничения: перед запуском скрипта вам нужно, чтобы был выполнен синтаксис,
'содержащий в себе несколько команд TITLE (определение заголовка страницы).
' Например:
' TITLE="*** Начинаем чистку данных".
' (какой-то синтаксис)
' TITLE="*** Слияние с основным файлом данных".
'End Description

'Автор: Raynald Levesque, 01.09.2002.
'http://www.spsstools.ru

'Перевод: А. Балабанов, 19.11.2008.
'Проверено: SPSS 15.0.0. При работе с кириллическими шрифтами в заголовках (как в примере выше) скрипт работает
' некорректно: при замене "Page Title" на заголовок вместо кириллических символов появляются пробелы. Требует коррекции. Примеч. перев.

Option Explicit

Sub main
	Call ChangePageTitles
End Sub


Sub ChangePageTitles()
' Подпись "Page Title" в дереве навигации заменяется содержимым заголовка страницы из правой части окна выдачи
' Процедура применяется к текущему окну результатов (окну назначения, designated output window)

Dim objOutputDoc As ISpssOutputDoc
Dim objOutputItems As ISpssItems
Dim objOutputItem As ISpssItem

Dim strTitle As String
Dim cnt As Integer

On Error GoTo Oopps

'Получение ссылок на текущий документ выдачи и коллекцию объектов в нём
Set objOutputDoc = objSpssApp.GetDesignatedOutputDoc
Set objOutputItems = objOutputDoc.Items

For cnt = 0 To objOutputItems.Count - 1
	Set objOutputItem = objOutputItems.GetItem(cnt)
	If objOutputItem.SPSSType = SPSSPageTitle Then
		strTitle = objOutputItem.ActivateText.Text
		objOutputItem.Deactivate
		objOutputItem.Label = strTitle 'UCase(strTitle)
	End If
Next
Exit Sub

Oopps:
	MsgBox Err.Number & " " & Err.Description	   'в случае ошибки: информация пользователю
	Debug.Print Err.Number & " " & Err.Description 'информация для отладки
End Sub