You are on page 1of 7

Programacin con Visual Basic para Aplicaciones en SPSS

Pgina 1 de 7

Tema 4:

Programacin con Visual Basic para Aplicaciones en SPSS


SPSS se puede programar con dos lenguajes de programacin:

Lenguaje de rdenes (*.sps) Lenguaje de procesos (*.sbs)

Los procesos de SPSS son programas que utilizan el lenguaje de programacin Visual Basic para Aplicaciones (VBA). Estos programas interactan con SPSS usando los objetos disponibles para la aplicacin estadstica. Dado que estos objetos utilizan la tecnologa OLE de Microsoft (Object Linking and Embedding), pueden usarse dentro de las macros de Word o Excel o dentro de cualquier lenguaje de programacin como Visual Basic, C++ o Delphi. Como ya es conocido, los lenguajes de programacin orientados a objetos se basan en la utilizacin de tales objetos, que pueden verse como contenedores de datos y cdigo. Los objetos se definen mediante clases y las aplicaciones interactan con ellos utilizando sus propiedades (permiten a una aplicacin recuperar y/o cambiar los datos de los objetos) y mtodos (acciones que se programan para que las realice el objeto). Es posible combinar archivos de procesos y de rdenes para obtener una mayor flexibilidad, ejecutando un proceso desde un fichero de rdenes o incluyendo las rdenes de SPSS dentro de un proceso. Sin embargo, un importante problema al trabajar de este modo, es que si se define una orden para llamar al proceso desde dentro de un fichero de rdenes de SPSS, el proceso ser ejecutado cuando finalice la ejecucin del fichero de rdenes. En el caso contrario ocurre lo mismo, cuando un proceso llama a las rdenes de SPSS; tales rdenes se ejecutarn slo cuando haya finalizado la ejecucin del proceso.

4.1. Visual Basic para Aplicaciones


SPSS permite utilizar el lenguaje de programacin Visual Basic para Aplicaciones (VBA) para operar con las caractersticas del entorno SPSS. Existen un amplio nmero de programas incluidos en la distribucin de SPSS y que pueden resultar tiles. Por ejemplo, existe un programa que permite cambiar el texto 'Total' de una tabla, de manera que aparezca con negrita y en tono azul. El programa contiene comentarios que indica como cambiarlo de manera que se pueda encontrar el texto 'Total' y ponerlo con otro formato y otro color. Son muy pocos los conceptos que habra que manejar para utilizar tales programas de SPSS. VBA opera sobre objetos, por lo que puede referirse a entidades virtuales y definibles del entorno de SPSS. Todo en una aplicacin de SPSS, desde una celda a la tabla completa son objetos de SPSS, algunos de los cuales se resumen en el siguiente cuadro.

file://C:\Documents and Settings\Yolanda\Mis documentos\Facultad\Computacional\...

15/10/2008

Programacin con Visual Basic para Aplicaciones en SPSS

Pgina 2 de 7

Figura 4.1.1: Clases de objetos de SPSS

Los procesos funcionan gestionando los objetos mediante propiedades y mtodos. Por ejemplo, las tablas son una clase de objetos. Con los objetos de esta clase, se puede utilizar el mtodo SelectTable para seleccionar todos los elementos de la tabla y emplear la propiedad TextColor para cambiar el color del texto seleccionado. Adems, cada una de estas clases posee propiedades y mtodos especficos asociados a ella. El conjunto de todas las clases (o tipos) de objetos se denomina biblioteca de tipos de SPSS. Otros dos conceptos claves en VBA son los mtodos y las propiedades. Los mtodos se refieren a las operaciones que pueden realizarse sobre un objeto. Otro caso es ResizeColumn, que es un mtodo que modifica la anchura de una columna en una tabla. Las celdas en una tabla tienen propiedades tales como anchura, altura y color, que pueden cambiarse con diversos mtodos. Una de tales propiedades es TexFontAt, que devolver el tipo de fuente en una celda definida por el usuario. La utilizacin de objetos es un proceso que consta de dos fases. En primer lugar, se crea una referencia al objeto (que se denomina obtencin del objeto). Despus, se utilizan sus propiedades y mtodos para realizar algo. Se obtienen objetos explorando la jerarqua de objetos y utilizando en cada paso propiedades o mtodos de los objetos superiores en la jerarqua para obtener los objetos ubicados por debajo. Por ejemplo, para obtener un objeto de tabla, primero debe obtener el documento de resultados que contiene la tabla y, despus, las componentes de ese documento de resultados.

file://C:\Documents and Settings\Yolanda\Mis documentos\Facultad\Computacional\...

15/10/2008

