'Описание 'Скрипт проходит по всему содержимому открытого рабочего окна результатов 'и у каждого найденного интерактивного графика меняет фон 'на заданный при вызове скрипта, например, на жёлтый. 'Конец описания 'Код решения: 41963, создано: 4.03.2004 'Продукт: SPSS Версия: 'Краткая характеристика: скрипт, меняющий цвет фона для всех интерактивных графиков в окне результатов. 'Полная характеристика: Я использую SPSS для Windows. У меня есть файл результатов, содержащий как 'сводные таблицы, так и интерактивные графики. Для каждого такого графика я хотел бы поменять фон. 'Как это сделать автоматически? 'Краткая характеристика решения: вам должен помочь следующий скрипт. 'Полная характеристика решения: 'Вам должен помочь следующий скрипт. Выделите скрипт, приведённый ниже и выберите меню Edit->Copy. 'Далее, меню File->New->Script. Нажмите "Отмена". Удалите весь текст в окне. Выберите меню Edit->Paste. 'Далее, меню File->Save As и сохраните скрипт, используя имя, вроде 'ПоменятьЦветФона.sbs'. 'Выйдите из окна скрипта. 'Убедитесь, что в окне результатов есть хотя бы один интерактивный график. Выберите меню Utilities->Run Script. 'Найдите только что сохранённый скрипт. Выберите Run. Вы должны заметить, что у каждого интерактивного графика 'фон сменился на жёлтый. 'Посмотрите в конце скрипта, как можно задать желаемый цвет фона. 'Примеч.: можно также использовать константы, такие, как vbYellow, vbBlack, vbGreen и т.д. - Ray Option Explicit Sub Main Dim objOutputDoc As ISpssOutputDoc Dim objOutputItems As ISpssItems Dim objOutputItem As ISpssItem Dim objSPSSIGraph As ISpssIGraph Dim objIgraph As ISpssIGraph Set objOutputDoc = objSpssApp.GetDesignatedOutputDoc 'Получаем ссылку на все элементы окна результатов и пробегаем по ним в поисках интерактивных графиков Set objOutputItems = objOutputDoc.Items() Dim intItemCount As Integer For intItemCount = 0 To objOutputItems.Count - 1 Set objOutputItem = objOutputItems.GetItem(intItemCount) If objOutputItem.SPSSType = SPSSIGraph Then Set objIgraph = objOutputItem.Activate Set objIgraph = objOutputItem.GetIGraphOleObject Call ChangeBackgroundColor (objIgraph) objOutputItem.Deactivate End If Next End Sub Sub ChangeBackgroundColor (objIgraph As ISpssIGraph) Dim MyDataRegion As ISpssIGraphDataRegion Set MyDataRegion = objIgraph.GetDataRegion With objIgraph.GetDataRegion 'Здесь мы меняем фон на жёлтый. 'Для замены на нужный вам цвет 'используйте перечень цветов с их кодами, 'данный ниже. .GetArea.BackgroundColor = RGB(255,255,0) 'Коды цветов 'За цветом следуют коды в формате RGB 'Чёрный 0, 0, 0 'Синий 0, 0, 255 'Голубой 0, 255, 255 'Зелёный 0, 255, 0 'Ярко-красный 255, 0, 255 'Красный 255, 0, 0 'Белый 255, 255, 255 'Жёлтый 255, 255, 0 End With 'Всегда перерисовываем график, чтобы увидеть результаты objIgraph.Redraw End Sub