API Question for opening Excel
API Question for opening Excel
(OP)
In my feable attempts to open Excel from SolidWorks, I have tried to mirror some previous code and it works to an extent.
This code was written from Excel to open SolidWorks. It opens SolidWorks and then a given document. Assume variables have been named and defined.
‘Opens SolidWorks
Set swApp = CreateObject("SldWorks.Application")
swApp.Visible = True
Set Part = swApp.ActiveDoc
‘ Load model and expand window
Set Part = swApp.OpenDoc("folder location\file.SLDPRT", 1)
Set Part = swApp.ActivateDoc("Pulley.SLDPRT")
swApp.ActiveDoc.ActiveView.FrameLeft = 0
swApp.ActiveDoc.ActiveView.FrameTop = 0
swApp.ActiveDoc.ActiveView.FrameState = 1
swApp.ActiveDoc.ActiveView.FrameState = 1
========
What I want to achieve is the same things, but from the reverse direction. I want to open Excel from SolidWorks.
Set ExSheet = CreateObject("Excel.Sheet")
ExSheet.Application.Visible = True
Set exDoc = ExSheet.ActiveDoc
' Load Excel and expand window
Set exDoc = ExSheet.OpenDoc("folder location\file.xls", 1)
Set exDoc = ExSheet.ActivateDoc("Pulley.SLDPRT")
ExSheet.ActiveDoc.ActiveView.FrameLeft = 0
ExSheet.ActiveDoc.ActiveView.FrameTop = 0
ExSheet.ActiveDoc.ActiveView.FrameState = 1
ExSheet.ActiveDoc.ActiveView.FrameState = 1
I’m getting lost at the point where Excel opens. It opens Excel and a sheet, but stops at the bold text line. The debugger message box opens and displays “Object doesn’t support this method or property”. I believe that I’m using the wrong syntax to keep going in Excel so I can’t even tell if the rest would be correct.
Any suggestions? My API experience is very basic. I’m a cutter and paster from examples and try to get them to work. So anything would help.
This code was written from Excel to open SolidWorks. It opens SolidWorks and then a given document. Assume variables have been named and defined.
‘Opens SolidWorks
Set swApp = CreateObject("SldWorks.Application")
swApp.Visible = True
Set Part = swApp.ActiveDoc
‘ Load model and expand window
Set Part = swApp.OpenDoc("folder location\file.SLDPRT", 1)
Set Part = swApp.ActivateDoc("Pulley.SLDPRT")
swApp.ActiveDoc.ActiveView.FrameLeft = 0
swApp.ActiveDoc.ActiveView.FrameTop = 0
swApp.ActiveDoc.ActiveView.FrameState = 1
swApp.ActiveDoc.ActiveView.FrameState = 1
========
What I want to achieve is the same things, but from the reverse direction. I want to open Excel from SolidWorks.
Set ExSheet = CreateObject("Excel.Sheet")
ExSheet.Application.Visible = True
Set exDoc = ExSheet.ActiveDoc
' Load Excel and expand window
Set exDoc = ExSheet.OpenDoc("folder location\file.xls", 1)
Set exDoc = ExSheet.ActivateDoc("Pulley.SLDPRT")
ExSheet.ActiveDoc.ActiveView.FrameLeft = 0
ExSheet.ActiveDoc.ActiveView.FrameTop = 0
ExSheet.ActiveDoc.ActiveView.FrameState = 1
ExSheet.ActiveDoc.ActiveView.FrameState = 1
I’m getting lost at the point where Excel opens. It opens Excel and a sheet, but stops at the bold text line. The debugger message box opens and displays “Object doesn’t support this method or property”. I believe that I’m using the wrong syntax to keep going in Excel so I can’t even tell if the rest would be correct.
Any suggestions? My API experience is very basic. I’m a cutter and paster from examples and try to get them to work. So anything would help.
Christopher Zona - Senior CAD Designer
Concord, Ontario





RE: API Question for opening Excel
SA
RE: API Question for opening Excel
ExSheet.ActiveWindow.Left=0
ExSheet.ActiveWindow.Top=0
Better still, during development of your Solidworks project, establish a reference to Excel and then declare ExSheet as an Excel Application. For example
Dim ExSheet as New Excel.Applciation
You do not need the CreateObject function if the excel application variable is created this way. Now all methods,events and objects will be automatically exposed using the dot operator. After you have developed your project you can remove the ExSheet declaration and return to using the CreateObject function if desired.
RE: API Question for opening Excel
The preferred technique is
CODE
Set Exsheet = New Excel.Application
Good Luck
johnwm
________________________________________________________
To get the best from these forums read FAQ731-376 before posting
Steam Engine enthusiasts: www.essexsteam.co.uk