GetScriptString Para ésta y para otras dos funciones relacionadas con las macros me he basado en el código que aparece en en la herramienta V-Tools (2000 y 2002), y que amablemente publica Skrol29 http://www.skrol29.com en su página web. |
|
Volver |
'********************************************************* 'Function GetScriptString( ' HScr As Long, ' ScriptColumn As Long, ' Value As String) As Boolean ' ' Método que devuelve los valores de las diferentes ' columnas de una macro, así como los valores de los ' los argumentos de la acción. ' Devuelve True si ha tenido éxito. ' ' Argumentos: ' HScr: Valor Long que representa a la macro ' ScriptColumn: Valor Long que representa la columna de ' la macro de la que se quiere conocer su valor. ' ' Si ScriptColumn es la columna será ' ------------------ --------------- ' 0 Nombre de macro ' 1 Comentario ' 2 Condición ' 3-12 Argumentos ' ' Value: Cadena que almacenará el valor existente en la ' columna seleccionada. ' ' Para el siguiente ejemplo, necesitamos utilizar 3 ' funciones API de Access. La macro que se utilizará es la ' misma que se crea en el ejemplo sobre el método ' SaveScriptString ' ' API para cerrar una macro en memoria Private Declare Sub fCloseHscr _ Lib "msaccess.exe" _ Alias "#20" _ (ByVal HScr As Long) ' API para ir a la siguiente fila de una macro Private Declare Function fNextHscr _ Lib "msaccess.exe" _ Alias "#22" _ (ByVal HScr As Long, _ ByVal fSkipBlank As Long, _ pfEndOfScript As Long) As Long ' API para obtener la acción de la fila actual de una ' macro Private Declare Function ActidOfHscr _ Lib "msaccess.exe" _ Alias "#29" _ (ByVal HScr As Long) As Long Sub wzGetScriptString() Dim hMacro As Long Dim wzScript As String Dim wzLabel As String Dim wzOpenMode As Long Dim wzExtra As Long Dim wzVersion As Long Dim mAction As Variant Dim mLabel As String Dim mComment As String Dim mCondition As String Dim mArgument As String Dim EndOfScript As Long ' Nombre de la macro wzScript = "Macro de ejemplo" ' modo lectura wzOpenMode = 0 WizHook.Key = 51488399 ' Abrir la macro hMacro = WizHook.OpenScript(wzScript, _ wzLabel, wzOpenMode, wzExtra, wzVersion) ' Nos posicionamos en la primera línea fNextHscr hMacro, 0&, EndOfScript ' valor de la acción mAction = ActidOfHscr(hMacro) ' traducimos el valor por una cadena mAction = WizHook.NameFromActid(mAction) ' valor de la columna "nombre de macro" WizHook.GetScriptString hMacro, 0&, mLabel ' valor de la columna "Comentario" WizHook.GetScriptString hMacro, 1&, mComment ' valor de la columna "Condición" WizHook.GetScriptString hMacro, 2&, mCondition ' valor del primer argumento de la acción WizHook.GetScriptString hMacro, 3&, mArgument Debug.Print "Nombre de macro:", mLabel Debug.Print "Condición:", mCondition Debug.Print "Acción:", mAction Debug.Print "Comentarios:", mComment Debug.Print "1er argumento:", mArgument End Sub '********************************************************* |
Contactar | Última actualización 21/9/2003 © Juan M. Afán deRibera |