Programacin con Visual Basic para Aplicaciones en SPSS

Pgina 3 de 7

Cada objeto que se obtiene se almacena en una variable (teniendo claro que lo que realmente se almacena en la variable es una referencia al objeto). A menudo, uno de los primeros pasos en la creacin de un proceso consiste en declarar variables para los objetos que se van a necesitar. Por ejemplo, supongamos que seleccionamos un programa referente a una tabla. Para ejecutarlo, primero activaramos la tabla que deseamos modificar haciendo click sobre ella. Para ejecutar las modificaciones realizadas, se hace click sobre el icono de la barra de herramientas con una flecha verde.

Figura 4.1.2: Programa VBA para la creacin de tablas en SPSS

Es posible tambin el camino inverso, es decir, se pueden utilizar objetos de SPSS para trabajar con Visual Basic, pero este aspecto no lo trataremos aqu, si bien el procedimiento es muy similar al que describimos.

4.2. Programas VBA incluidos en SPSS


Entre los diversos programas incluidos en SPSS, podemos destacar los siguientes:

Ejecutar casos no seleccionados. Repite un anlisis factorial o discriminante utilizando los casos no seleccionados en un anlisis anterior. Antes de ejecutar el proceso se debe seleccionar una tabla Notas producida por una ejecucin anterior de Factor o de Discriminante.

Cambiar significacin a p en las etiquetas de columna de las tablas. Se debe seleccionar la tabla antes de ejecutar el proceso.

file://C:\Documents and Settings\Yolanda\Mis documentos\Facultad\Computacional\...

15/10/2008

Programacin con Visual Basic para Aplicaciones en SPSS

Pgina 4 de 7

Limpiar navegador. Elimina todas las tablas y las notas de un documento de resultados. Antes de ejecutar el proceso el documento debe estar abierto en la ventana del Visor designada.

Insertar estadsticos de una tabla de estadsticos de frecuencias como notas al pie en la tabla de frecuencias correspondiente para cada variable. Antes de ejecutar el proceso se debe seleccionar la tabla de estadsticos de frecuencia.

Aplicar el formato negrita y el color azul a cualquier fila, columna o capa de datos con la etiqueta Total en una tabla pivote. Se debe seleccionar la tabla antes de ejecutar el proceso.

Informe de medias. Extrae informacin de una tabla y escribe los resultados en varios archivos de resultados ASCII. Antes de ejecutar el proceso se debe seleccionar la tabla Medias.

Eliminar etiquetas. Elimina todas las etiquetas de fila y columna de una tabla. Se debe seleccionar la tabla antes de ejecutar el proceso.

Volver a ejecutar rdenes de SPSS. Vuelve a enviar la orden encontrada en la tabla Notas seleccionada, utilizando el archivo de datos activo. Si no existe ningn archivo de datos abierto, el proceso intentar leer el archivo de datos utilizado originalmente. Se debe seleccionar la tabla Notas antes de ejecutar el proceso.

R cuadrado max. En una tabla de resumen del modelo de regresin, aplica el formato de negrita y el color azul a la fila correspondiente al modelo que maximiza la R cuadrado corregida. Se debe seleccionar la tabla de resumen del modelo antes de ejecutar el proceso.

Un concepto final que es crtico a la hora de usar programas VBA en SPSS es el de objeto activo. En cualquier instante durante la ejecucin de SPSS solamente un objeto est activo en el entorno. Para que se realice un mtodo o se seleccione una propiedad sobre un objeto, dicho objeto ha de estar activo. Hay dos modos de activar un objeto. El primero es usar VBA, el segundo es hacer click sobre el objeto. As, cuando se pone en primer plano el visor de resultados, se activa el objeto. O cuando se resalta una celda en una tabla, ese objeto est activado. Esta caracterstica es especialmente til cuando se ejecuta un programa sobre un objeto concreto. Los programas VBA se abren desde el men Archivo de la barra de mens, apareciendo la caja de dilogo con los diversos programas VBA que estn incluidos en SPSS. A la derecha de tal caja de dilogo aparece una ventana en la que se da una breve descripcin del

file://C:\Documents and Settings\Yolanda\Mis documentos\Facultad\Computacional\...

15/10/2008

Programacin con Visual Basic para Aplicaciones en SPSS

Pgina 5 de 7

proceso que se ha seleccionado. Para usar uno de ellos, slo hay que seleccionarlo de la caja de dilogo.

Figura 4.2.1: Ventana de edicin de programas VBA de SPSS

Para crear un nuevo proceso, hay que cerrar esta caja de dilogo y trabajar en la ventana de edicin de programas VBA.

