' Определение для каждой переменной макроса, который содержит метку этой переменной ' Автор: Raynald Levesque, 21.06.2000, rlevesque@videotron.ca ' Условия : в редакторе данных открыт набор данных ' Результаты : для каждой переменной, чьё имя включает до 8 символов, создаётся макрос с именем, ' состоящим из знака "!" и имени самой переменной (например, для ' переменной qtop1 макрос будет именоваться как !qtop1) ' Выполнение макроса !qtop1 будет эквивалентно подставлению в соответствующее ' место синтаксиса метки переменной qtop1. ' Инструкции : Выполните этот скрипт, после чего добавьте в начало вашего файла синтаксиса ' следующую строку (возможно, потребуется изменить путь): ' INCLUDE "c:\\temp\\variable label macro.sps" ' Этим вы загрузите соответствующие макросы в память SPSS, они будут готовы к исполнению. ' Эта возможность удобна, например, для распечатки меток переменных в ' заголовках (см. подкоманды TITLE) таблиц или графиков. 'Желательные усовершенствования: при формировании макроса для переменных с именами в 8 символов скрипт 'должен заменять на символ "!" первый или последний символ имени (по выбору пользователя). ' Для современных версий SPSS желательным является усовершенствование по работе с именами, длиннее, чем 8 символов - примеч. перев. ' Перевод: А. Балабанов, 14.11.2008. ' Проверено: SPSS 15.0.0. Option Explicit Sub Main Dim objSPSSInfo As ISpssInfo,ValueLabels() Dim NumVars As Long,I As Long,J As Long, VarName As String, VarLabel As String Set objSPSSInfo = objSpssApp.SpssInfo NumVars=objSPSSInfo.NumVariables-1 Open "c:\\temp\\variable label macro.sps" For Output As #1 For I=0 To NumVars VarName= objSPSSInfo.VariableAt(I) If Len(VarName)<8 Then VarLabel= objSPSSInfo.VariableLabelAt(I) If Len(varlabel)=0 Then varlabel=varname End If Print #1, "DEFINE !" & Varname & "() " & VarLabel & " !ENDDEFINE." End If Next I Close #1 End Sub