logo资料库

CorelDRAW VBA编程教程.doc

第1页 / 共156页
第2页 / 共156页
第3页 / 共156页
第4页 / 共156页
第5页 / 共156页
第6页 / 共156页
第7页 / 共156页
第8页 / 共156页
资料共156页,剩余部分请下载后查看
第一部分
第一章 VBA概述
1.1 什么是VBA
1.2 VB、VBA和VBScript
1.3 VBA的安装
1.4 VBA编辑器
1.5 一个简单VBA程序
第二章 VBA程序设计基础
2.1 VBA与CorelDRAW10
2.2 数据类型、运算符与表达式
2.3 过程
2.4逻辑运算和判断控制
2.5 循环控制
2.6 程序控件
2.7 程序调试和错误处理
第三章 VBA在CorelDraw10中的应用
3.1 输出文本及其坐标为文本文件
3.2 添加菜单和工具条
3.3 输出数据库文件
第四章 VBA实例
4.1 实例1:查找相同对象
4.2 实例2:查找并替换相同对象
4.3 实例3:为等高线自动设色
4.4 实例4:输出多边形内文本为文本文件
4.5 实例5:输出多边形内文本为数据库文件
4.6 实例6:全部关闭或打开图层
4.7 实例7:裁切阴影效果图形
4.8 实例7:裁出多边形内的图形
第二部分
第六章 VBA 6.0 for CorelDraw10开发参考
类:ActiveView
Application:
OriginX
OriginY
Parent
Type
Zoom
SetActualSize()
SetViewPoint(ByVal X AS Double, ByVal Y AS Double,
ToFitAllObjects()
ToFitArea(ByVal Left AS Double, ByVal Top AS Doubl
ToFitPage()
ToFitPageHeight()
ToFitPageWidth()
ToFitSelection()
ToFitShape(ByRef Shape AS Shape)
ToFitShapeRange(ByRef ShapeRange AS ShapeRange)
类:AddinHook
Application
Parent
Filter
Execute()
New(ByRef NewDocument AS Document)
ShapeCreated(ByRef NewShape AS Shape)
WhileDrawing(ByRef TheShape AS Shape, ByRef X AS L
类:AddIns
Application
Collection
Parent
Attach ( ByVal Filter AS cdrAddinFilter, ByVal Exe
类:Application
ActiveDocument
ActiveLayer
ActivePage
ActivePalette
ActiveSelection
ActiveSelectionRange
ActiveShape
ActiveTool
ActiveWindow
ActiveWorkspace
AddIns
Application
AppWindow
ArrowHeads
Clipboard
CommandBars
ConfigPath
Documents
EventsEnabled
FontList
Optimization
GMSManager
MainMenu
OutlineStyles
Palettes
PanoseMatching
Parent
Path
PatternCanvases
Printers
PrintJob
RecentFiles
SetupPath
StatusBar
VBE
Version
VersionBuild
VersionMajor
VersionMinor
Visible
Windows
Workspaces
cdrMixedDouble()
cdrMixedSingle()
cdrMixedLong()
CorelScript()
CorelScriptTools()
CreateBWColor(ByVal White As Boolean)
CreateCMYColor(ByVal Cyan As Long, ByVal Magenta A
CreateCMYKColor(ByVal Cyan As Long, ByVal Magenta
CreateColor()
CreateColorEx(ByVal ColorModel AS Long, ByVal V1 A
CreateDocument()
CreateDocumentFromTemplate(ByVal Template As Strin
CreateFixedColor(ByVal PaletteID As cdrPaletteID,
CreateGrayColor(ByVal GrayValue As Long)
CreateHLSColor(ByVal Hue As Long, ByVal Lightness
CreateHSBColor(ByVal Hue As Long, ByVal Saturation
CreateLabColor(ByVal L As Long, ByVal A As Long, B
CreateRegistrationColor()
CreateRGBColor(ByVal Red As Long, ByVal Green As L
CreateShapePoint(ByVal PositionX As Double, ByVal
CreateYIQColor(ByVal Y As Long, ByVal I As Long, B
OpenCorelScriptFile(ByVal FileName AS String)
ImportWorkspace(ByVal FileName As String)
OpenDocument(ByVal FileName AS String)
Quit()
类:AppWindow
Active
Application
Caption
ClientHeight
ClientWidth
Handle
Height
Left
Parent
Top
Width
WindowState
Activate()
类:ArrowHead
Index
类:ArrowHeads
Application:
Count
Item(ByVal Index AS Long)
Parent
Remove(ByVal Index AS Long)
类:Bitmap
ExternallyLinked
ResolutionX
ResolutionY
SizeHeight
SizeWidth
Inflate(ByVal Width AS Long, ByVal Height AS Long)
ResolveLink()
UpdateLink()
类:Clipboard
Application
Empty
Parent
Valid
Clear()
DataPresent(ByVal FormatName AS String)
类:CloneLink
Application
BitmapColorMaskLinked
CloneParent
FillLinked
OutlineLinked
Parent
ShapeLinked
TransformLinked
基于 Coreldraw 10 进行 VBA 二次开发和实例解析 作者:司连法 第一部分............................................................................................................................................ 6 第一章 VBA 概述...................................................................................................................6 1.1 什么是 VBA............................................................................................................ 6 1.2 VB、VBA 和 VBScript........................................................................................ 7 1.3 VBA 的安装............................................................................................................ 7 1.4 VBA 编辑器............................................................................................................ 8 1.5 一个简单 VBA 程序...............................................................................................20 第二章 VBA 程序设计基础................................................................................................ 24 2.1 VBA 与 CorelDRAW10....................................................................................... 24 2.2 数据类型、运算符与表达式...............................................................................24 2.3 过程.........................................................................................................................36 2.4 逻辑运算和判断控制..............................................................................................41 2.5 循环控制...............................................................................................................45 2.6 程序控件...............................................................................................................50 2.7 程序调试和错误处理.............................................................................................61 第三章 VBA 在 CorelDraw10 中的应用........................................................................ 72 3.1 输出文本及其坐标为文本文件.............................................................................74 3.2 添加菜单和工具条.................................................................................................89 3.3 输出数据库文件.....................................................................................................90 第四章 VBA 实例................................................................................................................107 4.1 实例 1:查找相同对象.......................................................................................107 4.2 实例 2:查找并替换相同对象...........................................................................113 4.3 实例 3:为等高线自动设色...............................................................................121 4.4 实例 4:输出多边形内文本为文本文件.......................................................... 124 4.5 实例 5:输出多边形内文本为数据库文件...................................................... 132 4.6 实例 6:全部关闭或打开图层...........................................................................137 4.7 实例 7:裁切阴影效果图形...............................................................................139 4.8 实例 7:裁出多边形内的图形...........................................................................142 第二部分............................................................................................................................... 147 第六章 VBA 6.0 for CorelDraw10 开发参考............................................................. 147 类:ActiveView............................................................................................................................147 Application:....................................................................................................................... 147 OriginX................................................................................................................................ 148 OriginY.................................................................................................................................148 Parent.................................................................................................................................. 148 Type......................................................................................................................................149 Zoom....................................................................................................................................149 SetActualSize()................................................................................................................149 SetViewPoint(ByVal X AS Double, ByVal Y AS Double, ByVal Zoom AS Double)............................................................................................................................. 149 ToFitAllObjects()..............................................................................................................150 ToFitArea(ByVal Left AS Double, ByVal Top AS Double, ByVal Right AS Double, ByVal Bottom AS Double)........................................................................ 150 ToFitPage()........................................................................................................................ 150
ToFitPageHeight()........................................................................................................... 151 ToFitPageWidth().............................................................................................................151 ToFitSelection()................................................................................................................151 ToFitShape(ByRef Shape AS Shape).......................................................................151 ToFitShapeRange(ByRef ShapeRange AS ShapeRange).................................151 类:AddinHook......................................................................................................................... 152 Application.........................................................................................................................152 Parent.................................................................................................................................. 152 Filter.....................................................................................................................................152 Execute()............................................................................................................................152 New(ByRef NewDocument AS Document)........................................................... 152 ShapeCreated(ByRef NewShape AS Shape)........................................................152 WhileDrawing(ByRef TheShape AS Shape, ByRef X AS Long, ByRef Y AS Long).................................................................................................................................. 152 类:AddIns................................................................................................................................. 152 Application.........................................................................................................................152 Collection............................................................................................................................153 Parent.................................................................................................................................. 153 Attach ( ByVal Filter AS cdrAddinFilter, ByVal ExecuteCommandPrompt AS String ).............................................................................................................................. 153 类:Application.........................................................................................................................153 ActiveDocument.............................................................................................................. 153 ActiveLayer........................................................................................................................153 ActivePage......................................................................................................................... 154 ActivePalette..................................................................................................................... 154 ActiveSelection................................................................................................................ 154 ActiveSelectionRange....................................................................................................155 ActiveShape...................................................................................................................... 155 ActiveTool........................................................................................................................... 155 ActiveWindow...................................................................................................................156 ActiveWorkspace.............................................................................................................156 AddIns................................................................................................................................. 156 Application.........................................................................................................................156 AppWindow........................................................................................................................157 ArrowHeads.......................................................................................................................157 Clipboard............................................................................................................................ 157 CommandBars..................................................................................................................158 ConfigPath......................................................................................................................... 158 Documents........................................................................................................................ 158 EventsEnabled..................................................................................................................158 FontList............................................................................................................................... 159 Optimization......................................................................................................................159 GMSManager.....................................................................................................................160 MainMenu...........................................................................................................................160 OutlineStyles.................................................................................................................... 160 Palettes............................................................................................................................... 161 PanoseMatching...............................................................................................................161 Parent.................................................................................................................................. 161 Path...................................................................................................................................... 162 PatternCanvases..............................................................................................................162 Printers................................................................................................................................163 PrintJob............................................................................................................................... 163 RecentFiles........................................................................................................................ 163 SetupPath...........................................................................................................................163
StatusBar........................................................................................................................... 163 VBE....................................................................................................................................... 163 Version................................................................................................................................ 164 VersionBuild...................................................................................................................... 164 VersionMajor.....................................................................................................................164 VersionMinor..................................................................................................................... 164 Visible.................................................................................................................................. 165 Windows............................................................................................................................. 165 Workspaces....................................................................................................................... 165 cdrMixedDouble()........................................................................................................... 166 cdrMixedSingle().............................................................................................................166 cdrMixedLong()................................................................................................................166 CorelScript()..................................................................................................................... 167 CorelScriptTools()........................................................................................................... 167 CreateBWColor(ByVal White As Boolean)........................................................ 168 CreateCMYColor(ByVal Cyan As Long, ByVal Magenta As Long, ByVal Yellow As Long)............................................................................................................................. 168 CreateCMYKColor(ByVal Cyan As Long, ByVal Magenta As Long, ByVal Yellow As Long, ByVal Black As Long) 168 CreateColor()....................................................................................................................168 CreateColorEx(ByVal ColorModel AS Long, ByVal V1 AS Long, ByVal V2 AS Long, ByVal V3 AS Long, ByVal V4 AS Long, ByVal V5 AS Long, ByVal V6 AS Long, ByVal V7 AS Long) ............................................................................................................................................... 169 CreateDocument()..........................................................................................................169 CreateDocumentFromTemplate(ByVal Template As String, [ByVal CreateFixedColor(ByVal PaletteID As cdrPaletteID, ByVal PaletteIndex As IncludeGraphics As Boolean = True]) 170 Long, [ByVal Tint As Long = 100]) 170 CreateGrayColor(ByVal GrayValue As Long)....................................................... 170 CreateHLSColor(ByVal Hue As Long, ByVal Lightness As Long, ByVal CreateHSBColor(ByVal Hue As Long, ByVal Saturation As Long, ByVal Saturation As Long) 170 Brightness As Long) 170 CreateLabColor(ByVal L As Long, ByVal A As Long, ByVal B As Long).... 171 CreateRegistrationColor()........................................................................................... 171 CreateRGBColor(ByVal Red As Long, ByVal Green As Long, ByVal Blue As Long).................................................................................................................................. 171 CreateShapePoint(ByVal PositionX As Double, ByVal PositionY As Double) ............................................................................................................................................... 171 CreateYIQColor(ByVal Y As Long, ByVal I As Long, ByVal Q As Long).....171 OpenCorelScriptFile(ByVal FileName AS String)................................................172 ImportWorkspace(ByVal FileName As String).................................................... 172 OpenDocument(ByVal FileName AS String)........................................................ 172 Quit()................................................................................................................................... 173 类:AppWindow..........................................................................................................................173 Active...................................................................................................................................173 Application.........................................................................................................................173 Caption................................................................................................................................173 ClientHeight...................................................................................................................... 174 ClientWidth........................................................................................................................174 Handle................................................................................................................................. 174 Height.................................................................................................................................. 174 Left........................................................................................................................................175
Parent.................................................................................................................................. 175 Top........................................................................................................................................ 175 Width....................................................................................................................................176 WindowState.....................................................................................................................176 Activate()........................................................................................................................... 176 类:ArrowHead.........................................................................................................................176 Index....................................................................................................................................177 类:ArrowHeads.......................................................................................................................177 Application:....................................................................................................................... 177 Count................................................................................................................................... 178 Item(ByVal Index AS Long)........................................................................................178 Parent.................................................................................................................................. 178 Remove(ByVal Index AS Long)................................................................................. 179 类:Bitmap.................................................................................................................................179 ExternallyLinked..............................................................................................................179 ResolutionX....................................................................................................................... 179 ResolutionY........................................................................................................................180 SizeHeight..........................................................................................................................180 SizeWidth........................................................................................................................... 180 Inflate(ByVal Width AS Long, ByVal Height AS Long).....................................180 ResolveLink()....................................................................................................................181 UpdateLink().....................................................................................................................181 类:Clipboard............................................................................................................................ 181 Application.........................................................................................................................181 Empty.................................................................................................................................. 181 Parent.................................................................................................................................. 182 Valid......................................................................................................................................182 Clear()................................................................................................................................. 182 DataPresent(ByVal FormatName AS String)....................................................... 182 类:CloneLink............................................................................................................................183 Application.........................................................................................................................183 BitmapColorMaskLinked...............................................................................................183 CloneParent.......................................................................................................................184 FillLinked............................................................................................................................ 184 OutlineLinked....................................................................................................................185 Parent.................................................................................................................................. 185 ShapeLinked..................................................................................................................... 185 TransformLinked..............................................................................................................186
第一部分 第一章 VBA 概述 1.1 什么是 VBA VBA(Visual Basic for Applications)是 Microsoft Visual Basic(VB)面向对象程序开发环境 的一个子集,是新一代标准宏语言。VBA 使用 Visual Basic Editor 交互开发环境和 VB 语言 操作应用程序的对象来增强应用程序的功能。 VBA 为 用户 提 供了 一 套 客户 化 Corel 应 用程 序 的图 形 用 户界 面 ,如 CorelDraw 和 CorelPHOTO-PAINT。用户可以对应用程序中的对象进行有效地操作和处理。VBA 使用 VB 语言,由于它多用于集成到别的应用程序并对应用程序的函数进行客户化,它才加上了“for applications”,称作 VBA。 VBA 可以通过记录和运行宏来自动化一系列 Corel 的任务。更重要的是使用 VB 语言和 应用程序内部函数开发更多的适合于用户需要的功能。 VBA 的面向对象性是其与传统宏语言的重要区别之一。对象是 VB 和 VBA 中常用到的 概念,它是为了在 VBA 程序中管理数据和代码的方便提出来的。在 VBA 中,对象是封装 有数据和代码的客体。VBA 中各对象并不是孤立存在的,而是彼此之间存在包含与被包含 关系。我们把包含其它对象的对象称为容器。容器可以包含其它对象,也可以被更大的容器 所包含。 对象具有属性、事件和方法。对象的属性是封装在对象内部的数据,它反映了对象的特 征。VBA 中的每个对象都有许多属性。对象的大多数属性是可读的,但不是所有的属性都 是可写的。 在 VBA 中访问对象的属性用“.”运算符,语法格式为: 对象 . 属性 例如 Shape.Fill。 事件是每个对象所具有的动作,且对象可以辨别事件是否发生。在设计阶段,用户可以 写一些代码来响应该事件;在执行时,用户对对象的操作、程序代码的结果或系统本身都有 可能导致事件的发生。当某事件发生后,将调用该事件的相应程序代码来完成某一操作。 对象的方法是封装在对象中用来操作对象属性的代码段。这些代码段对于用户来说是不 可见的,也是不可改写的。用户在使用对象的方法时,只需要关心方法的名称、参数和用法, 不需要关心其具体实现过程。 在 VBA 中访问对象的方法用“.”运算符,语法格式为: 对象 . 方法 参数 1,参数 2,…,参数 n 例如 Shape.Clone 1.2 VB、VBA 和 VBScript Visual Basic 是由 Basic 发展而来的功能较为完善的高级程序开发工具。Visual Basic 提 供了大量的功能强大的用于 Windows 操作系统的函数和组件以及其他的基于 Windows 的程 序。VB 可用于开发 Windows 环境下的各类应用程序,是一种可视化的、面向对象的、采
用事件驱动方式的结构化高级程序设计语言。它具有高效率、简单易学及功能强大的特点。 VB 程序语言简单、便捷,使用事件驱动的编程机制,具有新颖易用的可视化设计工具,并 使用 Windows 应用程序接口(API)函数,采用动态链接库(DLL)、动态数据交换(DDE)、对 象的链接与嵌入(OLE)以及开放式数据库访问(ODBC)等技术,可以高效、快速地编制出 Windows 环境下功能强大、图形界面丰富的应用软件系统。 Visual Basic 程序很大一部分以可视(Visual)形式实现,这意味着在设计阶段就可以看到 程序运行的屏幕画面,用户可以在设计时能够方便地改动画面图像、大小、颜色等,直到满 意为止。VB 的用户可以是缺乏 Windows 及 C 语言开发经验的专业软件人员,也可以是具 有一定 Windows 开发经验的专业人员。VB 的可视化编程方法使得原来繁琐枯燥、令人生 畏的 Windows 应用程序设计变得轻松自如。以往的 Windows 应用程序开发工具在设计图 形用户界面时,都是采用编程的方法,并伴随大量的计算任务,一个大型应用程序约有 90% 的程序代码用来处理用户界面,而且在程序设计过程不能看到界面显示的效果,只有在程序 执行时才能观察到,如果界面效果不佳,还需要回到程序中去修改。VisualBasic 提供了新 颖的可视化设计工具,巧妙地将 Windows 界面设计的复杂性封装起来,程序开发人员不必 再为界面设计而编写大量程序代码,仅需采用现有工具按设计者要求的布局,在屏幕上画出 所需界面,并为各图形对象设置属性即可,VB 自动产生界面设计代码,这样便将事先编制 好的控件可视地连接到一起,构成一个随时可调整的界面。 VBA 继承了 VB 的开发机制,具有与 VB 相似的语言结构。它们的集成开发环境 IDE(Intergrated Development Environment)也几乎相同。但是,经过优化,VBA 专门用于 Office、CorelDraw 等应用程序。二者的区别在于 VB 可生成直接运行于 Windows 9X、 Windows2000、WindowXP 和 NT 桌面上的应用程序,而 VBA 的项目(Project)仅由使用 VBA 的宿主(Host)应用程序(Application)来调用。例如,使用 VB 可以建立*.dll 动态链接库和独立 执行的*.exe 应用程序,而 VBA 或 VBScript 就不能建立这些组件。 VBA 也可以称作 VB 应用程序编辑版。它是 VB 语言的子集。它应用 VB 的程序结构对 对象模型中的对象进行操作。对象模型是类似 CorelDRAW 和 CorelPHOTO-PAINT 等应用程 序公开的程序结构。对这些对象的操作在应用程序中生成一些小的代码程序。这些代码程序 和产生的工程称作插件(add-ins)。 VBScript 也可以称作 VB 的脚本版。VBScript 也是 VB 语言的子集。它是基于 web 的 HTML 文档脚本语言。 1.3 VBA 的安装 CorelDRAW10 的缺省安装下,VBA 不安装,因为它占用将近 50 兆的硬盘空间。要想 安装 CorelDRAW10 下的 VBA 编辑器,必须使用自定义安装。在安装程序选项中选中 Main\Productivity Tools\Visual Basic for Applications 6.0 & IE5(如图 1-1)。这样,VBA 就自 动地安装在 CorelDRAW10 中。打开 CorelDRAW10,建立新文件。打开菜单“Tools”下的 子菜单“Visual Basic”,若其子菜单“Visual Basic Editor…”为黑色可用,说明 VBA 安装成 功。此版本为 VBA 6.0。如果此菜单不可用,说明安装不成功,需要重新安装。
图 1-1 VBA 安装 1.4 VBA 编辑器 VBA 编辑器是编辑 VBA 程序的场所。VBA 建立的每一个文档或图像都有一个相应的 VBA 工程。当您打开一个 CorelDRAW 文档时,在 VBA 编辑器中就打开了一个相应的 VBA 工程。若想通过 VBA 代码程序对文档进行客户化,必须在 VBA 编辑器中打开该工程,然 后才能进行下一步操作。 VBA 编辑器的作用是建立和管理 VBA 工程。它具有工程资源管理器、代码窗口、属性 窗口以及编译调试窗口等(如图 1-2),与 VB 集成开发环境几乎相同。 图 1-2 VBA 编辑器 1.4.1 VBA 编辑器的打开方法 在 CorelDRAW 中,用户打开 VBA 编辑器的方法有四种: (1)记录宏然后打开 VBA 编辑器
在 CorelDRAW 中,用户可以先使用宏记录器将用户要进行的操作记录下来,该宏自动 转换成 VBA 代码,在 VBA 编辑器中即可以对宏代码进行编辑和增加功能。要这样做,应 首先在 CorelDRAW 中单击菜单 Tools->Visual Basic->Record,记录一个宏,然后单击菜 单 Tools->Visual Basic->Play,弹出运行宏对话框(如图 1-3)。 图 1-3 宏对话框 在对话框中选择记录的宏并单击“Edit”按钮,CorelDRAW 立即打开 VBA 编辑器并在 其中打开代码窗口,以显示记录的宏代码(如图 1-4)。 图 1-4 宏编辑状态 (2) 通过菜单进入 VBA 编辑器 在 CorelDRAW 中,用户可以单击菜单 Tools->Visual Basic->Visual Basic Editor…进 入 VBA 编辑器。此时显示出缺省的 VBA 工程。用户可以在此工程中增加自己的模块、窗 体等。 (3) 通过快捷方式进入 VBA 编辑器 按下“Alt+F11”快捷键即可以进入 VBA 编辑器。 (4) 通过工具条进入 VBA 编辑器 首先显示出“Visual Basic for Applications”工具条,单击工具条上的“VBA Editor”按 钮即可以进入 VBA 编辑器。
分享到:
收藏