JoeyB Absent Member.
Absent Member.

Desktop Pro - RunMacro from MS Excel receiving compile error

Hello. I am coding for my work, using Reflection Desktop 16 and MS Excel v15. I am trying to invoke a macro on Reflection from Excel. When I use the RunMacro method, I get the 'Expected Function or Variable' compile error.

The function called returns a user-defined class and when I run it from Reflection VBA it returns the class nicely, so that isn't the problem. It is a possibility that I don't have the class set up correctly yet on Excel but I am feeling that I'm not coding the arguments correctly to call the function. I am using Early Binding and Intellisense is giving me the macro parameters so it is seeing the terminal object at least. I tried coding this off the example from 'Running Reflection Macros from Excel or Another Application' in your Key Concepts, but that is using RunMacro2 and calling a subroutine and I need to pass a paramter (paramarrays make me want to jump out of a window so I'm desperately hoping to avoid RunMacro3.)

I could use a little guidance, please.

Command line (I have tried both of these with the same result):

Set objMyObject = termRefl.Macro.RunMacro(MacroEnumerationOption_Document, "ThisIbmTerminal.HelpExcel", "(input string)")
Set objMyObject = termRefl.Macro.RunMacro(MacroEnumerationOption_Document, strMac, strInput) (wrapped the strings)

Macro in Reflection --> Public Function HelpExcel(strA As String) As MyObject
(This procedure actually calls another Reflection function because it has to do a little manipulation to that string first, because paramarrays. I think the second function would throw the error in Reflection, not Excel, though.)

My project in the Project Window Looks like this:

MacroContainer (MacroScreen)
-> Modules

I have tried qualifying the MacroName in the following manners:


(Edit: the space in Document is being added by this form, it is spelled correctly in my code.)
2 Replies
AutomaticReply Absent Member.
Absent Member.

Re: Desktop Pro - RunMacro from MS Excel receiving compile error


It appears that in the past few days you have not received a response to your
posting. That concerns us, and has triggered this automated reply.

These forums are peer-to-peer, best effort, volunteer run and that if your issue
is urgent or not getting a response, you might try one of the following options:

- Visit and search the knowledgebase and/or check
all the other self support options and support programs available.
- Open a service request:
- You could also try posting your message again. Make sure it is posted in the
correct newsgroup. (
- You might consider hiring a local partner to assist you.

Be sure to read the forum FAQ about what to expect in the way of responses:

Sometimes this automatic posting will alert someone that can respond.

If this is a reply to a duplicate posting or otherwise posted in error, please
ignore and accept our apologies and rest assured we will issue a stern reprimand
to our posting bot.

Good luck!

Your Micro Focus Forums Team

vfast Absent Member.
Absent Member.

Re: Desktop Pro - RunMacro from MS Excel receiving compile e

The RunMacro method (and RunMacro2 and RunMacro3) all need the macro name in the format "ModuleName.MacroName". So if your VBA project has a "module" with code in it called "Module1", and you have a macro called "HelpExcel", you would use

ThisIbmTerminal.Macro.RunMacro MacroEnumerationOption_Document, "Module1.HelpExcel", ""

I might not be understanding the question though. Does that help?
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.