Migrating from XLL to XLA

P

Peter

Hi everyone,

I want to substitute user defined functions (UDF) provided through a XLL by
a combination of an Excel Add-In and a COM-component.

Unfortunately, opening a XLS that was created using the old XLL causes
problems when the UDFs are
provided by the add-in. In fact, it looks like the Excel is not able to
automatically use the new functions, although the functions are available.

If the worksheet is opened #NAME is displayed in the cells using the
respective functions and pressing F9 does not resolve the problem. However,
entering one of the respective cells and pressing enter resolves the
problem. Using the XLL the functions where registered in a certain category
(as displayed in the function wizard).

By now I am pursuing the following approach:

a) the functionality is placed in some COM-component

b) there is a XLA which provides wrapper functions for the methods of the
COM-Object (as suggested in
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q256624)

c) I am using the REGISTER macro in combination with a self-made DLL to
register the functions in a certain category (see
http://www.jkp-ads.com/Articles/RegisterUDF00.htm)

I have been using Laurent Longre's FUNCUSTOMIZE.DLL and it has been working
well, but since I returned to using VBA code to register the
functions Excel won't use my XLA-functions as the new UDFs.

Anyone having experience with migrating from XLLs to XLAs?

Thanks in advance,

Peter
 
P

Peter T

Hi Peter,

For your old workbooks with xll-udf's it might be worth doing a find &
replace = with '= and remove all formulas (alternatively replace myUDF with
"zzzzmyUDF"). Save & close the wb. Reopen, with calc - manual, reverse the
find & replace. Macro recorded code to do that easily adapted to process all
sheets.

If all your users have xl2002 or later these versions support "Automation
Add-ins", can call Public functions directly from cell formulas. For xl2000
would need an xla wrapper as described in the link you referred to. To cater
for all versions including xl97 use an ordinary ActiveX dll and xla wrapper.

I saw the REGISTER method when it was first published, I had fatal problems
with it though I understand following an off-line discussion it has been
fixed.

Curiosity, for purely calculation stuff XLL's are faster, why are you
changing.

Regards,
Peter T
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top