Code to call a geoprocessing tool from VBA button:
Also need to ensure the ESRI GeoprocessingUI Libraries is referenced.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
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.