+ Reply to Thread
Results 1 to 4 of 4

xllRegister method

  1. #1
    JacksonRJones
    Guest

    xllRegister method

    hi. I'm still trying to use xll files to be able to use c++ code for custom
    excel functions. No one seems to be fielding these questions, but I thought
    I'd try again. I'm trying to use the xllregister method in vba to call
    functions in an xll file. here is the code:

    sub main()
    Application.registerxll "filename.xll"
    Dim c As integer
    c = AddTwo(8,9)
    ....
    End Sub

    I get an error message "sub or function not defined"
    The addtwo function from my xll works fine when used in excel. Any
    thoughts? I'm pretty much out of my league at this point, but I have to get
    this done for work. Pls help.

  2. #2
    Peter T
    Guest

    Re: xllRegister method

    Are you saying registerxll fails. AFAIK you only need to register it once so
    if your function works in Excel I guess it should work in VBA, though you
    need ExecuteExcel4Macro and the right syntax (following might not be right)

    c = Application.ExecuteExcel4Macro("AddTwo(" & 8 & "," & 9 & ")")

    Regards,
    Peter T

    "JacksonRJones" <[email protected]> wrote in message
    news:[email protected]...
    > hi. I'm still trying to use xll files to be able to use c++ code for

    custom
    > excel functions. No one seems to be fielding these questions, but I

    thought
    > I'd try again. I'm trying to use the xllregister method in vba to call
    > functions in an xll file. here is the code:
    >
    > sub main()
    > Application.registerxll "filename.xll"
    > Dim c As integer
    > c = AddTwo(8,9)
    > ...
    > End Sub
    >
    > I get an error message "sub or function not defined"
    > The addtwo function from my xll works fine when used in excel. Any
    > thoughts? I'm pretty much out of my league at this point, but I have to

    get
    > this done for work. Pls help.




  3. #3
    JacksonRJones
    Guest

    Re: xllRegister method

    Thanks a million. It worked and now I get to go home on a positive note
    after a few days of banging my head against the wall.

    "Peter T" wrote:

    > Are you saying registerxll fails. AFAIK you only need to register it once so
    > if your function works in Excel I guess it should work in VBA, though you
    > need ExecuteExcel4Macro and the right syntax (following might not be right)
    >
    > c = Application.ExecuteExcel4Macro("AddTwo(" & 8 & "," & 9 & ")")
    >
    > Regards,
    > Peter T
    >
    > "JacksonRJones" <[email protected]> wrote in message
    > news:[email protected]...
    > > hi. I'm still trying to use xll files to be able to use c++ code for

    > custom
    > > excel functions. No one seems to be fielding these questions, but I

    > thought
    > > I'd try again. I'm trying to use the xllregister method in vba to call
    > > functions in an xll file. here is the code:
    > >
    > > sub main()
    > > Application.registerxll "filename.xll"
    > > Dim c As integer
    > > c = AddTwo(8,9)
    > > ...
    > > End Sub
    > >
    > > I get an error message "sub or function not defined"
    > > The addtwo function from my xll works fine when used in excel. Any
    > > thoughts? I'm pretty much out of my league at this point, but I have to

    > get
    > > this done for work. Pls help.

    >
    >
    >


  4. #4
    Jon
    Guest

    Re: xllRegister method

    Apparently you can also use the Run method as well (not tested by me):

    Syntax 1: Runs a macro or calls a function. This can be used to run a macro
    written in Visual Basic or the Microsoft Excel 4.0 macro language, or to run
    a function in a DLL or XLL.
    Syntax 2: Runs the Microsoft Excel 4.0 macro at this location. The range
    must be on a macro sheet.

    Syntax 1

    expression.Run(Macro, Arg1, Arg2, ...)

    Syntax 2

    expression.Run(Arg1, Arg2, ...)

    expression Optional for Application, required for Range. An expression
    that returns the application that contains the macro, or a range on a macro
    sheet that contains a Microsoft Excel 4.0 macro.

    Macro Required Variant for Syntax 1 (not used with Syntax 2). The macro to
    run. This can be either a string with the macro name, a Range object
    indicating where the function is, or a register ID for a registered DLL
    (XLL) function. If a string is used, the string will be evaluated in the
    context of the active sheet.

    Arg1, Arg2, ... Optional Variant. The arguments that should be passed to
    the function.

    Remarks

    You cannot use named arguments with this method. Arguments must be passed by
    position.

    The Run method returns whatever the called macro returns. Objects passed as
    arguments to the macro are converted to values (by applying the Value
    property to the object). This means that you cannot pass objects to macros
    by using the Run method.


    Run Method Example

    This example shows how to call the function macro My_Func_Sum, which is
    defined on the macro sheet Mycustom.xlm (the macro sheet must be open). The
    function takes two numeric arguments (1 and 5, in this example).

    mySum = Application.Run("MYCUSTOM.XLM!My_Func_Sum", 1, 5)
    MsgBox "Macro result: " & mySum



+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1