Windows to Mac Vba

kenmarton

Registered
I have been doing VBA programming on Excel/ Windows for years, including ActiveX controls and sophisticated macros.

I have tried to run several of my files/ programs on macs, and they typically fail. Where is a good place to start to get a sense of what must be done to make Windows Excel VBA run on macs?

Also, is it true that ActiveX controls don't run on macs? The mac said it had "design mode on", and turning it off did not make the control work.

Also, some of my macros work, others don't. Is there a general rule (like always "dim" cause I don't)?
 

Veljo

Mac Enthusiast
Generally basic Visual Basic apps work perfectly in Word and Excel for Mac. Have you tried checking what references you have ticked/installed?
 

Viro

Registered
kenmarton said:
I have tried to run several of my files/ programs on macs, and they typically fail. Where is a good place to start to get a sense of what must be done to make Windows Excel VBA run on macs?
Have a look at this article. It's rather sparse, but it looks like a good starting point. Also, in the Office documentation on your Mac, search for macro and you'll find an entry about running Windows macros on the Mac. The main things to remember are the path separators are different on the Mac (':' instead of '\'), no ActiveX, OLE in Powerpoint doesn't work and the like.

A better place to ask questions pertaining to the differences may be the MS newsgroups where the power users and developers hang out.

kenmarton said:
Also, is it true that ActiveX controls don't run on macs? The mac said it had "design mode on", and turning it off did not make the control work.
ActiveX requires COM, which is a Windows only piece of technology. That means that it will never work on anything other than Windows, unless Microsoft ports it.

Also, some of my macros work, others don't. Is there a general rule (like always "dim" cause I don't)?
I always think that you should declare all your variables prior to using them. I don't know about VBA but with VB you can disable using variables that you haven't declared before. The reason this is so important is that it eliminates subtle bugs in your code.
 
Top