'Начало описания 'Скрипт меняет ширину колонок в редакторе данных так, чтобы она соответствовала 'числу символов в каждой переменной. Минимальные и максимальные значения ширины 'задаются прямо перед инструкцией "Option Explicit". 'Содержимое самих переменных остаётся нетронутым 'Автор: Raynald Levesque, 23.05.2002 'http://www.spsstools.net 'Конец описания ' Определяем минимальную и максимальную ширину колонки Const IntMinLength As Integer = 7 Const IntMaxLength As Integer = 15 Option Explicit Sub Main Dim objDocuments As ISpssDocuments Dim objDataDoc As ISpssDataDoc Dim objSpssInfo As ISpssInfo Dim varName As String Dim varList As String Dim intLength As Integer Dim i As Integer Set objDocuments = objSpssApp.Documents 'Если файл данных открыт, связываем с ним объект ISpssDataDoc If objDocuments.DataDocCount <> 0 Then Set objDataDoc = objDocuments.GetDataDoc(0) objDataDoc.Visible=True Set objSpssInfo = objSpssApp.SpssInfo 'Получаем число переменных Dim varCount As Integer varCount = objSpssInfo.NumVariables If varCount = 0 Then End End If With objSpssInfo For i = 0 To varCount - 1 varName = .VariableAt(i) 'Уберите комментарий со следующей строки, если хотите обработать только строковые переменные 'If .VarType(i) = SpssDataString Then ' Закомментируйте следующую строку, если хотите обработать только строковые переменные If 1=1 Then 'Устанавливаем ширину колонки равной длине переменной '(при ограничениях min и max, заданных выше) intLength = .VarLength(i) If IntMaxLength < .VarLength(i) Then intLength = IntMaxLength If IntMinLength > .VarLength(i) Then intLength = IntMinLength objSpssApp.ExecuteCommands ("VARIABLE WIDTH " & varName & " (" & intLength & ").",True) End If Next End With End If Set objDataDoc = Nothing Set objDocuments = Nothing End Sub