Utilizar macros para ejecutar un script
Para ejecutar un script con una macro, cree la macro en Visual Basic for Applications (VBA).
- Abra el archivo de datos que esté asociado al script que desee ejecutar.
Importante: Asegúrese de usar una archivo habilitado para macros o archivo .xlsm.
- Pulse Alt+F11.
- En el editor de VBA, en Objetos de Microsoft Excel, haga doble clic en la hoja que contenga los datos que desee ejecutar.
- Copie y pegue el código de abajo en la ventana.
- Reemplace la ruta del archivo de datos, la del archivo de script, el nombre de la hoja y el nombre de inicio de sesión automático de abajo con la información de sus archivos y su nombre de inicio de sesión automático.
- Haga clic en Guardar y, a continuación, cierre el editor de VBA.
- En Excel, haga clic en la pestaña Vista y, a continuación, en Macros.
- Haga clic en la macro que desee ejecutar y, a continuación, en Ejecutar.
Nota: Asegúrese de que el complemento de Excel no esté activo (de que no haya iniciado sesión en
Macros de Query
Ejecutar un script publicado
- Defina los objetos del complemento.
Dim StudioMacrosAddin, StudioMacros
- Consiga el objeto del complemento de Excel.
Set StudioMacrosAddin = Application.COMAddIns.Item ("WinshuttleStudioMacros.AddinModule")
- Consiga el objeto COM del objeto del complemento.
Set StudioMacros = StudioMacrosAddin.Object.Macros
- Seleccione el archivo publicado que desee ejecutar y defina otras propiedades de ejecución (consulte Propiedades para un objeto de complemento de Query).
Dim StudioMacros.PublishedFile = "Table_20150113_150602"
- Abra el archivo de script publicado.
StudioMacros.OpenPublishedScript
- Ejecute AddinObject para ejecutar el script de Query.
StudioMacros.RunScript
Ejecutar un script de Query existente
- Defina los objetos del complemento.
Dim StudioMacrosAddin, StudioMacros
- Consiga el objeto del complemento de Excel.
Set StudioMacrosAddin = Application.COMAddIns.Item ("WinshuttleStudioMacros.AddinModule")
- Consiga el objeto COM del objeto del complemento.
Set StudioMacros = StudioMacrosAddin.Object.Macros
- Seleccione el script de Query que desee ejecutar y defina otras propiedades de ejecución (consulte Propiedades para un objeto de complemento de Query).
Dim strShuttleFile = "C:\Table_20140930_143519.qsq"
- Abra el script que va a ejecutar.
StudioMacros.OpenScript (strShuttleFile)
- Ejecute AddinObject para ejecutar el script de Query.
StudioMacros.RunScript
Propiedades para un objeto de complemento de Query
La configuración de la ejecución o las opciones avanzadas de ejecución que estén configuradas en el script no se respetan durante la ejecución de la macro. Se deben configurar con las diversas propiedades que se han expuesto para el objeto del complemento.
Propiedad/Función |
Valor(es)/Parámetro(s) |
Descripción |
PublishedFile |
Descripción de archivo publicado |
Selecciona el archivo publicado que se va a ejecutar |
OpenScript () |
Ruta del archivo de script |
Selecciona el script que se va a ejecutar |
OpenPublishedScript |
NA |
Abre el script publicado |
StartRow |
Número de fila |
Fila de Excel a partir de la que se van a escribir los registros descargados |
RecordsToFetch |
N.º de registros |
Número de registros que devolverá la ejecución de Query |
WriteHeader |
Verdadero/Falso |
Escribe encabezados de asignación para los datos descargados |
ExtractAllRecords |
Verdadero/Falso |
Invalida RecordsToFetch y extrae todos los registros |
RunReason |
Cadena del motivo de la ejecución |
Especifica un motivo para esta ejecución |
LogCell |
Celda |
Celda en la que se deben escribir los registros de la ejecución |
SheetName |
Nombre de la hoja |
Nombre de la hoja que se usará para la ejecución |
AlfName |
Archivo de inicio de sesión automático |
Nombre de inicio de sesión automático que se va a usar |
RunType |
Tipo de ejecución |
0 – Ejecutar para obtener registros según configuración 1 – Sobrescribir RecordsToFetch y descargar solo los primeros 50 registros |
RunScript |
NA |
Ejecutar el script |
Código de muestra: Ejecutar un script publicado
Sub RunPublishedQSQfile() '---------------------------------------------- ' Macro para usar el complemento WinshuttleStudioMacros con código '---------------------------------------------- ‘ ' Macro RunPublishedfile ‘ Dim StudioMacrosAddin, StudioMacros On Error GoTo ErrHandler ' OBTENER OBJETO DE COMPLEMENTO DE EXCEL Set StudioMacrosAddin = Application.COMAddIns.Item("WinshuttleStudioMacros.AddinModule") If StudioMacrosAddin Is Nothing Then MsgBox "Unable to initialize object of WinshuttleStudioMacros.AddinModule addin" Exit Sub End If ' Obtener objeto com de objeto de complemento Set StudioMacros = StudioMacrosAddin.Object.Macros If StudioMacros Is Nothing Then MsgBox "Unable to initialize com object of Macros» Exit Sub End If ' Seleccione el archivo publicado para ejecutar StudioMacros.PublishedFile = "Table_20150113_150602" StudioMacros.StartRow = 2 ' si no se ha configurado, los registros se recuperarán según la configuración del script StudioMacros.RecordsToFetch = 100 ' Verdadero para recuperar todos los registros. Si se ha configurado como falso, se respetará StudioMacros.RecordsToFetch StudioMacros.ExtractAllRecords = True ' Configurar como Verdadero para escribir encabezados durante la ejecución StudioMacros.WriteHeader = True ' Configurar RunReason para proporcionar un motivo para la ejecución. StudioMacros.RunReason = "Run Reason» 'Ejecutar = 0, RunOnlyFiftyRecords = 1 StudioMacros.RunType = 0 ' Llamar a la función de ejecución para abrir el script publicado StudioMacros.OpenPublishedScript ' Llamar a la función de ejecución para ejecutar el script StudioMacros.RunScript Exit Sub ErrHandler: MsgBox Err.Description End Sub
|
Código de muestra: Ejecutar un script de Query existente
Sub RunNormalQsqFile() '---------------------------------------------- ' Macro para usar el complemento WinshuttleStudioMacros con código '---------------------------------------------- ' ' Macro RunNormalQsqFile ‘ Dim StudioMacrosAddin, StudioMacros On Error GoTo ErrHandler ' OBTENER OBJETO DE COMPLEMENTO DE EXCEL Set StudioMacrosAddin = Application.COMAddIns.Item("WinshuttleStudioMacros.AddinModule") If StudioMacrosAddin Is Nothing Then MsgBox "Unable to initialize object of WinshuttleStudioMacros.AddinModule addin" Exit Sub End If ' Obtener objeto com de objeto de complemento Set StudioMacros = StudioMacrosAddin.Object.Macros If StudioMacros Is Nothing Then MsgBox "Unable to initialize com object of Macros» Exit Sub End If StudioMacros.StartRow = 2 ' si no se ha configurado, los registros se recuperarán según la configuración del script StudioMacros.RecordsToFetch = 100 ' Verdadero para recuperar todos los registros. Si se ha configurado como falso, se respetará StudioMacros.RecordsToFetch StudioMacros.ExtractAllRecords = True ' Configurar como Verdadero para escribir encabezados durante la ejecución StudioMacros.WriteHeader = True ' Configurar RunReason para proporcionar un motivo para la ejecución. StudioMacros.RunReason = "Run Reason» 'Ejecutar = 0, RunOnlyFiftyRecords = 1 StudioMacros.RunType = 0 strShuttleFile = "C:\Users\ssingh\Documents\Winshuttle\Studio\Script\Table_20140930_143519.qsq» ' Llamar a la función de ejecución para abrir el script especificado StudioMacros.OpenScript (strShuttleFile) ' Llamar a la función de ejecución para ejecutar el script StudioMacros.RunScript Exit Sub ErrHandler: MsgBox Err.Description End Sub
|
Problemas conocidos
- Las macros que se hayan creado en Transaction o Query v10.x no se convierten automáticamente al formato de Studio v11. Las macros en formato de Studio v11 no son compatibles con las versiones 10.x. Para ejecutarlas, hay que convertir las macros de forma manual.
- Mientras use macros, no debería tener cargados los complementos de Winshuttle (no debería tener iniciada la sesión en Foundation). Los complementos de Winshuttle se pueden habilitar.
- ExtractAllRecords recupera todos los registros, incluso si el número de registros es superior al número máximo de registros que se pueden descargar.
- La fila de inicio siempre es la 2, a no ser que se indique otra fila.
- Los archivos de datos tienen que usar el flujo de trabajo de Revisión de datos para poder ejecutarse con macros en el modo Foundation.
- La opción Guardar en Foundation no funcionará cuando se use una macro para ejecutar el archivo de datos en el modo Foundation.