1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| Option Compare Database
Option Explicit
Private Declare Function FNextHscr Lib "msaccess.exe" Alias "#22" _
(ByVal hScr As Long, _
ByVal fSkipBlank As Long, _
pfEndOfScript As Long) As Long
Private Declare Function ActidOfHscr Lib "msaccess.exe" Alias "#29" _
(ByVal hScr As Long) As Long
Private Declare Function IdsArgNameOfActidIarg Lib "msaccess.exe" Alias "#33" _
(ByVal actid As Long, _
ByVal iArg As Long) As Long
Private Declare Sub CloseHscr Lib "msaccess.exe" Alias "#20" _
(ByVal hScr As Long)
Function GetStringFromId(id As Long) As String
GetStringFromId = ""
On Error Resume Next
GetStringFromId = Application.AppLoadString(id)
End Function
Sub LireMacro(strMacro As String)
Dim hscr As Long, EndOfScript As Long
Dim lOpenMode As Long, lExtra As Long, lVersion As Long
Dim ActionId As Long, lActionArgs As Long, lColumn As Long
Dim ArgId As Long
Dim strMacroName As String, strComment As String, strCondition As String
Dim strAction As String, strArgName As String
Dim strArg As String
WizHook.Key = 51488399
hscr = WizHook.OpenScript(strMacro, "", lOpenMode, lExtra, lVersion)
If (hscr > 0) Then
' Parcours des lignes
While (FNextHscr(hscr, False, EndOfScript))
' Identifiant de l'Action
ActionId = ActidOfHscr(hscr)
' Nom de l'action
strAction = WizHook.NameFromActid(ActionId)
' Colonne 0 = colonne Nom Macro
Call WizHook.GetScriptString(hscr, 0, strMacroName)
' Colonne 1 = colonne Commentaire
Call WizHook.GetScriptString(hscr, 1, strComment)
' Colonne 2 = colonne Condition
Call WizHook.GetScriptString(hscr, 2, strCondition)
If Len(strMacroName) > 0 Then Debug.Print "Nom : " & strMacroName
If Len(strCondition) > 0 Then Debug.Print "Condition : " & strCondition
Debug.Print "Action : " & strAction;
If Len(strComment) > 0 Then
Debug.Print " ** " & strComment & " **"
Else
Debug.Print
End If
' Nombre d'arguments de l'action
lActionArgs = WizHook.ArgsOfActid(ActionId)
If lActionArgs <> 0 Then
' Colonne 3 et plus .... : arguments
For lColumn = 0 To (lActionArgs - 1)
ArgId = IdsArgNameOfActidIarg(ActionId, lColumn)
strArgName = GetStringFromId(ArgId)
Call WizHook.GetScriptString(hscr, lColumn + 3, strArg)
Debug.Print Tab(13); strArgName & " : " & strArg
Next lColumn
End If
Debug.Print
Wend
CloseHscr hscr
End If
End Sub |
Partager