教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

利用CorelDraw VBA开发宏程序绘制地图 doc

来源:网络收集 时间:2026-08-29
导读: 利用CorelDraw VBA开发宏程序绘制地图 上海测绘院第四分院 钟炜 摘要: CorelDraw软件为用户提供了VBA编写宏程序的开发环境,用户可以编写宏程序来让计算机自动完成一系列的操作,从而达到减轻工作量的目的。这个技术也可以用来解决在地图绘制领域普遍存在的

利用CorelDraw VBA开发宏程序绘制地图

上海测绘院第四分院 钟炜

摘要:

CorelDraw软件为用户提供了VBA编写宏程序的开发环境,用户可以编写宏程序来让计算机自动完成一系列的操作,从而达到减轻工作量的目的。这个技术也可以用来解决在地图绘制领域普遍存在的一些问题。本文通过两个实际例子,介绍了CorelDraw VBA的基本情况和对象模型,以及这个工具是如何解决问题,提高生产效率的。

关键字:CorelDraw VBA 地图绘制

1、问题的提出

在目前的地图制作领域,我们主要使用的软件是Corel公司的矢量绘图软件CORELDRAW。CORELDRAW被大量应用于广告设计和制图领域,美观是用CORELDRAW绘制的地图的最大特点。由于地图相对于其他矢量图片的特殊性,在使用CORELDRAW进行地图的绘制时,我们往往会碰到一些问题或者可以改善的地方。在这里我们可以举两个例子来说明这类问题。第一个例子是在制作专题地图中,某一专题的符号已经设计好,但是由于客户的原因,这个设计需要更改,这时工作人员在CORELDRAW上要进行的操作就是在图上找到每个专题要素的位置并把新的符号放上去。而如果这个专题要素的量很多的话,这个工作是费时费力的。第二例子,我们知道,在地图制作中我们经常利用数据,也就是对已有的矢量图片进行编辑。数据的来源不一,质量也有好有坏。如果在数据中有重复的物件,肉眼从图面上也发现不了,要想清理掉重复数据只能从物件列表中一一判断,这个工作是相当烦琐的。解决这一类问题的途径之一是使用CORELDRAW为我们提供的VBA开发环境来编写一些宏程序,让程序来帮助我们完成工作。

2、CorelDraw VBA简介

VBA,(visual basic for applications),是一种标准宏语言。 VBA提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。它作为一种通用的宏语言可被所有的Microsoft 可编程应用软件所共享,使可编程应用软件得到完美的实现。VBA 是基于Visual Basic 发展而来的,它们具有相似的语言结构,它们的集成开发环境IDE(Intergrated Development Environment)也几乎相同。二者不同之处在于:利用VB我们可以编写出独立的windows可执行程序(exe文件),而在使用VBA时我们必须在一个宿主软件中调用我们所编写的程序。CORELDRAW从6.0版本即支持宏命令(Marcos),但直到9.0版本它都主要使用它自己特有的CORELSCRIPT语言进行宏命令的编写。1998年,COREL公司作出战略

性决定,决定在CORELDRAW 9.0中引入VBA,这使CORELDRAW立刻得到了很多VBA开发者的喜爱。但是在CORELDRAW的9.0版本中,针对VBA的对象模型并不很完善,这很大程度地限制了利用VBA对CORELDRAW的开发。在10.0以后的版本中,情况得到了彻底的改善,在11版本后的VBA环境已经非常的成熟,用户可以用CorelDraw VBA很轻松地调用CORELDRAW的现有功能,也可以利用CorelDraw VBA来调用CORELSCRIPT语言来实现一些特定的操作。

为了让读者更好地理解CorelDraw VBA是如何调用CORELDRAW功能,在这里我们介绍一下在解决文中的两个示例问题时我们用到的CorelDraw VBA的对象模型:

Application Documents Document Pages Documents Document Layers Shapes Properties ShapeRange

3、如何使用CorelDraw VBA

以CORELDRAW 12为例,我们要想使用CorelDraw VBA开发的宏命令,首先要把宏命令程序文件(.gms文件)存到“\\CORELDRAW\\Draw\\GMS”中,之后我们在只CORELDRAW按下“工具→Visual Basic(V)→播放”键,就可以看到宏管理器的窗口,在此窗口下我们可以很方便地运行和管理宏命令。

4、问题的解决:

在分析问题和操作流程后,就可以通过编写成宏程序,让计算机进行批量的操作,实现自动化处理。上述两个问题,我们可以通过以下程序解决。程序的关键代码如下: 1.符号替换问题

ActiveDocument.ReferencePoint = cdrCenter ActiveDocument.BeginCommandGroup \ For Each s In ActiveLayer.Shapes

If s.Type <> cdrTextShape Then //不对文字进行操作 s.GetPosition x, y s.Delete

ActiveLayer.Paste //删去旧的符号,贴上新的 Dim Paste1 As ShapeRange

Set Paste1 = ActiveSelectionRange Paste1.SetPosition x, y End If Next s

ActiveDocument.EndCommandGroup

2.清理重复物件问题

ActiveDocument.BeginCommandGroup \ Do Until i > ActiveLayer.Shapes.Count ActiveLayer.Shapes(i).GetPosition x1, y1 Do Until j > ActiveLayer.Shapes.Count ActiveLayer.Shapes(j).GetPosition x2, y2 If x2 = x1 And y2 = y1 Then

ActiveLayer.Shapes(j).Delete //删去重复的物件 j = j - 1 End If j = j + 1 Loop i = i + 1 j = i + 1 Loop

ActiveDocument.EndCommandGroup 5、结论

以上两个例子说明,通过使用CorelDraw VBA编写的宏程序,可以减轻工作

量,缩短工作时间。笔者认为,编写这样的宏程序的关键是分析制图过程中一般都会碰到的问题和解决问题的传统方法,再利用VBA的开发环境写出宏程序,让计算机实现一定程度的自动化。这样的宏程序才可以被应用于每一张地图的绘制当中。

参考文献:

[1] CorelDraw 12 Programming Guide for VBA [2] CorelDraw 12 VBA Object Model

[3] “Using VBA with Corel Applications”

http://www.oberonplace.com/vba/index.htm

…… 此处隐藏:1162字,全部文档内容请下载后查看。喜欢就下载吧 ……
利用CorelDraw VBA开发宏程序绘制地图 doc.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/605954.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)