I encountered a similar problem recently regarding Macros and With, so I now pass the group instance as a parameter to the macro, eg:
Code:
Structure TestStructure
Map parameter.b()
EndStructure
Global NewMap Group.TestStructure()
Macro StringifyGroupParameter(type, pGroup)
key.s = Str(type)
If FindMapElement(pGroup\parameter(),key)
Debug "ok"
EndIf
EndMacro
Procedure.s Test(ocode.s)
Dim paramt.s(1)
StringifyGroupParameter(0, Group(ocode))
EndProcedure
You can still use With inside Test if you need it for other reasons - it's just that the Macro cannot use it and macros also cannot contain With.