注册 登录
编程论坛 VB6论坛

visio 绘图软件实现批量打印文档和替换几个文本内容,求高手编制个宏,万分感谢!

chen0263 发布于 2017-07-28 18:57, 5364 次点击
visio 绘图软件实现批量打印文档和替换几个文本内容,求高手编制个宏,万分感谢!
6 回复
#2
wlrjgzs2017-07-28 20:19
万分感谢是什么感谢?
#3
xyxcc1772017-07-28 20:39
把图放到word中套打
#4
xyxcc1772017-07-29 09:56
Sub prt()
'先要在工具中引用ADO
'把要换的文本内容保存在excel第1列中,有字段名
Dim con As ADODB.Connection
Set con = New ADODB.Connection
Dim rs As ADODB.Recordset

Set rs = New ADODB.Recordset
Dim str As String
str = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\文本.XLSX;Extended Properties=Excel 12.0;Persist Security Info=False"
con.Open str
rs.Open "SELECT * FROM [SHEET1$]", con, adOpenKeyset, adLockOptimistic

'最后一个放入的文本框:vsoCharacters1
Dim i As Integer
i = Application.ActiveWindow.Page.Shapes.Count
    Dim vsoCharacters1 As Visio.Characters
    Set vsoCharacters1 = Application.ActiveWindow.Page.Shapes.ItemFromID(i).Characters
  Do While Not rs.EOF
       With vsoCharacters1
        .Begin = 0
        .Text = rs(0)
      End With
   Application.ActiveDocument.PrintOut PrintRange:=visPrintAll
  rs.MoveNext
 Loop
 rs.Close
 con.Close

End Sub
#5
chen02632017-07-30 09:00
我你把这个放在visio 2013 中建了个宏,
你备注里:把要换的文本内容保存在excel第1列中,有字段名
建立了个D:\文本.XLSX文件
A列
江喜超
冯小建

运行后出现错误:不能创建对象
定位到这一行:
Set vsoCharacters1 = Application.ActiveWindow.Page.Shapes.ItemFromID(i).Characters
有些疑问:
字段名指什么?
要替换成的文本在哪里输入?
可以用窗口定义要替换的文本内容吗?
我想要替换的批量文件在哪里打开?
请联系QQ1104859173指教
或微信号CXZ0263
#6
chen02632017-12-12 10:28
回复 4楼 xyxcc177
现有visio绘图方面的问题
我现在有用VISIO内的宏批量处理很多的VISIO文件,并读取相关的电子表格内的数据;
由于有人画图会在页面打印范周图外面保留有些无用图形,用来参考的,外面的会被首先读取到,影响程序读取数据的正确性,图框内的图形、文字和表格才是需要的正确数据;
各个文件存放表格的页面比例是固定的,其他页面的比例会有不同;
现在想用程序语句删除这些页面外的对象或者读取指定范围的对象,没有找到这个方法。
想请教可有方法?也可以用其他语言编程处理这个问题。可以给些钱作为报酬!
有兴趣请联系QQ1104859173,如要验证17722000263
#7
suzhanpeng2017-12-12 14:39
万分感谢=10000分=1000角=100元的感谢,这都理解不了吗?
1