Bandeau haut

Outils pour utilisateurs

Outils du site


fonctions:automatisation:interface:visual_basic_for_applications

Visual Basic For Applications

Avec VBA, l’utilisateur d’ArcGIS dispose d’une large palette d'outils de programmation provenant de Visual Basic de Microsoft lui permettant de répondre à la plupart de ses besoins de personnalisation (développement d’applications, création de nouvelles boîtes de dialogue et de contrôles graphiques pour ArcMap et ArcCatalog, etc.)
VBA inclut également des contrôles ActiveX permettant la création rapide d’interfaces utilisateur.
Ce niveau exige naturellement des prés-requi en programmation. Il a l’avantage de rester dans un environnement de développement familier aux développeurs utilisant Microsoft Visual Basic.

Visual Basic pour Applications et la boîte de dialogue "Personnaliser"

Dans la boîte de dialogue “Personnaliser” on dispose déjà d’un accès à VBA pour créer des objets et leur attribuer des événements grâce à Visual Basic pour Applications.
Dans la catégorie [UIControls] de l’onglet [Commandes] de la boîte de dialogue “Personnaliser” (Outil\Personnaliser…), un double clic sur le bouton créé dans notre exemple précédant (Voir: Personnalisation à l'aide de l'interface graphique) nous fait basculer vers la fenêtre de VBA.

personnaliser_vba_001_bis.jpg

Remarquez que dans la fenêtre de code la procédure sur l'évènement “Click” est déjà déclarée, il ne reste qu’à saisir une instruction.
Dans la fenêtre code on saisi la ligne de code :

 MsgBox "Bonjour, Nous sommes le " & Format(Date, "dddd d mmmm yyyy")

Cette ligne de code permet d’afficher la date du jour après un clic (l’événement) sur le bouton (l’objet). Cela donne sur VBA :

personnaliser_vba_002.jpg

Le résultat après l’exécution est :

personnaliser_vba_004.jpg

Si on remplace l’instruction :

 MsgBox "Bonjour, Nous sommes le " & Format(Date, "dddd d mmmm yyyy")

Par l’instruction

 MsgBox Now

On aura un box ArcMap qui affichera cette fois la date et l’heure (la fonction “Now” étant une fonction VBA renvoyant la date et l'heure).

personnaliser_vba_004.jpg

Nouvelle interface utilisateur

Il s’agit de créer une nouvelle interface par programmation pour faire exécuter à l’utilisateur des commandes déjà existantes sans qu’il ait à manipuler les menus d’ArcMap.
Le but, en général, est de créer une unique interface plus simple à manipuler et qui ne regroupera que les commandes, menus et barres d’outils d’ArcMap dont l’utilisateur a besoin.

On peut par exemple créer une barre d’outils regroupant que les quelques commandes nécessaires.
Ce code VBA par exemple : (Source E.N.S.G., 2003 : Introduction a la programmation en VBA sur ArcGis)

personnaliser_vba_005.jpg

 Sub CreateBar()
  Dim pCBs As ICommandBars
  Set pCBs = ThisDocument.CommandBars
  Dim pNewBar As ICommandBar
  Set pNewBar = pCBs.Create("Mes outils", esriCmdBarTypeToolbar)
  pNewBar.Add arcid.File_AddData
  pNewBar.Add arcid.PanZoom_FullExtent
 End Sub

Créé une nouvelle barre d’outils appelée “Mes Outils” et ajoute les commandes “Ajouter des données” et « Vue générale » à cette barre d’outils.

Le code suivant :

 Public Sub CreateMenu()
  Dim pMainMenuBar As ICommandBar
  Set pMainMenuBar = ThisDocument.CommandBars.Find(arcid.MainMenu)
  Dim pNewMenu As ICommandBar
  Set pNewMenu = pMainMenuBar.CreateMenu("MonMenu")
  pNewMenu.Add arcid.File_AddData
  pNewMenu.CreateMacroItem "Date et heure", 1, "Project.Module1.MaMacro"
  Dim pSousMenu As ICommandBar
  Set pSousMenu = pNewMenu.CreateMenu("Requêtes")
  pSousMenu.Add arcid.Query_AttributeSelect
  pSousMenu.Add arcid.Query_SelectByGraphics
  pSousMenu.Add arcid.Query_SelectFeatures
 End Sub
 Public Sub MaMacro()
  MsgBox Now 
 End Sub

Permet la création d’un nouveau menu dans la barre de menu principale et permet de regrouper quelques commandes ArcMap existantes telles que le bouton créer précédemment.

 Menu et Sous Menus créer par code VBA


ArcGis

fonctions/automatisation/interface/visual_basic_for_applications.txt · Dernière modification : //23/02/2011 19:47// de 127.0.0.1

Bandeau bas