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

      

  • 相关阅读:
    android 权限及原理
    通讯协议的相关知识(备忘)
    MongoDB安装以及java开发入门<二>
    Struts2架构图
    Lucene查询对象笔记_TermQuery(笔记)
    mongodb指南(翻译)(二十) developer zone 索引(四)地理信息索引(转载)
    项目结尾公共模块WebService封装
    Redhat 5.5下安装MongoDB
    wsimport生成客户端出现的异常
    Hibernate关于空间表查询时的的一个异常
  • 原文地址:https://www.cnblogs.com/effun/p/2718540.html
Copyright © 2011-2022 走看看