zoukankan      html  css  js  c++  java
  • 把Visio文档中形状信息导出到XML文件的VBA代码

    从老外那里找来,做了一些修改,原文地址:http://www.vbaexpress.com/kb/getarticle.php?kb_id=506

    Option Explicit
     
    Public Sub LocationTable()
         'This routine will create a text file of the location and size of all 2-d shapes
         ' on the current page
        Dim shpObj     As Visio.Shape, celObj As Visio.Cell
        Dim ShpNo      As Integer, Tabchr     As String, localCent As Double
        Dim LocationX  As String, LocationY   As String
        Dim ShapeWidth As String, ShapeHeight As String
        Dim unit As String
        
        unit = "mm"
         'Open or create text file to write data
        Open "C:\temp\LocationTable.xml" For Output Shared As #1
         
        Tabchr = Chr(9'Tab
         
        Print #1"<?xml version=""1.0"" encoding=""gb2312"" ?>"
        Print #1"<document path="""; Visio.ActiveDocument.Path; """ name="""; Visio.ActiveDocument.Name; """>"
        Print #1"<shapes unit="""; unit; """>"
         
         
         'Loop Shapes collection
        For ShpNo = 1 To Visio.ActivePage.Shapes.Count
             
            Set shpObj = Visio.ActivePage.Shapes(ShpNo)
            If Not shpObj.OneD Then ' Only list the 2-D shapes
                 
                 'Get location Shape
                Set celObj = shpObj.Cells("pinx")
                localCent = celObj.Result(unit)
                LocationX = localCent ' Format(localCent, "000.0000")
                Set celObj = shpObj.Cells("piny")
                localCent = celObj.Result(unit)
                LocationY = Format(localCent, "000.0000")
                 
                 'Get Size Shape
                Set celObj = shpObj.Cells("width")
                localCent = celObj.Result(unit)
                ShapeWidth = Format(localCent, "000.0000")
                Set celObj = shpObj.Cells("height")
                localCent = celObj.Result(unit)
                ShapeHeight = Format(localCent, "0.0000")
                 
                 'Write values to Text file starting Name of Shape
                Print #1"<shape name="""; shpObj.Name; """ type="""; shpObj.Type; """ text="""; shpObj.Text; """ bounds="""; _
                 LocationX; ","; LocationY; ","; ShapeWidth; ","; ShapeHeight; """ />"
            End If
             
        Next ShpNo
        
        Print #1"</shapes>"
        Print #1"</document>"
         'Close Textfile
        Close #1
         
         'Clean Up
        Set celObj = Nothing
        Set shpObj = Nothing
    End Sub

      

  • 相关阅读:
    u-boot 2011.09 调用kernel 的流程
    Delphi repeat Until 运用
    clientdataset的使用
    类型TTreeView.items.add 与 TTreeView.items.addchild有何区别?(10分)
    delphi中nil、null、UnAssigned区别
    操作TreeView(咏南工作室)
    delphi7 treeview + 数据库 实现动态节点维护
    Delphi Try Except 实例
    Delphi 中自定义异常及异常处理的一般方法
    Delphi中的异常处理(10种异常来源、处理、精确处理)
  • 原文地址:https://www.cnblogs.com/effun/p/2718540.html
Copyright © 2011-2022 走看看