View Single Post
 
Old 09-09-2015, 06:03 PM
macropod's Avatar
macropod macropod is offline Windows 7 64bit Office 2010 32bit
Administrator
 
Join Date: Dec 2010
Location: Canberra, Australia
Posts: 21,963
macropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond repute
Default

Here's an article about Early and Late Binding: https://support.microsoft.com/en-us/kb/245115.

An essential distinction between early binding and late binding is that, to use early binding, you must set a reference to the application (in this case AutoCAD) in the VBE via Tools|References. Once you do that, though, you can use all of the application's methods, procedures and properties much more easily than you can using late binding.

Using early binding, your code might become:
Code:
Sub Convert_dxf()
Dim AcadApp As AutoCAD.Application
Dim AcadDoc As AutoCAD.Document
Dim SS As AutoCAD.AcadSelectionSet
Set AcadApp = New AutoCAD.Application
With AcadApp
  .Visible = False
  Set AcadDoc = .Documents.Open("C:\drawing.dxf")
  With AcadDoc
    Set SS = .SelectionSets("SS")
    .Export "C:\drawing.wmf", "WMF", SS
    .Close SaveChanges:=False
  End With
  .Quit
End With
Set SS = Nothing: Set AcadDoc = Nothing: Set AcadApp = Nothing
End Sub
Note: I don't have AutoCAD, so I don't know what it's VB object model looks like or what methods, procedures and properties are available. Accordingly, you'll have to do your own work on that front. For testing purposes, you'll also want to comment-out the line:
.Visible = False
otherwise you could end up with a plethora of hidden and orphaned AutoCAD sessions running in the background.
__________________
Cheers,
Paul Edstein
[Fmr MS MVP - Word]
Reply With Quote