fjfhgdwfn 发表于 2005-10-27 17:39:00

VBA批打印程序(打印同一目录下的DWG)

不知道哪位兄弟给改进下,如果我用了CLOSE,怎么会出错啊!望高手改进下!初学。
Sub wj()
Dim s As String
Dim Path As String, FileName As String
Dim dwgname As String
Dim point1(0 To 1) As Double, point2(0 To 1) As Double
FileName = "*.dwg"
Path = "C:\123"    '修改路径
   
    s = Dir(Path & "\" & FileName)

point1(0) = 70 '打印范围
point1(1) = 70
point2(0) = 4130
point2(1) = 2900
   While s""
   dwgname = Path & "\" & s

      ThisDrawing.Application.Documents.Open dwgname
If Not ThisDrawing.ModelSpace.Layout.StyleSheet = "acad.ctb" Then ThisDrawing.ModelSpace.Layout.StyleSheet = "acad.ctb" ' 修改打印样式表
   ThisDrawing.ModelSpace.Layout.SetWindowToPlot point1, point2
   
ThisDrawing.ModelSpace.Layout.GetWindowToPlot point1, point2

    ThisDrawing.ModelSpace.Layout.PlotType = acWindow

ThisDrawing.ModelSpace.Layout.UseStandardScale = 0.001 '修改比例
ThisDrawing.ModelSpace.Layout.PlotWithPlotStyles = True

If Not ThisDrawing.ModelSpace.Layout.ConfigName = "HP LaserJet 5000LE" Then ThisDrawing.ModelSpace.Layout.ConfigName = "HP LaserJet 5000LE" ' 修改打印机
If Not ThisDrawing.ModelSpace.Layout.CanonicalMediaName = "A3" Then ThisDrawing.ModelSpace.Layout.CanonicalMediaName = "A3" ' 修改图幅


    ThisDrawing.Plot.NumberOfCopies = 1
ThisDrawing.ModelSpace.Layout.PlotRotation = ac90degrees
      ThisDrawing.ModelSpace.Layout.PaperUnits = acMillimeters
   ThisDrawing.Plot.PlotToDevice

      s = Dir
   Wend

End Sub

lafare 发表于 2005-10-30 20:54:00

如果在DWG文件中包含若干图形,这个程序恐怕就不应用了!

fjfhgdwfn 发表于 2005-10-31 10:01:00

如果有规律,改下就行了吧
自己改了下重上传
页: [1]
查看完整版本: VBA批打印程序(打印同一目录下的DWG)