公告
本专栏的相关的文章已不在简书同步更新,请直接访问 VBA探秘 官方网站或关注微信公众号获取最新文章动态。
目的
这篇教程将教会你使用 CorelDRAW VBA代码来打开和激活文档,演示 Document
对象的使用方法。
打开文档
要打开一个文档(cdr文件),你可以使用 Application.OpenDocument
方法,VBA代码如下:
Dim doc As Document
Set doc = OpenDocument("d:\MyDocuments\名片.cdr")
如果您需要,可以使用事件处理程序对打开文档触发的事件作出响应,也就是说在某个文档被打开后,你可以做你自己想做的事情:
- Application.DocumentOpen
- Document.Open
- GlobalMacroStorage.DocumentOpen
- Activating documents
每个打开后的Document
(文档)对象都是 Application.Documents
集合的一个成员。这个集合中的文档对象按照他们创建或者打开的顺序排列。
为了反映文档的实际堆积顺序,必须使用 Application.Windows
集合。Application.ActiveDocument
属性提供了对活动文档的直接访问 —— 即在当前所有打开文档中最前面的文档。ActiveDocument
类是Document
类型的对象,因此,ActiveDocument
和Document
对象一样具有相同的成员属性、方法。
如果没有打开的文档对象,则ActiveDocument
对象返回 Nothing
。你可以通过以下VBA代码来检查打开的文档:
If Documents.Count = 0 Then
MsgBox "没有任何打开的文档对象", vbOK, "提示"
Exit Sub
End If
激活文档
Document.Activate
方法用来激活一个文档,所以这个方法也可以被ActiveDocument
引用。以下的VBA代码用来激活第3个打开的文档(如果有3个或者更多的已打开的文档)
Documents(3).Activate
在Application.ActiveDocument
对象上调用 'Active' 方法是没有效果的。
如果你需要,可以通过引用下列属性之一来指定要激活的开放文档:
- Document.FilePath — 检查文件路径 (例如,D:\MyDocuments)
- Document.FileName — 检查文件名 (名片.cdr)
- Document.FullFileName — 检查绝对路径,包括文件路径和文件名 (例如,d:\MyDocuments\名片.cdr)
你可以通过以下VBA代码来检查打开文档的文件名:
Public Function findDocument(filename As String) As Document
Dim doc As Document
For Each doc In Documents
If doc.FileName = filename Then Exit For
Set doc = Nothing
Next doc
Set findDocument = doc
End Function
小结
本篇教程到此结束,更多关于文档对象(Document)的使用,请浏览博客其他文章。
原创声明:本文首发于个人CorelDRAW VBA博客,请尊重文章版权。
转载请注明原文链接:http://www.cdrvba.com/coreldraw-vba-document-open-activate/