Figura 4.2.2: Ventana de edicin de programas VBA de SPSS

Si se utiliza alguno de los programas VBA implementados en SPSS, es fcil modificarlos gracias a las lneas de comentarios que aparecen en tales programas.

file://C:\Documents and Settings\Yolanda\Mis documentos\Facultad\Computacional\...

15/10/2008

Programacin con Visual Basic para Aplicaciones en SPSS

Pgina 6 de 7

4.3. Obtencin de objetos de automatizacin


Obtener un objeto significa crear una referencia a dicho objeto, de manera que se puedan utilizar sus propiedades y mtodos para realizar una accin. Cada referencia a un objeto que se obtiene se almacena en una variable. Para obtener un objeto, en primer lugar se declara una variable del tipo apropiado; despus se define la variable para el objeto especfico. Por ejemplo, para obtener el documento de resultados designado: Set objOutputDoc = objSpssApp.GetDesignatedOutputDoc Set objItems = objOutputDoc.Items Se utilizan propiedades y mtodos de objetos superiores en la jerarqua de objetos para llegar hasta los objetos de debajo. La segunda de las instrucciones anteriores obtiene el documento de resultados designado utilizando GetDesignatedOutputDoc, un mtodo asociado al objeto de aplicacin, que es el objeto del nivel ms alto. De modo similar, para obtener un objeto de tabla, en primer lugar se obtiene el documento de resultados que contiene la tabla, despus el conjunto de elementos de ese documento y as sucesivamente hasta la tabla.

4.4. Archivos de programas VBA y archivos de rdenes de SPSS


Los archivos de rdenes de SPSS, .sps, no son lo mismo que los archivos de programas VBA, .sbs. Los primeros poseen rdenes escritas en el lenguaje de rdenes de SPSS que permiten ejecutar procedimientos estadsticos y transformaciones de datos, mientras que los programas VBA permiten manipular resultados y automatizar otras tareas que se realizan habitualmente utilizando la interfaz grfica de los mens y cuadros de dialogo; el lenguaje de rdenes proporciona un mtodo alternativo de comunicacin directa con el soporte del programa, la parte del sistema que se ocupa de los clculos estadsticos y las transformaciones de datos. Para obtener mayor flexibilidad en la ejecucin de un proceso, se pueden combinar archivos de programas VBA y de rdenes con las salvedades en el orden de ejecucin que ya indicamos anteriormente.
Ejecucin de un programa VBA desde un programa SPSS

Para ejecutar un programa VBA desde el editor de rdenes de SPSS, se utiliza el comando SCRIPT. Para ello se especifica, entre comillas, el nombre del programa VBA que se desea ejecutar, con la ruta completa en la que se encuentre el archivo, por ejemplo: SCRIPT C:\PROGRAMAS\VBA\CLEAN NAVIGATOR.SBS
Ejecucin de rdenes SPSS desde un proceso VBA

La ejecucin de rdenes SPSS puede llevarse a cabo mediante un proceso VBA utilizando el mtodo ExecuteCommands. Las rdenes SPSS permiten ejecutar transformaciones de datos y procedimientos estadsticos y producir grficos.

file://C:\Documents and Settings\Yolanda\Mis documentos\Facultad\Computacional\...

15/10/2008

Programacin con Visual Basic para Aplicaciones en SPSS

Pgina 7 de 7

La manera ms sencilla de construir un archivo de rdenes SPSS es efectuar selecciones en los cuadros de dilogo y pegar las rdenes asociadas. Al abrir los cuadros de dilogo mediante los mens de la ventana de proceso, el botn Pegar insertar todo el cdigo necesario para ejecutar las rdenes desde un proceso. Si no se utilizan los mens de la ventana de proceso para abrir el cuadro de dilogo, las rdenes se pegarn en una ventana de rdenes en lugar de en la ventana de proceso.

4.5. Declaracin de variables


Aunque no siempre es necesario, es una buena prctica declarar todas las variables antes de utilizarlas. Esto se realiza empleando instrucciones de declaracin, Dim. Por ejemplo, Dim Dim Dim Dim objOutputDoc As ISpssOutputDoc objPivotTable As PivotTable intTipo As Integer strEtiqueta As String

Cada declaracin especifica el nombre y el tipo de variable. As, la primera declaracin de arriba crea una variable de objeto que se llama objOutputDoc y la asigna a la clase de objeto ISpssOutputDoc. La variable an no tiene un valor porque no se ha establecido para un documento de resultados determinado. Lo que hace la instruccin es declarar que la variable existe.

file://C:\Documents and Settings\Yolanda\Mis documentos\Facultad\Computacional\...

15/10/2008

You might also like