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

      

  • 相关阅读:
    Sql server2008如何导入Excel文件数据?
    oracle和sql server中,取前10条数据语法的区别
    如何将两个字段合成一个字段显示(oracle和sqlserver的区别)
    php递归注意事项
    PHP实现执行定时任务
    商城怎么使用ajax?
    添加新权限管理
    PHP判断一个JSON对象是否含有某一个属性的方法
    centos 中查找文件、目录、内容
    phpStorm中如何不让其自动添加封闭大括号?
  • 原文地址:https://www.cnblogs.com/effun/p/2718540.html
Copyright © 2011-2022 走看看