CorelDRAW VBA - 创建GMS全局宏工程

公告


本专栏的相关的文章已不在简书同步更新,请直接访问 VBA探秘 官方网站或关注微信公众号获取最新文章动态。

coreldraw-vba-create-gms

目的

这篇教程将教会你使用 CorelDRAW 来创建自己的宏工程(项目)。宏工程(GMS工程)主要是用于开发自定义程序,它将所有VBA代码保存在一个后缀名为 .gms 的文件中,该文件可以拷贝到其他机器上供他人使用。

注意:高版本 CorelDRAW 创建的GMS工程可能在低版本中无法使用,但是,在低版本 CorelDRAW 中创建的GMS宏工程可以在高版本的 CorelDRAW 中使用。

一、创建宏工程

打开 CorelDRAW X7,执行工具菜单下的“宏 > 宏管理器”命令,或者按快捷键【Alt】+【Shift】+【F11】打开宏管理器面板,选中 Visual Basic For Applications 节点,执行面板顶部的“新建宏工程”命令,如下图所示:

coreldraw-macro-manager

coreldraw-macro-manager-panel

coreldraw-new-macro-project.jpg

我们将这个宏工程命名为MyMacro。保存该宏工程(GMS工程)后,在面板上可以看到我们刚刚创建的宏工程。展开这个宏工程的默认脚本,右键点击,执行“编辑”命令,进入VBA代码编辑界面,如下图所示:

coreldraw-macro-project-edit

编写VBA代码

进入VBA代码编辑器界面,默认是空白的,没有任何代码。我们在窗口中键入以下3行代码:

Sub main()
    MsgBox "Hello, This is my first macro project!"
End Sub

如下图所示:

coreldraw-macro-project-main-code

代码说明:这3行VBA代码的作用是创建了一个名为 main 的过程(方法),该过程(方法)的功能是使用 VB函数 MsgBox 弹出一个消息框,你如果已经阅读过 CorelDraw VBA - 第一个Hello World程序 这篇文章,就知道它的作用了。下面我们试着运行它看看。

运行宏工程

进入文档界面,在宏管理器面板中,找到我们创建的 MyMacro 宏工程,可以看到多出了一个可运行的脚本节点。双击即可运行,如下图所示:

coreldraw-macro-project-running

入口函数(方法)暴露

入口函数,也叫入口方法。在程序语言设计中是一个通用的概念。即指定一个代码块,程序将从这个代码块开始运行,相当于程序的入口。

现在,我们再加入一个名为 invisibleMethod 的过程(方法),在方法前面用 Private 关键字来修饰。VBA代码如下:

Private Sub invisibleMethod()
    MsgBox "This method is private method."
End Sub

同时,我们再将 main 过程(方法)中的代码体修改一下,让它调用这个过程,VBA代码如下:

Sub main()
    invisibleMethod
End Sub

连起来,代码如下:

Sub main()
    invisibleMethod
End Sub

Private Sub invisibleMethod()
    MsgBox "This method is private method."
End Sub

现在,再到宏管理器面板去查看,会发现这个方法不会被暴露出来。双击运行 main,会发现 invisibleMethod 被调用了,如下图所示:

coreldraw-macro-method-call

小结

  • 宏工程是用来编写自定义全局宏代码的,与 CorelDraw VBA - 第一个Hello World程序 这篇文章不同的是,后者是将VBA代码和文档放在一起运行。这种方式不太好,在某些情况下,带有VBA代码的 CorelDRAW 文档,可能无法打开,或者打开时会提示错误。
  • 宏工程又叫GMS工程,宏工程的文件后缀名是 .gms
  • 宏工程文件默认存放的路径是在 你的CorelDRAW软件安装目录/Draw/GMS 这个文件夹下面。
  • 可以用 Private 关键字来修饰一个隐藏的方法,该方法表示是当前模块私有的,不会对外公开。

原创声明:本文首发于个人CorelDRAW VBA博客,请尊重文章版权。
转载请注明原文链接:http://www.cdrvba.com/coreldraw-vba-macro-project/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268