问题
今天写了个自动调整 cdr
文件并打印的VBA
全局宏,代码比较简单。按照正常逻辑,在文档打开的时候,会自动运行DocumentOpen
事件,并执行下面的代码。
Private Sub GlobalMacroStorage_DocumentOpen(ByVal Doc As Document, ByVal FileName As String)
Const width = 297
Const height = 420
Doc.Unit = cdrMillimeter
Doc.ActivePage.SetSize width, height
Dim sh As Shape
'Dim filePath As String
Dim name As String
Set sh = Doc.ActivePage.SelectShapesFromRectangle(-10000, -10000, 10000, 10000, True)
sh.CenterX = width / 2
sh.CenterY = height / 2
Doc.Save
Doc.PrintOut
End Sub
But… , 这段代码只会在菜单 文件-->打开
这种方式打开的文档里执行,通过双击打开的cdr
文件并不会触发这个事件,这就尴尬了。
原因
VBA
宏在 CorelDraw
中默认是延迟载入的,只有在文档载入之后,宏才会被载入,所以主要关闭延迟载入就可以了。
解决
菜单工具-->选项
打开选项面板。
然后菜单 工具--->另存默认设置
,再双击打开文件就可以了。