MathGroup Archive 2002

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: mathematicalink for excel xp

I ran into this same problem about the time Microsoft released their "June
19, 2002 Excel 2002 update". I fixed the problem and sent Wolfram a patch
for it last week (it is a VBA coding problem in the MLX.xla Excel add-in
file). I believe your two choices are to either uninstall Microsoft's June
19 Excel update (although I haven't tried this, so no guarantees), or to use
my patch. In my case, I actually needed the fixes in Microsoft's June 19
Excel update, which is why I had to dig into the VBA code and fix it myself.

My license for "Mathematica Link for Excel" prohibits me from directly
sending you the new MLX.xla file that fixes the problem, but I am permitted
to send you a patch file, or to just tell you which lines of the VBA code to
manually edit and change. Let me know if you want to go down this route and
I'll create such a patch or instruction set for you.

Here is the email I send to Wolfram Technical Support last week that
describes the problem in detail:

Hi Bruce,

I fixed the problem with the MLX.xla "Mathematica Link for Excel" Add-In. I
edited the VBA code in MLX.xla to work around problems with Excel "Dialog
Sheets". I've attached my fixed version of MLX.xla to this email as

Here is a short description of the problem, and my fix, so that Wolfram can
pass it along to other users who experience the same problem.

The problem is with the way MLX.xla was originally written. The MLX.xla
Add-In uses an Excel feature called "Dialog Sheets"  which are obsolete and
deprecated features of Excel since Excel 97. Microsoft replaced Excel
"Dialog Sheets" with "User Forms" beginning with Excel 97, and "User Forms"
are the way all current Excel applications are written.

The specific problem was that Microsoft removed the "Visible" property from
"DialogSheets.DrawingObjects" class. The MLX.xla Add-In used a lot of
constructs like this example VBA code:

    helpgroup = Array("helptext")
    With ThisWorkbook.DialogSheets("Help Dialog")
            .DrawingObjects(helpgroup).Visible = False
    End With

My fix was to use the venerable VBA "On Error Resume Next" statement to
"fix" the problem. For example, I re-wrote the above example like this:

    helpgroup = Array("helptext")
    With ThisWorkbook.DialogSheets("Help Dialog")
    On Error Resume Next
            .DrawingObjects(helpgroup).Visible = False
    On Error Goto 0
    End With

With Microsoft's "June 19, 2002 Excel 2002 update", it looks like bitrot is
slowly creeping its way into Excel DialogSheets. According to my Microsoft
developer documentation, it is Microsoft's policy not to fix "deprecated"
features so it is unlikely that Microsoft will re-introduce the "Visible"
property from "DialogSheets.DrawingObjects" class, but who knows (maybe
Wolfram carries a lot of weight with Microsoft).

As an Excel developer myself, as well as a Mathematica developer, it doesn't
look to me like it would be all that much work to replace the 8 dialog
sheets in MLX.xla with User Forms.

I hope this helps other users.

Regards, Matt

----- Original Message -----
From: <erich.neuwirth at>
To: mathgroup at
Subject: [mg35477] [mg35465] mathematicalink for excel xp

> i am trying to use mathematica link for excel xp  on win2k
> with mathematica 4.1.2
> there is an update on wolfram's web site for this software combination,
> but i always get an error:
> runtime error 1004
> unable to set visible property of drawingobjects class.
> has anybody experienced the same problem?
> is there a solution?

  • Prev by Date: Re: Changing delayed formula
  • Next by Date: Functionality and Reliability II
  • Previous by thread: mathematicalink for excel xp
  • Next by thread: Re: mathematicalink for excel xp