免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 3900|回复: 3
收起左侧

怎样在ArcMap的VBA环境中编程

[复制链接]

2072

主题

100000万

铜板

363

好友

地信专家组

每一次的分离都是为了下一次的相聚

Rank: 14Rank: 14Rank: 14Rank: 14

积分
17622

精华勋章宣传勋章爱心勋章组织勋章地信元老灌水勋章荣誉会员勋章活跃勋章贡献勋章

发表于 2009-12-4 19:52 | 显示全部楼层 |阅读模式
ArcMap是ArcGIS家族的成员之一,它内置了一种集成编程环境―VBA(Visaul Basic for Apllications)。通过VBA编程,用户不但可以扩展ArcMap的菜单、工具条等,而且可以完成大多数用户的特定需求。
    ArcMap中VBA编程的方法有两种,一种是写VBA宏,另一种是创建UIControl并在其事件中写入实现用户需求的代码。下面列出两种方法的一般步骤。
    方法一:写VBA宏(直接在VBA编辑器中编辑函数和过程)
    1、如图1,单击菜单栏中的命令,选择的项, 直接启动ArcMap的VBA编辑器;或者选择的项,进入如图2所示Macro对话框,在“Macro Name”文本框中输入要创建的宏的名称,并点按钮,启动VBA编辑器。

1.jpg

图1 启动Macro对话框/启动VBA编辑器

2.jpg


                                图2 Macro对话框
   2、在图3所示的窗口中,用户可以根据实际选择在Normal节点或者Project节点的ThisDocument、Forms、Modules中编写宏(函数或过程),Normal节点下所写的宏系统自动保存,除非用户删除,否则它将始终存在并在任何工程中都有效;而在Project节点下所写得宏随工程保存(如不保存工程,则宏也将不被保存),并中有效。

3.jpg

图3 VBA编辑器(VBE)

    3、运行VBA宏
    在VBA编辑器中写好VBA代码后,有两种方式运行:第一,点击VBA编辑器工具条中的 (运行)按钮,可立即运行写好的代码;第二,退出VBA编辑器,重新启动Macro对话框,如图2,选择要运行的VBA宏名称,点击按钮即可运行相应的VBA宏。
    方法二:创建UIControl(交互式VBA编程)
     1、用鼠标右击任何工具栏(条),在弹出的上托式菜单中选择菜单项,如图4,进入图5所示的Customize对话框。

4.jpg


图4 启动“Customize”对话框
    2、切换到“Customize”对话框的“Commands”页,选中“UIControls”后点击按钮,进入图6所示的“New UIControl”对话框。
    3、在“New UIControl”对话框中,用户可根据需要选择UIControl类型:
    UIButtonControl:创建Button;
    UIToolControl:创建与Map交互的Tool;
    UIEditBoxControl:创建EditBox;
    UIComboBoxControl:创建ComboBox。
    最后点击按钮只创建UIControl或者点击按钮创建UIControl并进入VBA编辑器。与方法一不同,此时应在UIControl的事件中进行VBA编程。

5.jpg

图5 Customize对话框

6.jpg


图6 New UIControl对话框
    4、UIControl创建后,在图5所示的“Customize”对话框选中UIControl并将其拖置到任意工具条上,用户便可象使用系统已有的Control一样使用所创建的UIControl。

0

主题

77

铜板

0

好友

助理工程师

Rank: 5Rank: 5

积分
128
发表于 2010-3-14 17:05 | 显示全部楼层
又学到一样东西,谢谢了楼主。[s:140]

85

主题

9527

铜板

69

好友

黄金会员

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23

积分
4842
发表于 2012-4-8 16:38 | 显示全部楼层
不管今后能否掌握这个技术,这个贴子是我入门的启蒙,再此先谢过
回复 支持 反对

使用道具 举报

0

主题

2230

铜板

15

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2033
发表于 2021-6-20 19:16 | 显示全部楼层
感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表