vba-如何将VISIO文件中的页面中的所有形状复制到另一个文件中
发布时间:2022-04-29 13:31:22 265
相关标签:
这个问题的目的
- 如何一次从一个VISIO文件(A.vsdx)的一页选择并复制所有图形到另一个VISIO文件(B.vsdx)的另一页
实现代码
Dim vsoApp As Visio.Application
Dim vsoDoc As Visio.Document
Dim new_vsoDoc As Visio.Document
Dim vsoPage As Visio.Page
Dim vsoItemsCnt As Long
Dim vsoShape As Visio.Shape
' open the vsdx file (source)
VISIOpath = "original.vsdx"
Set vsoApp = CreateObject("Visio.Application")
Call vsoApp.Documents.OpenEx(VISIOpath, visOpenRW)
Set vsoDoc = vsoApp.Documents.Item(1)
vsoItemsCnt = vsoApp.Documents.Count
Call vsoApp.Documents.OpenEx(VSSXpath, visOpenRO)
Set vsoApp = CreateObject("Visio.Application")
Call vsoApp.Documents.OpenEx(VISIOpath, visOpenRW)
Set vsoDoc = vsoApp.Documents.Item(1)
' open the vsdx file (target)
new_path = "new.vsdx"
Call vsoApp.Documents.OpenEx(new_path, visOpenRW)
vsoItemsCnt = vsoApp.Documents.Count
Dim new_vsoDoc As Visio.Document
Set new_vsoDoc = vsoApp.Documents.Item(vsoItemsCnt)
For Each vsoPage In vsoDoc.Pages
vsoWindow.Page = vsoDoc.Pages.ItemU(vsoPage.NameU)
If vsoPage.NameU = "foobar" Then
For Each vsoShape In vsoPage.Shapes
vsoWindow.Selection.Select vsoShape, visSelect
Next vsoShape
vsoWindow.Selection.Copy
newvsoDoc.Pages.Item(vsoPage.Name).Paste
vsoWindow.Selection.DeSelectAll
End If
Next vsoPage
newvsoDoc.SaveAs "change_.vsdx"
End Sub
有两点代码我不知道如何实现。
第一
- 在ActiveWindow命令中不能使用ActiveWindow时的另一种选择。选择
第二
- 如何复制所有形状,同时保留页面的X和Y坐标
要求
- 在保持连接器连接的同时进行复制
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报