Creating a Custom Toolbar/Buttons

Monday, November 1, 2010

Code to call a geoprocessing tool from VBA button:

Private Sub UIButtonControl1_Click()
Dim pApp As IApplication
Set pApp = Application

Dim pUID As New UID
pUID = "esriGeoprocessingUI.ArcToolboxExtension"

Dim pATBExt As IArcToolboxExtension
Set pATBExt = Application.FindExtensionByCLSID(pUID)

Dim pAtb As IArcToolbox
Set pAtb = pATBExt.ArcToolbox

Dim pTool As IGPTool
Set pTool = pAtb.GetToolbyNameString("buffer_analysis")

Dim pParams As IArray
Set pParams = pTool.ParameterInfo

Dim pParameter As IGPParameter
Dim pParamEdit As IGPParameterEdit
Dim pDataType As IGPDataType
Dim sValue As String

'First Parameter
Set pParameter = pParams.Element(0)
Set pParamEdit = pParameter
Set pDataType = pParameter.DataType
sValue = "D:\workspace\Newfoundland.mdb\roads"
Set pParamEdit.Value = pDataType.CreateValue(sValue)

'Second Parameter
Set pParameter = pParams.Element(1)
Set pParamEdit = pParameter
Set pDataType = pParameter.DataType
sValue = "D:\workspace\Newfoundland.mdb\roads_buf"
Set pParamEdit.Value = pDataType.CreateValue(sValue)

'Third Parameter
Set pParameter = pParams.Element(2)
Set pParamEdit = pParameter
Set pDataType = pParameter.DataType
sValue = "500 Meters"
Set pParamEdit.Value = pDataType.CreateValue(sValue)

Dim pCommand As IGPToolCommandHelper
Set pCommand = New GPToolCommandHelper
pCommand.SetTool pTool
pCommand.Invoke pParams
End Sub
Also need to ensure the ESRI GeoprocessingUI Libraries is referenced.

0 comments:

Post a Comment

Note: Only a member of this blog may post a comment.