IApplication接口是ArcGIS的全局变量接口,它表示当前所打开的工程。
通过这个接口创建实例化对象application(arcmap,arcsence,arccatalog,arcglobe都有自己的application)
从而可以获取当前工程的名称,窗体句柄,工程状态,当前工具等属性,以及对当前文档的一些操作,如关闭,打开等等:
<!--[if !vml]--><!--[endif]--> <!--[if !vml]--><!--[endif]--> 通过下面代码获取工程的名称:
Dim pApp As IApplication
Set pApp = Application
MsgBox pApp.Caption
ISxApplication接口是专门为ArcSence提供操作3D服务的应用程序接口,可以实现具体的sence中的简单操作,具体可以参见具体方法与属性。
下面介绍一下VBaApplication,这个接口提供了操作当前工程下VBA代码的方法,因为平时大家很少用,所以贴出来供大家参考;
通过这个接口,我们就可以在运行阶段实现对代码的一些简单操作,如创建一个模块,插入一些代码,指定运行那些过程等等。
具体方法如下所示(4个方法):
:CreateCodeModule
:InsertCode
:RemoveCodeModule
:RunVBAMacro //运行某段VBA过程的方法,
示例代码如下://创建一个过程,然后插入一段代码,最后运行刚刚创建的模块
Sub CreateAndRun()
Dim pVbaApp As IVbaApplication
Dim s As String
Set pVbaApp = Application
pVbaApp.CreateCodeModule "Project", "MyModule"
s = "Public Sub MyMacro" & vbNewLine & _
"Msgbox Application.Document.Title" & _
vbNewLine & "End Sub"
pVbaApp.InsertCode "Project", "MyModule", s
pVbaApp.RunVBAMacro "Project", "MyModule", "MyMacro", Nothing
End Sub
说明:
If you want to create the module in the current document, docName will be "Project".
If you want to create the module in the Normal template, docName will be "Normal".
If you want to create the module in a template, docName will be "TemplateProject".
其中还有一个对象AppRef
(本文已被浏览 次) | | |