'#Language "WWB-COM" 'Begin Description 'Подсветка значимых уровней в таблицах t-проверки для независимых выборок (Independent Samples Test). 'Все ячейки со значениями уровня значимости <= cSigVal будут выделены зелёным цветом. 'Условия: мобильная таблица, к которой применяется скрипт, должна быть выделена. 'Если потребуется, в строке, следующей за символами ######### ниже, можно указать желаемый порог значимости. 'End Description 'Автор: rlevesque@videotron.ca, 29.05.2001 'Посетите мою страницу, посвящённую SPSS: http://www.spsstools.net 'Размещение: http://www.spsstools.ru/Scripts/PivotTables/HighlightSignificantT-TestCells.txt (.sbs). 'Перевод: А. Балабанов, 02.01.2009. 'Проверено: SPSS 24.0. ' ВНИМАНИЕ, ВНИМАНИЕ, ВНИМАНИЕ!!! ' В SPSS 16.0 или более поздней проверьте комментарий #Uses, который расположен ниже. Важно, чтобы он содержал ' корректный путь для того, чтобы работали глобальные процедуры вроде GetFirstSelectedPivot! '#Uses "C:\Program Files\IBM\SPSS\Statistics\23\Samples\Global.wwd" Option Explicit '################## Const cSigVal=.005 '################## Const TextTotalStr ="2-tailed" Const cGREEN = RGB(60, 179, 113) Const cWHITE = RGB(255,255,255) Sub Main Dim strSigVal As String Dim objItem As ISpssItem ' Объект окна результатов. Dim objPivotTable As PivotTable ' Мобильная таблица. Dim bolFoundOutputDoc As Boolean Dim bolPivotSelected As Boolean Dim s_bolCellsSelected As Boolean 'Вызов процедуры GetFirstSelectedPivot для установки ссылки на выделенную мобильную таблицу Call GetFirstSelectedPivot(objPivotTable, objItem, bolFoundOutputDoc, bolPivotSelected) If (bolFoundOutputDoc = False) Or (bolPivotSelected = False) Then 'либо отсутствует окно результатов, либо таблица не выделена Exit Sub End If 'переменная для отслеживания, были ли выделены ячейки в результате поиска s_bolCellsSelected = False Dim objDataCells As ISpssDataCells Dim lngNumRows As Long Dim lngNumColumns As Long Set objDataCells = objPivotTable.DataCellArray ' Цикл по ячейкам. Закрашиваются ячейки, значения в которых меньше или равны cSigVal: Dim objRowLabels As ISpssLabels ' Массив меток строк Set objRowLabels = objPivotTable.RowLabelArray Dim objColLabels As ISpssLabels ' Массив меток столбцов Set objColLabels = objPivotTable.ColumnLabelArray lngNumRows = objDataCells.NumRows lngNumColumns = objDataCells.NumColumns Dim I As Integer, J As Integer 'objItem.Deactivate ###удалено - А.Б. For I = 0 To lngNumRows -1 Dim dummy As Integer For J = 0 To lngNumColumns -1 If InStr (objColLabels.ValueAt(objColLabels.NumRows-1,J), TextTotalStr)> 0 Then If Len(objDataCells.ValueAt (I,J)) > 0 Then If objDataCells.ValueAt (I,J) <= cSigVal Then objDataCells.BackgroundColorAt (I,J) = cGREEN Else objDataCells.BackgroundColorAt (I,J) = cWHITE End If Else objDataCells.BackgroundColorAt (I,J) = cWHITE End If End If Next Next ' деактивация мобильной таблицы и выход 'objItem.Activate ###удалено - А.Б. objItem.Deactivate End Sub