第1章 VBA介绍 1
1.1 什么是VBA? 1
1.2 为什么要学习VBA? 1
1.3 什么时候应该使用VBA? 2
1.4 怎样使用VBA? 2
1.5 VBA是什么样子的? 5
本章回顾 6
第2章 VBA工程管理器 7
2.1 VBA工程管理器的功能 8
2.2 宏对话框 9
本章回顾 10
第3章 VBA IDE 11
3.1 菜单 12
3.1.1 File(文件)菜单 12
3.1.2 Edit(编辑)菜单 12
3.1.3 View(视图)菜单 13
3.1.4 Insert(插入)菜单 13
3.1.5 Format(格式)菜单 14
3.1.6 Debug(调试)菜单 14
3.1.7 Run(运行)菜单 14
3.1.8 Tools(工具)菜单 15
3.1.9 Add-Ins(外接程序)菜单 15
3.1.10 Window(窗口)菜单 16
3.1.11 Help(帮助)菜单 16
3.2 工具栏 16
3.2.1 标准工具栏 16
3.2.2 编辑工具栏 17
3.2.3 调试工具栏 17
3.2.4 用户窗体工具栏 17
3.3 窗口 17
3.3.1 工程资源管理器 17
3.3.2 对象浏览器 18
3.3.3 属性窗口 18
3.3.4 监视窗口 19
3.3.5 本地窗口 19
3.3.6 立即窗口 20
3.3.7 调用堆栈窗口 20
3.3.8 工具箱窗口 21
3.3.9 其他窗口 22
本章回顾 23
第4章 寻找帮助 24
4.1 术语 24
4.2 帮助文件 26
4.2.1 内容选项卡 26
4.2.2 索引选项卡 27
4.2.3 搜索选项卡 28
4.2.4 书签选项卡 29
4.2.5 MicroStation VBA帮助文件 30
4.3 网络 31
4.4 对象浏览器 34
本章回顾 35
第5章 模块、窗体和类模块 36
5.1 模块 36
5.2 窗体 40
5.3 类 42
5.4 过程和函数 45
5.4.1 返回一个数组 49
5.4.2 返回“类型” 51
5.4.3 返回对象 52
5.4.4 ByVal和ByRef(按值和按引用传递) 53
5.4.5 声明变量 54
5.4.6 Option Explicit 55
本章回顾 56
第6章 变量 57
6.1 标准VBA变量类型 57
6.1.1 Integer(整型) 58
6.1.2 Long(长整型) 58
6.1.3 Double(双精度型) 58
6.1.4 Boolean(布尔型) 59
6.1.5 Date(日期型) 59
6.1.6 String(字符串型) 60
6.1.7 Object(对象型) 60
6.1.8 Variant 60
6.2 MicroStation特有的变量类型 60
6.2.1 Application(应用) 60
6.2.2 DesignFile(设计文件) 61
6.2.3 ModelReference(模型参考) 61
6.2.4 Level(层) 61
6.2.5 LineElement(线元素) 62
6.2.6 EllipseElement(椭圆元素) 62
6.2.7 ArcElement(弧元素) 62
6.2.8 TextElement(文本元素) 63
6.3 赋值和设置对象 63
6.4 数组(Arrays) 63
6.5 常数 64
6.6 变量名 65
6.7 Option Explicit 66
6.8 使用变量 67
本章回顾 67
第7章 操作文本 69
7.0.1 UCase(大写转换) 70
7.0.2 LCase(小写转换) 70
7.0.3 StrConv(字符串转换) 71
7.0.4 WeekDayName(星期名)、WeekDay(日期转星期) 71
7.0.5 MonthName(月名) 72
7.0.6 LTrim(左截取)、RTrim(右截取)、Trim(两端截取) 72
7.0.7 StrComp(字符串比较) 72
7.0.8 Len(取字串长度) 76
7.0.9 Left(左取子串) 76
7.0.10 Right(右取子串) 76
7.0.11 Mid(取中串) 77
7.0.12 Replace(替换字串) 78
7.0.13 InStr(子串位置) 78
7.0.14 InStrRev(反向子串位置) 80
7.0.15 Split(分割)和Join(联结) 80
7.0.16 Asc(字符到ASCII码)和Chr(ASCII码到字符) 82
7.0.17 FormatCurrency(格式化货币) 83
7.0.18 FormatNumber(格式化数字) 84
7.0.19 FormatDateTime(格式化日期) 84
7.0.20 Format(格式化) 85
7.0.21 &(连接符) 85
7.0.22 VbCr(回车符) 85
7.0.23 VbTab(制表符) 86
本章回顾 86
第8章 操作数字 87
8.0.1 加 87
8.0.2 减 89
8.0.3 乘 89
8.0.4 除 89
8.0.5 平方与指数 89
8.0.6 平方根 90
8.0.7 正弦、余弦、正切 90
8.0.8 反正切 93
8.0.9 绝对值 93
8.0.10 转换为整型数、长整型数、双精度型数和值 94
8.0.11 CLng 94
8.0.12 Fix 94
8.0.13 CDbl 95
8.0.14 Val 95
8.0.15 IsNumeric 96
8.0.16 Round 96
8.0.17 Mod——求余 96
8.0.18 Sgn——求数的正负号 97
8.0.19 Rnd与Randomize 97
8.0.20 操作符的优先级 98
本章回顾 98
第9章 标准VBA调用 99
9.1 消息框 99
9.2 输入框 102
9.2.1 Now 103
9.2.2 DateAdd 103
9.2.3 DateDiff 104
9.2.4 Timer 105
9.2.5 FileDateTime 105
9.2 6 FileLen 105
9.2.7 MkDir 105
9.2.8 RmDir 106
9.2.9 Dir 106
9.2.10 Kill 108
9.2.11 Beep 108
9.2.12 SaveSetting 108
9.2.13 GetSetting 109
9.2.14 DeleteSetting 109
9.2 15 GetAllSettings 109
9.3 读写ASCII文件 110
9.3.1 FreeFile 111
9.3.2 从ASCII文件中读取 113
9.4 控制代码的执行 115
9.4.1 For...Next 115
9.4.2 While...Wend 117
9.4.3 Do...Loop 117
9.4.4 ForEach...Next 120
9.4.5 If...Then 120
9.4.6 Select Case 121
9.4.7 错误处理 122
本章回顾 128
第10章 可视界面 129
10.1 属性、方法和事件 130
10.1.1 属件 130
10.1.2 控件事件 131
10.2 通用控件属性 133
10.2.1 Name(名称) 133
10.2.2 Left(左)、Top(顶) 133
10.2.3 Width(宽)、Height(高) 133
10.2.4 Visible(可见) 134
10.2.5 Enabled(有效) 134
10.2.6 TabStop(Tab键站) 134
10.2.7 TabIndex(Tab键索引) 134
10.2.8 Tag(附加信息) 134
10.2.9 ControlTipText(控件提示文本) 134
10.3 标签 135
10.4 文本框 135
10.5 复合框 136
10.6 列表框 136
10.7 复选框 137
10.8 选项按钮 138
10.9 切换按钮 138
10.10 框架 139
10.11 命令按钮 139
10.12 选项卡条 139
10.13 多页 140
10.14 滚动条 141
10.15 旋转按钮 141
10.16 图像 142
10.17 用户界面练习 142
10.18 点列表读取器 148
10.19 写出到文件 151
10.20 缩放和平移 154
本章回顾 157
第11章 MicroStation对象模型——对象 158
11.1 对象浏览器 158
11.2 自动列出成员 160
11.3 MicroStation VBA帮助文件 161
11.4 添加监视 162
11.5 MicroStation对象模型 163
本章回顾 217
第12章 MicroStation对象模型——枚举 218
12.1 MsdDesignFileFormat 218
12.2 枚举列表 219
本章回顾 252
第13章 MicroStation对象模型——类型 253
本章回顾 257
第14章 MicroStation对象模型——事件 258
本章回顾 260
第15章 向文档中添加内容 261
15.1 图形元素 261
15.1.1 线 261
15.1.2 建立形 266
15.1.3 建立圆 269
15.1.4 建立椭圆 271
15.1.5 建立弧 273
15.1.6 建立文本 275
15.1.7 建立单元 276
15.2 建立新文件 278
15.3 建立数据的安全性问题 280
本章回顾 280
第16章 在文件中查找 281
16.1 在文件中查找的基础知识 281
16.2 使用ScanCriteria 286
16.3 多个准则的组合 290
16.4 回顾三种集合方法 293
16.5 扫描准则的方法 294
本章回顾 296
第17章 交互式修改 297
17.1 向用户提供反馈和信息 297
17.2 操作选择集 299
17.3 取得用户输入 301
17.4 一些实际应用程序 305
17.5 使用SendCommand 315
17.6 非模态对话框 319
17.7 向用户提供反馈和信息 324
17.7.1 用户窗体初始化(UserForm Initialize) 326
17.7.2 frmAlignText.frm 327
17.7.3 frmExportElements.frm 341
17.7.4 frmDFAV.frm 345
17.8 与MDL应用交互 350
本章回顾 353
第18章 接口的本质 355
18.1 接口基础 356
18.2 类模块回顾 357
18.3 类模块的生命期 359
18.3.1 ILocateCommandEvents 359
18.3.2 LocateFilter事件 361
18.3.3 Accept事件 362
18.3.4 LocateReset事件 362
18.3.5 LocateFailed事件 362
18.3.6 Start事件 362
18.3.7 Cleanup事件 362
18.3.8 Dynamics事件 362
18.3.9 LocateCriteria(定位准则) 366
18.3.10 IPrimitiveCommandEvents 369
18.3.11 优化Dynamics(动态)事件 387
本章回顾 390
第19章 使用MicroStation内置用户窗体 391
19.0.1 mdlDialog_fileOpen函数 392
19.0.2 mdlDialog_fileCreate函数 398
19.0.3 mdlDialog_fileCreateFromSeed函数 400
19.0.4 mdlDialog_openAlert函数 401
19.0.5 mdlDialog_openInfoBox函数 402
本章回顾 403
第20章 类模块 404
20.1 封装相似功能 404
20.2 建立带有属性、方法和事件的对象 420
20.3 在集合中使用类模块 427
20.3.1 存取集合中的对象 428
20.3.2 从集合中移除对象 430
20.3.3 使用自定义类模块 430
本章回顾 434
第21章 CAD管理员使用的VBA 435
21.1 用VBA来维护标准 435
21.2 跨公司的标准 441
21.3 跟踪时间 445
21.3.1 绘图员 445
21.3.2 经理 445
21.3.3 会计师 446
21.4 自动装载和自动运行 449
21.5 保护工程 452
21.6 分发VBA工程 454
21.7 在高安全模式下工作 455
本章回顾 456
第22章 MicroStation中基于文件的事件 457
22.1 OnDesignFileOpened 457
22 2 OnDesignFileClosed 458
22.3 ISaveAsEvents接口 461
本章回顾 467
第23章 响应MicroStation附件事件 468
23.1 IAttachmentEvents接口 468
23.2 AfterAttach事件 469
23.3 AfterDetach事件 472
23.4 AttachmentModified事件 473
23.5 BeforeAttach事件 473
23.6 BeforeDetach事件 473
本章回顾 474
第24章 模型事件 475
本章回顾 478
第25章 层事件 479
25.1 Active事件 482
25.2 AfterCreate事件 483
25.3 AfterDelete事件 483
25.4 BeforeChangeActive事件 483
25.5 BeforeDelete事件 483
25.6 ChangeAttribute事件 484
本章回顾 484
第26章 改变跟踪事件 485
26.1 BeginUndoRedo事件 485
26.2 ElementChanged事件 487
26.2.1 例1 489
26.2.2 例2 490
26.2.3 例3 495
26.2.4 例4 495
26.3 激活ChangeTrackEvents接口 497
本章回顾 497
第27章 非图形信息——数据库 498
27.1 MicroStation是如何将元素“链接”到数据库的 498
27.2 从头开始建立数据库 500
27.3 使用UDL文件 508
27.4 链接MicroStation元素到数据库记录 509
27.5 用SQL建立数据库记录 510
27.6 建立一个查看数据库信息的用户界面 511
本章回顾 513
第28章 标签 515
28.1 从基于选择集的标签中取得信息 515
28.2 取得文件中的所有标签 518
28.3 使用标签集 519
28.4 取得一个文件夹下所有文件中的所有标签 520
28.5 改变标签的值 521
28.6 改变多个文件中的多个标签值 522
28.7 把标签信息导出到一个文件中 524
本章回顾 527
第29章 XML 528
29.1 XML是什么? 528
29.2 XML文件结构 529
29.3 读取XML文件 530
本章回顾 539
第30章 批处理 540
30.1 处理列在一个ASCII文件中的文件 540
30.2 处理一个文件夹下的所有文件 544
30.3 处理一个文件夹及其子文件夹下的所有文件 547
30.4 建立选择文件的用户界面 548
30.5 记录文件批处理过程 552
30.5.1 使用记录文件 553
30.5.2 用数据库跟踪活动 555
30.5.3 在注册表中保存信息 555
30.5.4 通过Internet记录活动 556
30.5.5 电子邮件处理记录 558
本章回顾 560
第31章 标准检查器 561
31.1 标准检查器的基本实现 561
31.2 标准检查器的设置 567
31.3 检查标准 570
31.4 标准检查报告 574
31.5 自动装载自定义标准检查器外接程序 582
本章回顾 582
第32章 使用Windows API 583
32.1 声明API调用 583
32.2 声明类型 584
32.3 利用API调用 585
32.3.1 GetLogicalDrives 585
32.3.2 GetDriveType 586
32.3.3 GetComputerName 587
32.3.4 GetVersionEx 587
32.3.5 Sleep 589
32.3.6 FindExecutable 589
32.3.7 GetDiskFreeSpace 590
32.3.8 GetSystemMetrics 591
32.3.9 GetTickCount 593
32.3.10 GetUserName 593
32.3.11 GetWindowsDirectory 594
32.3.12 LogonUser 594
32.3.13 MessageBeep 595
32.3.14 PlaySound 596
32.3.15 ShellExecute 597
32.3.16 SHGetFileInfo 598
本章回顾 599
第33章 使用第三方ActiveX控件和DLL 600
33.1 使用ActiveX控件 600
33.2 使用现有的DLL 602
33.2.1 Microsoft Scripting Runtime 606
33.2.2 Microsoft Speech Object Library 610
33.2.3 Microsoft CDO for Windows 2000 Library 611
33.2.4 DSO OLE Document Properties Reader 2.0 612
本章回顾 618
第34章 操作Excel 619
34.1 连接到Excel 619
34.1.1 GetObject 619
34.1.2 CreateObject 621
34.1.3 New 621
34.2 工作簿、工作表、范围和单元格 622
34.2.1 单元格和范围的地址 626
34.2.2 操作工作表 631
34.3 标签提取 635
本章回顾 640
第35章 操作数据库 641
35.1 ActiveX Data Objects入门 641
35.2 UDL文件基础 643
35.3 连接、记录集以及更多内容 646
35.3.1 记录集 650
35.3.2 Find方法 654
35.3.3 GetString方法 655
35.3.4 AddNew和Update方法 656
35.4 SQL要素 657
35.4.1 Select 657
35.4.2 Where 658
35.4.3 Order By 658
35.5 扩展ActiveX数据对象 665
35.6 分析数据库架构 669
35.7 Excel文件作为数据库 672
本章回顾 676
第36章 MicroStation用VBA操作Mathcad 677
36.1 Mathcad的简要介绍 677
36.2 添加引用以及使用对象浏览器 678
36.3 与Mathcad通讯的基本宏 684
36.4 区域对象——所有计算的基础 686
36.5 Mathcad对象模型 689
36.5.1 Application 690
36.5.2 IMathcadApplication2 690
36.6 从Mathcad中驱动MicroStation几何图形 691
本章回顾 701
第37章 从外部程序存取MicroStation数据 702
37.1 ActiveX/COM基础 702
37.2 引用、前期绑定和后期绑定 703
37.3 GetObject、SetObject和New 706
37.4 “WithEvents”能干什么? 709
37.5 从Excel还是从MicroStation中运行宏? 711
37.6 从Excel中控制MicroStation 711
本章回顾 721
第38章 编写VB6应用程序 722
38.1 VBA与VB6之间的不同 722
38.2 VB6工程的结构 723
38.3 用VB6控制MicroStation 730
38.3.1 在VB6中建立ActiveX控件 735
38.3.2 调试ActiveX控件工程 739
38.3.3 编译ActiveX控件 742
38.3.4 建立ActiveX DLL 744
38.4 编译和分发应用程序 749
38.4.1 编译应用程序 749
38.4.2 分发VB6应用程序 750
本章回顾 758
第39章 使用VB.NET 759
39.1 VB.NET介绍 759
39.2 在VB.NET中可以完成的工作 765
39.3 DGN浏览器应用程序 771
39.4 VBA到VB.NET引用 775
39.4.1 一切皆对象 776
39.4.2 重载 776
39.4.3 过程和函数 777
39.4.4 存取ASCII文件 777
39.4.5 遍历文件夹及其子文件夹 779
39.4.6 取得一个路径中的所有文件 780
39.4.7 返回函数值 781
39.4.8 Windows API调用 781
39.5 分发VB.NET应用程序 786
本章回顾 788
附加资源 789