Vous êtes sur la page 1sur 608

Developing Visio Solutions

pour Microsoft Visio 2000


Les informations contenues dans ce document, y compris les URL et autres rfrences des sites Web Internet, pourront faire lobjet de modifications
sans pravis. Sauf mention contraire, les exemples de socits, d'organisations, de produits, de personnes et d'vnements sont fictifs et toute ressem-
blance avec des socits, des organisations, des produits, des personnes ou des vnements rels serait tout fait fortuite. Lutilisateur est tenu dobserver
la rglementation relative aux droits dauteur applicable dans son pays. Sans limitation des droits issus des droits d'auteur, aucune partie de ce manuel ne
peut tre reproduite, stocke ou incluse dans un systme de rcupration de donnes ou transmise quelque fin ou par quelque moyen que ce soit (lec-
tronique, mcanique, photocopie, enregistrement ou autre) sans la permission expresse et crite de Microsoft Corporation.
Les produits mentionns dans ce document peuvent faire lobjet de brevets, de dpts de brevets en cours, de marques, de droits dauteur ou dautres
droits de proprit intellectuelle et industrielle de Microsoft. l'exception des droits expressment viss dans un contrat de licence crit manant de
Microsoft, la fourniture de ce document ne vous confre aucune licence sur ces brevets, marques, droits dauteur ou autres droits de proprit intellec-
tuelle et industrielle.
2000 Visio Corporation. Tous droits rservs.
Microsoft, Active Directory, ActiveX, FoxPro, FrontPage, MS-DOS, Outlook, PowerPoint, Visual Basic, Visual C++, Visual FoxPro, Visual J++, Visual
SourceSafe, Visual Studio, Win32, Windows et Windows NT sont soit des marques de Microsoft Corporation, soit des marques dposes de Microsoft
Corporation, aux tats-Unis dAmrique et/ou dans dautres pays.
Visio, ShapeSheet et SmartShapes sont soit des marques de Visio Corporation, soit des marques dposes de Visio Corporation, aux tats-Unis
dAmrique et/ou dans dautres pays. Visio Corporation est une filiale contrle cent pour cent par Microsoft Corporation.
Technologies de fournisseurs tiers :
Parties sous copyright 1991-1997 Compuware Corporation.
Parties du logiciel sous licence accorde Visio Corporation par SwitchSoft Systems, Inc. copyright 1996-1999. Tous droits rservs.
ImageStream Graphics Filters copyright 1998 par INSO Corporation. Tous droits rservs.
International CorrectSpell, systme de vrification orthographique, copyright 1995 par Lernout & Hauspie Speech Products N.V. Tous droits rservs.
Certaines fonctionnalits graphiques LZW sous licence de Unisys Corporation (brevet amricain N 4 558 302 et quivalents trangers).
Certaines images clipart utilises dans ce produit sont drives d'images protges par le copyright 1988-1995 3G Graphics, Inc. de IMAGES WITH
IMPACT! FOR WINDOWS Vol. 1. Ces images sont utilises ici dans le cadre d'un contrat de licence non exclusif entre Visio Corporation et 3G
Graphics, Inc., 114 Second Avenue South, Suite 104, Edmonds, WA 98020, tats-Unis, (425) 774-3518 ou (800) 456-0234.
Certaines cartes intgres dans ce produit ont t extraites de donnes fournies gracieusement par Environmental Systems Research Institute, Inc.,
380 New York Street, Redlands, CA 92373-8100, tats-Unis, (909) 793-2853.
Les noms de produits et de socits rels mentionns dans la prsente documentation sont des marques de leurs propritaires respectifs.
0500 PN X05-69333
Table des mat ires
Prface.................................................................................................................................1
A propos du prsent guide.............................................................................................. 2
Connaissances ncessaires ......................................................................................... 2
Conventions ............................................................................................................... 2
Nouvelles fonctions destines aux dveloppeurs........................................................... 3
Matriaux de rfrence en ligne...................................................................................... 4
Matriaux de rfrence fournis sur le CD de Visio 2000 ......................................... 4
Matriaux de rfrence sur le site Web de Visio....................................................... 5
Chapitre 1 Prsentation du manuel Developing Visio Solutions..................................................7
A propos des solutions Visio........................................................................................... 8
Modlisation au moyen de formes Visio .................................................................. 8
Exemple de solution Visio dautomatisation des ventes sur le terrain.................. 13
Utilisation de formes Visio pour crer des solutions .................................................. 15
Assemblage dobjets dans des dessins ..................................................................... 15
Utilisation de formes comme composants ............................................................. 16
Dveloppement de formes laide de la technologie SmartShapes............................ 18
Recours Automation dans une solution Visio .......................................................... 20
Automation et objets Visio...................................................................................... 20
Exemple de surveillance des vnements et de calcul dun total .......................... 22
Planification dune solution Visio................................................................................ 25
Planification du processus de dveloppement........................................................ 25
Planification des formes et des gabarits .................................................................. 27
Planification de modles de dessin.......................................................................... 28
Utilisation dAutomation dans les formes et les modles ...................................... 29
Intgration dune solution Visio et dune base de donnes ................................... 29
Choix concernant la mise en oeuvre dAutomation .............................................. 30
Chapitre 2 Cration de formes Visio.................................................................................................33
Anatomie des formes Visio........................................................................................... 34
Formes ouvertes et fermes ..................................................................................... 35
Formes 1D ou 2D..................................................................................................... 36
Poignes des formes ................................................................................................. 36
Formes en groupes ................................................................................................... 38
Conception de formes ................................................................................................... 39
Utilisation des outils de dessin lors de la cration de formes ................................ 39
Cration de formes fermes..................................................................................... 41
Cration de formes avec des lments rcurrents .................................................. 41
Cration de groupes ................................................................................................. 41
Cration de formes par fusion................................................................................. 42
iv TABL E DES MATI ERES
Importation de formes issues dautres programmes ...................................................44
Importation dimages graphiques ...........................................................................44
Modification de mtafichiers et de bitmaps imports............................................45
Conversion de mtafichiers imports en formes ....................................................46
Conversion de bibliothques de symboles CAO en formes ...................................46
Ajustement de formes Visio existantes.........................................................................47
Modification des formes ..........................................................................................47
Modification des groupes.........................................................................................48
Chapitre 3 Formes de base, gabarits, modles et documents Visio.......................................... 51
Cration de formes de base et de gabarits ....................................................................52
Cration dun gabarit ...............................................................................................53
Cration de formes de base dans des gabarits.........................................................54
Modification des formes de base dans les gabarits .................................................55
Cration de modles ......................................................................................................56
Cration dun modle ..............................................................................................56
A propos des pages, des arrire-plans et des calques .............................................. 58
Ouverture et enregistrement de documents Visio.......................................................60
Composants dun document Visio..........................................................................60
Ouverture dun fichier Visio....................................................................................61
Choix du type de fichier adapt votre solution....................................................62
Chapitre 4 Formules Visio.................................................................................................................. 63
Fentre ShapeSheet ........................................................................................................64
Affichage de la fentre ShapeSheet ..........................................................................64
Affichage des sections de la fentre ShapeSheet......................................................66
Sections ShapeSheet : prsentation et objet de leur contrle.................................67
Examen dune forme dans la fentre ShapeSheet ...................................................70
Elments des formules Visio .........................................................................................72
Saisie et modification des formules dans la fentre ShapeSheet ............................72
Fonctions et oprateurs des formules Visio............................................................73
Rfrences de cellule ShapeSheet.............................................................................75
Rgles concernant les rfrences de cellule dans les formules................................77
Units de mesure des formules Visio ......................................................................78
Units multidimensionnelles ...................................................................................79
Indication des units de mesure ..............................................................................79
Conception de formules Visio ......................................................................................80
Hritage des formules dune forme .........................................................................80
Formules des sections Cellules personnalises et Montage....................................81
Protection des formules ...........................................................................................84
Contrle du recalcul des formules...........................................................................84
Ajout de fonctionnalits aux formules Visio laide dAutomation ..........................86
Chapitre 5 Contrle de la gomtrie des formes laide de formules...................................... 87
Gomtrie des formes....................................................................................................88
Description de formes dans un systme de coordonnes ......................................89
Reprsentation de la gomtrie dune forme laide de formules.........................90
Reprsentation de la position dune forme sur une page.......................................92
Mesure visant empcher les utilisateurs de dplacer une forme.........................94
TABL E DES MATI RES v
Contrle de ltirement et de la rduction des formes ................................................ 94
Exemple de formules calcules sur la base de la hauteur ....................................... 95
Optimisation de lexemple de flche ....................................................................... 97
Contrle du retournement et de la rotation des formes ............................................. 98
Consquences du retournement dune forme........................................................ 98
Consquence de la rotation dune forme.............................................................. 100
Cration de formes pouvant tre retournes et pivotes ..................................... 101
Mesure permettant dempcher tout retournement ou toute rotation
des formes............................................................................................................... 102
Contrle des courbes des formes................................................................................ 103
Utilisation des styles dangle arrondi .................................................................... 104
Prsentation des arcs .............................................................................................. 104
Conversion des segments de trait et darc............................................................. 108
Formules darc utiles .............................................................................................. 109
Optimisation de la gomtrie dune forme................................................................ 110
Limitation du comportement dune forme laide de verrouillages........................ 111
Chapitre 6 Regroupement et fusion de formes.............................................................................113
Diffrences entre formes regroupes et formes fusionnes....................................... 114
Cration et contrle des groupes ................................................................................ 115
Regroupement et dissociation de formes.............................................................. 115
Modification dun groupe...................................................................................... 116
Incidence du regroupement de formes sur leurs formules .................................. 116
Contrle du comportement des groupes ................................................................... 118
Contrle du mode de slection des groupes ......................................................... 118
Dfinition du comportement de redimensionnement des formes regroupes .. 119
Redimensionnement des formes dans un seul sens ............................................. 121
Exemple de cration dun cube ............................................................................. 122
Protection du formatage des formes figurant dans des groupes............................... 126
Cration et contrle des formes fusionnes............................................................... 126
Fusion de formes .................................................................................................... 127
Remplissage des formes fusionnes....................................................................... 128
Masquage de la gomtrie dune forme ................................................................ 129
Chapitre 7 Amlioration du comportement des formes..............................................................131
Flexibilit des formes grce aux poignes de contrle............................................... 132
Ajout dune section Points de contrle une forme............................................ 132
Dfinition dune poigne de contrle ................................................................... 133
Dfinition du point dancrage dune poigne de contrle................................... 136
Dfinition du comportement dune poigne de contrle.................................... 137
Commandes du menu contextuel .............................................................................. 138
Dfinition dune commande de menu contextuel ............................................... 139
Contrle de lapparence dune commande de menu contextuel......................... 140
Commandes coches dans le menu contextuel .................................................... 141
Commandes de menu contextuel en gris............................................................ 142
Masquage et affichage de commandes dans le menu contextuel ........................ 142
Exemple dutilisation de commandes de menu contextuel afin de modifier la
gomtrie dune forme........................................................................................... 143
Mode de fonctionnement des formules ................................................................ 145
vi TABL E DES MATI ERES
Proprits personnalises ............................................................................................146
Utilisation de proprits personnalises ...............................................................146
Dfinition des proprits personnalises ..............................................................148
Ajout de proprits personnalises une forme de base......................................151
Etablissement dune liaison entre les proprits personnalises et une base de
donnes ...................................................................................................................151
Formules dvnements...............................................................................................152
Utilisation des cellules dans la section Evnements .............................................153
Simulation dvnements avec la fonction DEPENDDE .....................................154
Fonctions excutant des actions ............................................................................154
Remarques concernant les performances des formules dvnement .................156
Chapitre 8 Liaison des formes : formes 1D et collage................................................................ 157
Prsentation des formes 1D et 2D..............................................................................158
Conversion des formes 1D et 2D...........................................................................159
Galerie de formes 1D..............................................................................................160
Cration de liens 1D repositionnables et dautres types de lien................................161
Cration de liens repositionnables ........................................................................162
Autres exemples de cration de liens 1D...............................................................163
Cration dun lien avec angle.................................................................................164
Cration dune forme 1D en fonction de la hauteur ............................................166
Contrle du mode de connexion des formes .............................................................169
Dfinition du comportement de collage dun lien ...............................................169
Prcision des lments pouvant tre colls ...........................................................171
Prsentation des points de connexion...................................................................171
Ajout de points de connexion une forme...........................................................174
Attribution dun nom aux points de connexion ..................................................176
Conception de formes de lien dynamique ............................................................177
Chapitre 9 Cration dun comportement de texte ....................................................................... 179
A propos du texte contenu dans les formes et dans les formes de base....................180
Affichage des attributs de texte dans la fentre ShapeSheet .................................181
Contrle de la position du bloc de texte ...............................................................182
Ajout de poignes de contrle permettant de manipuler un bloc de texte .........183
Apparence des poignes de contrle du texte dans la fentre ShapeSheet ..........183
Contrle du texte dans un groupe.........................................................................184
Redimensionnement de formes contenant du texte..................................................185
Contrle de la taille du bloc de texte .....................................................................186
Contrle de la largeur du bloc de texte .................................................................186
Contrle de la hauteur dun bloc de texte.............................................................187
Choix de la taille de la forme daprs la quantit de texte....................................188
Choix de la taille de la forme daprs la valeur du texte.......................................189
Modification de la taille de la police lors du redimensionnement dune forme.189
Cration de formules de redimensionnement du texte laide de lAssistant
SmartShape .............................................................................................................189
Ecriture de formules de redimensionnement personnalises ..............................190
TABL E DES MATI RES vii
Contrle de la rotation du texte ................................................................................. 191
Contrle de la rotation du texte laide de lAssistant SmartShape.................... 192
Formules de pesanteur........................................................................................... 193
Formules de rotation inverse du texte droit ......................................................... 193
Exemples de contrainte de taille du bloc de texte................................................. 194
Contrainte de largeur dun bloc de texte droit ..................................................... 195
Contrle de la largeur dun bloc de texte droit dcal ......................................... 196
Utilisation des formules de texte ................................................................................ 198
Affichage et formatage des rsultats dune formule ............................................. 198
Affichage de la largeur dune forme dans diffrentes units................................ 198
Affichage des valeurs dangle normalises ............................................................ 199
Formatage des chanes et sortie du texte............................................................... 200
Utilisation de la fonction format........................................................................... 200
Affichage des proprits personnalises formates .............................................. 201
Protection des formules de texte ........................................................................... 202
Test des formules de bloc de texte......................................................................... 203
Chapitre 10 Gestion des styles, des formats et des couleurs......................................................205
Utilisation des styles dans la page de dessin............................................................... 206
Prsentation des styles............................................................................................ 206
Paramtrage des styles par dfaut dun dessin...................................................... 207
Cration dun style ................................................................................................. 208
Modification dun style.......................................................................................... 209
Instructions concernant lapplication de styles aux formes ...................................... 209
Reformatage des formes sur la page de dessin...................................................... 210
Reformatage des formes de base dans un gabarit autonome............................... 211
Reformatage de toutes les occurrences dune forme de base............................... 212
Utilisation de styles dans les gabarits et les modles.................................................. 213
Maintien de la cohrence dans les fichiers............................................................ 213
Utilisation de conventions de dnomination pour les styles ............................... 214
Instructions concernant la dfinition des styles ................................................... 214
Protection des formats locaux des formes ................................................................. 215
Utilisation de loption Conserver le formatage local............................................ 216
Utilisation de la cellule VerrFormat et de la fonction PROTECTION............... 216
Gestion de la couleur dans les styles, les formes et les fichiers.................................. 216
Modification de la palette de couleurs .................................................................. 217
Normalisation des palettes de couleurs pour tous les documents....................... 217
Utilisation dune formule pour dfinir une couleur personnalise..................... 218
Motifs personnaliss.................................................................................................... 219
Cration dun motif personnalis.......................................................................... 220
Cration de motifs de remplissage personnaliss ................................................. 222
Couleurs du motif de remplissage......................................................................... 222
Cration de motifs en mosaque............................................................................ 223
Cration de motifs de trait personnaliss ............................................................. 224
Cration dextrmits de traits personnalises ..................................................... 227
viii TABL E DES MATI ERES
Chapitre 11 Rorganisation des formes dun dessin .................................................................... 229
Attribution de formes et de formes de base des calques......................................... 230
Utilisation optimise des calques...........................................................................230
Attribution de formes de base des calques .........................................................231
Cration dune grille....................................................................................................233
Dfinition de la grille pour la page de dessin dun modle..................................233
Cration de formes de base fonctionnant avec une grille ....................................234
Stockage dinformations de grille laide de formules......................................... 235
Alignement des formes sur des repres et des points de repre ................................237
Instructions concernant lutilisation de repres ou de grilles ..............................237
Manipulation des repres et des points de repre ................................................238
Repres se trouvant sur une page pivote .............................................................239
Regroupement de repres et de formes .................................................................239
Accrochage de formes une grille laide des rectangles de slection .....................240
Rglage de la taille du rectangle de slection dune forme ...................................240
Mise jour dun rectangle de slection.................................................................242
Modification du rectangle de slection des formes 1D........................................243
Cration de formes et mise en page automatique......................................................243
Dfinition des options de mise en page de la page ...............................................244
Dfinition du comportement des formes et des connecteurs ..............................246
Chapitre 12 Formes mises lchelle et dessins cots............................................................... 249
Choix dune chelle de dessin approprie ..................................................................250
Prsentation des chelles de dessin et de page ......................................................251
Facteurs prendre en compte lors du choix dune chelle de dessin..................252
Choix des chelles des formes de base ........................................................................253
Dfinition dune chelle approprie pour une forme de base .............................254
Dfinition de lchelle dune forme de base..........................................................256
Cration de formes non mises lchelle ...................................................................257
Chapitre 13 Diffusion de gabarits et de modles .......................................................................... 259
Conception de formes personnalises pour la distribution ......................................260
Procdure concernant la conception des formes..................................................260
Remarques concernant la distribution des formes ...............................................261
Test des formes de base ...............................................................................................262
Contrle de la cohrence des formes de base........................................................262
Contrle de la forme de base dans la fentre de dessin de cette forme ...............263
Test des diffrentes chelles de page des formes de base......................................263
Ajout dune aide aux formes de base ..........................................................................266
Association dune aide une forme de base .........................................................266
Test de laide sur les formes ...................................................................................268
Finalisation et test dun gabarit...................................................................................268
Cration de raccourcis vers des formes de base....................................................268
Nettoyage des formes de base dans un gabarit .....................................................270
Nettoyage dun fichier de gabarit ..........................................................................271
Test des gabarits......................................................................................................272
Finalisation et test dun modle..................................................................................273
Nettoyage dun modle ..........................................................................................273
Test dun modle ....................................................................................................274
TABL E DES MATI RES ix
Installation des gabarits et des modles...................................................................... 277
Dplacement des fichiers de modle ..................................................................... 277
Protection des gabarits et des modles.................................................................. 277
Chapitre 14 Automation et le modle dobjet de Visio..................................................................279
Prsentation dAutomation ........................................................................................ 280
Modle dobjet de Visio .............................................................................................. 280
Rcupration et libration dobjets Visio................................................................... 283
Dclaration de variables objets .............................................................................. 283
Accs aux objets de Visio via les proprits .......................................................... 284
Rfrence un objet dune collection ................................................................... 285
Itration dans une collection................................................................................. 286
Libration dun objet ............................................................................................. 287
Utilisation de rfrences dobjet composes......................................................... 288
Limitation de la porte et de la dure de vie des variables objets ........................ 288
Utilisation des proprits et des mthodes ................................................................ 289
Dclaration de variables utilisables comme valeurs renvoyes et
comme arguments.................................................................................................. 289
Lecture et dfinition des proprits....................................................................... 289
Utilisation de la proprit par dfaut dun objet .................................................. 290
Utilisation de mthodes ......................................................................................... 291
Chapitre 15 Programmation dans Visio avec Microsoft VBA......................................................293
Utilisation de lEditeur Visual Basic ........................................................................... 294
Dmarrage de lEditeur Visual Basic..................................................................... 295
Navigation parmi les projets.................................................................................. 296
Enregistrement dun projet.................................................................................... 296
Cration dun projet VBA........................................................................................... 298
Insertion de modules et de modules de classe dans un projet ............................. 299
Insertion de formulaires utilisateur dans un projet ............................................. 301
Importation de fichier et exportation dun projet................................................ 302
Utilisation de la bibliothque de types Visio.............................................................. 303
Utilisation de lexplorateur dobjets...................................................................... 303
Paramtrage des rfrences aux bibliothques de types....................................... 304
Utilisation des types dobjet Visio......................................................................... 305
Utilisation des objets global et ThisDocument.......................................................... 306
Utilisation de lobjet global Visio .......................................................................... 307
Utilisation de lobjet ThisDocument..................................................................... 308
Excution du code VBA depuis Visio......................................................................... 310
Gestion des erreurs ...................................................................................................... 313
Excution du programme dans le contexte correct.............................................. 313
Verification de lexistence des objets et des valeurs renvoyes ............................ 314
Vrification des valeurs derreur ........................................................................... 314
Gestion dun projet VBA............................................................................................. 315
Suppression dlments dun projet...................................................................... 315
Protection du code ................................................................................................. 316
Utilisation du gestionnaire des programmes complmentaires .......................... 316
x TABL E DES MATI ERES
Chapitre 16 Utilisation des objets Visio Document, Page et Shape.......................................... 317
Utilisation des objets Document.................................................................................318
Rcupration dun objet Document......................................................................318
Rcupration dinformations sur des documents ................................................320
Utilisation des styles dun document ....................................................................320
Cration dun style pour un document.................................................................321
Impression et enregistrement de documents........................................................322
Utilisation des objets Page...........................................................................................324
Rcupration dun objet Page................................................................................324
Rcupration des informations sur les pages........................................................325
Ajout de pages dans un dessin ...............................................................................325
Utilisation des objets Shape ........................................................................................326
Rcupration dun objet Shape..............................................................................326
Rcupration dinformations sur une forme ........................................................328
Cration et modification de formes ......................................................................329
Ajout de texte aux formes ......................................................................................332
Rcupration du texte dune forme.......................................................................333
Identification et application des styles aux formes...............................................333
Conservation du formatage local...........................................................................334
Cration de groupes partir dun programme.....................................................335
Cration de formes de base....................................................................................336
Exemple de cration dun dessin simple ....................................................................337
Chapitre 17 Automatisation des formules ...................................................................................... 341
Utilisation des formules dans les cellules ...................................................................342
Rcupration dun objet Cell .................................................................................342
Modification des formules de cellule laide de la proprit Formula ...............345
Rcupration du rsultat dune formule ...............................................................345
Remplacement dune formule par un rsultat......................................................346
Remplacement de formules protges...................................................................347
Exemple dutilisation de formules pour dplacer des formes..............................348
Utilisation des sections et des lignes ...........................................................................349
Ajout de sections et de lignes .................................................................................349
Exemple dajout dune section Gomtrie une forme.......................................351
Suppression de sections et de lignes ......................................................................353
Modification du type dun segment ......................................................................354
Exemple ditration dans une collection de sections et de lignes ........................355
Utilisation de donnes hrites ...................................................................................356
Chapitre 18 Cration de dessins par automatisation ................................................................... 357
Cration automatise de dessins laide de formes de base......................................358
Rcupration du gabarit.........................................................................................358
Rcupration de la forme de base..........................................................................359
Insertion de la forme de base dans la page............................................................359
Choix de la position des formes sur un dessin...........................................................361
TABL E DES MATI RES xi
Utilisation de formes slectionnes ............................................................................ 363
Obtention des formes slectionnes dans une fentre ......................................... 363
Ajout et suppression de formes dans les slections .............................................. 365
Slection et dslection de formes dans une fentre ............................................ 365
Excution doprations sur les formes slectionnes ........................................... 366
Dfinition de la porte dune slection ................................................................. 366
Pages darrire-plan..................................................................................................... 367
Cration et association de pages darrire-plan.................................................... 367
Exemple ditration dans la collection Pages........................................................ 368
Exemple de configuration de pages et darrire-plans ......................................... 368
Modification des paramtres de page.................................................................... 370
Calques......................................................................................................................... 371
Identification des calques dune page ou dune forme de base............................ 371
Identification des calques auxquels une forme est attribue ............................... 372
Attribution de formes un calque et suppression................................................ 372
Ajout et suppression de calques dans les pages et les formes de base.................. 373
Modification des paramtres de calque ................................................................ 373
Chapitre 19 Automatisation des connexions dune solution Visio.............................................375
Utilisation dun objet Connect ................................................................................... 376
Rcupration dinformations dun dessin avec connexions ..................................... 378
Dtermination des formes relies.......................................................................... 378
Dtermination des parties connectes des formes ............................................... 379
Rcupration des cellules dune connexion.......................................................... 380
Instructions danalyse dun dessin avec connexions ............................................ 381
Exemples ditration dans les connexions sur une page............................................ 382
Cration dun dessin avec connexions partir dun programme............................. 384
Elments dorigine et de destination dun collage................................................ 385
Collage avec des objets Cell ................................................................................... 387
Collage dune forme une autre forme ................................................................ 387
Exemple de connexion de formes dans un diagramme de flux ................................ 389
Chapitre 20 Intgration de donnes et dune solution Visio........................................................391
Association de donnes avec des formes laide dAutomation............................... 392
Ajout de lignes de proprits personnalises et dfinies par lutilisateur............ 392
Gnration et utilisation dID uniques ................................................................. 393
Proprits Visio pour le stockage et lextraction des donnes .................................. 395
Ecriture de code pour lextraction des donnes dun dessin Visio........................... 396
Exemple dextraction de donnes dun dessin...................................................... 397
Examen du code servant lextraction des donnes dun dessin ........................ 399
Ecriture de code pour la cration dun dessin Visio partir de donnes................. 401
Exemple de cration dun dessin partir de donnes .......................................... 401
Examen du code pour la cration dun dessin partir de donnes..................... 405
Intgration dune solution Visio et dune base de donnes ...................................... 406
xii TABL E DES MATI ERES
Chapitre 21 Gestion des vnements dans Visio .......................................................................... 409
Prsentation des vnements ......................................................................................410
Rdaction du code pour les vnements ....................................................................411
Gestion des vnements dclenchs par ThisDocument .....................................412
Dclaration dune variable objet laide du mot-cl WithEvents .......................415
Dfinition dune classe recevant des vnements .................................................416
Exemple de module de classe rpondant aux vnements...................................418
Objets Event Visio .......................................................................................................420
Dfinition de lobjet Event .....................................................................................420
Obtention dinformations concernant un objet Event......................................... 422
Cration dun objet Event excutant un programme complmentaire ..............423
Persistance dun objet Event excutant un programme complmentaire ..........424
Cration dun objet Event envoyant une notification..........................................424
Exemple de procdure VisEventProc ....................................................................428
Exemple dobjets Event envoyant des notifications .............................................429
Dure de vie dun objet Event envoyant une notification....................................430
Chapitre 22 Personnalisation de linterface utilisateur Visio .................................................... 431
Elments personnalisables...........................................................................................432
Rcupration dun objet UIObject ........................................................................433
Objets relatifs aux menus .......................................................................................435
Objets relatifs aux acclrateurs.............................................................................437
Objets relatifs aux barres doutils ..........................................................................437
Objets relatifs aux barres dtat..............................................................................439
Planification des modifications de linterface utilisateur ..........................................440
Diffrences entre la personnalisation dune copie de linterface utilisateur Visio
intgre et celle dune interface personnalise......................................................440
Contrle de la porte de linterface utilisateur......................................................441
Contrle de la persistance de linterface utilisateur.............................................. 442
Modifications apportes linterface utilisateur........................................................443
Rcupration dun objet MenuSet, ToolbarSet, AccelTable ou StatusBar..........443
ID des constantes pour des contextes de fentre ..................................................444
Ajout dun menu et dune option de menu..........................................................445
Ajout dune barre doutils et dun bouton de barre doutils................................448
Paramtrage des proprits dune option .............................................................451
Suppression doptions dune interface utilisateur ................................................452
Suppression dune option de barre doutils ..........................................................454
Suppression dun acclrateur ...............................................................................455
Mise en oeuvre des modifications apportes linterface utilisateur
personnalise ..........................................................................................................456
Utilisation des fichiers dinterface utilisateur personnalise.....................................457
Fichier Custom.vsu.................................................................................................457
Enregistrement dun fichier dinterface utilisateur personnalise.......................458
Chargement dun fichier dinterface utilisateur personnalise............................458
Restauration de linterface utilisateur intgre Visio............................................459
TABL E DES MATI RES xiii
Chapitre 23 Utilisation de contrles ActiveX dans une solution Visio......................................461
Ajout de contrles ActiveX une solution Visio....................................................... 462
Utilisation du mode cration................................................................................. 462
Insertion dun contrle dans un dessin................................................................. 462
Dfinition de lordre de tabulation des contrles................................................. 464
Utilisation des proprits dambiance de Visio dans des contrles..................... 465
Impression dun dessin sans contrle ................................................................... 465
Protection des contrles contre les modifications................................................ 465
Gestion des vnements dun contrle....................................................................... 466
Utilisation des contrles lexcution........................................................................ 467
A propos des noms de contrle ............................................................................. 467
Rcupration dun contrle de la collection OLEObjects.................................... 468
Distribution de contrles ActiveX dans une solution Visio...................................... 469
Exemple de contrles ActiveX qui interagissent avec des formes............................. 470
Chapitre 24 Utilisation du gestionnaire dannulation de Visio dans votre programme..........473
Le gestionnaire dannulation de Visio........................................................................ 474
Prsentation des options de Annuler/Rtablir...................................................... 474
Fonctionnement du gestionnaire dannulation de Visio avec un programme
complmentaire...................................................................................................... 475
Cration de domaines dannulation dans votre programme complmentaire........ 477
Cration dun domaine dannulation ................................................................... 477
Association dvnements un domaine dannulation ....................................... 478
Cration dunits dannulation................................................................................... 479
Cration dune unit dannulation........................................................................ 479
Ajout dune unit dannulation dans le gestionnaire dannulation de Visio...... 481
Exemple de cration dune unit dannulation qui gre des donnes non-Visio .... 481
Chapitre 25 Distribution dune solution Visio Automation...........................................................485
Installation dune solution Visio ................................................................................ 486
Dtermination des chemins et dossiers des fichiers Visio ................................... 486
Mode de recherche des chemins de fichier de Visio............................................. 487
Contrle de lexcution dun programme.................................................................. 488
Diffusion dun programme......................................................................................... 491
Diffusion de programmes Microsoft VBA............................................................ 491
Taille des fichiers de dessin dans une solution Microsoft VBA........................... 492
Utilisation de noms universels dans une solution................................................ 493
Informations importantes concernant les licences............................................... 493
Chapitre 26 Programmation de Visio avec Microsoft Visual Basic...........................................495
Rcupration dune copie de Visio............................................................................. 496
Cration dun objet Application............................................................................ 496
Rcupration dun objet Application.................................................................... 497
Libration dun objet Application......................................................................... 497
Exemple dutilisation dun objet Application dans un programme
Microsoft Visual Basic ........................................................................................... 497
Raccourcis dutilisation dune copie de Visio....................................................... 499
Utilisation du descripteur de fentre dune copie ................................................ 500
Interactions avec dautres programmes ................................................................ 500
Cration dun document Visio................................................................................... 501
xiv TABL E DES MATI ERES
Gestion des erreurs dans Microsoft Visual Basic .......................................................502
Interprtation de la chane de commande envoye par Visio votre programme..503
Excution du programme depuis le sous-menu Macros......................................503
Excution du programme lors du calcul dune formule ......................................504
Excution du programme laide darguments....................................................505
Excution du programme depuis le dossier Startup ............................................506
Analyse de la chane de commande.......................................................................506
Utilisation de la bibliothque de types de Visio dans les projets
Microsoft Visual Basic.................................................................................................506
Migration de Microsoft Visual Basic VBA...............................................................507
Chapitre 27 Programmation de Visio avec C++ ............................................................................. 509
Mise disposition des objets dans Visio ....................................................................510
Prise en charge de C++ dans Visio .............................................................................511
Utilisation des classes wrapper ..............................................................................512
Interfaces situes derrire les classes wrapper.......................................................514
Rcupration dun objet Application Visio ..........................................................516
Valeurs renvoyes par les mthodes de Visio........................................................516
Arguments transmis aux mthodes Visio .............................................................518
Gestion des vnements Visio dans les programmes C++........................................520
Mise en oeuvre dun objet rcepteur .....................................................................520
Utilisation de CVisioAddonSink ...........................................................................521
Bibliothques Visio (VSL)...........................................................................................524
Avantages des bibliothques Visio.........................................................................524
Architecture dune bibliothque Visio..................................................................525
Dclaration et enregistrement de programmes complmentaires.......................526
Excution dun programme complmentaire.......................................................528
Annexe A Proprits, mthodes et vnements classs par objet ........................................ 531
Annexe B Indices de section, de ligne et de cellule ShapeSheet.......................................... 547
Indices de section, de ligne et de cellule associs aux formes....................................548
Indices de section, de ligne et de cellule associs aux styles ......................................554
Indices de section, de ligne et de cellule associs aux pages ......................................554
Indices de section, de ligne et de cellule associs aux documents.............................556
Cellules de tabulation et types de ligne.......................................................................557
Glossaire ......................................................................................................................... 559
Index................................................................................................................................. 575
Sommaire
Prf ace
Developing Visio Solutions est un guide complet qui permet de crer des solutions
graphiques avec la famille de produits Microsoft

Visio

2000. Il contient les lments


suivants :
Une prsentation de lenvironnement Visio et des concepts relatifs au
dveloppement de solutions Visio.
Des informations dtailles sur lutilisation de formules permettant de concevoir
des symboles SmartShapes

qui modlisent le comportement et les objets rels.


Des informations, des conseils et des techniques dutilisation de Microsoft

Visual
Basic

pour Applications (VBA) qui permettent denrichir lapplication Visio ou


de lutiliser en tant que composant de vos propres applications.
Une prsentation des langages de programmation Microsoft

Visual Basic

et C++
qui permettent de dvelopper des programmes utilisant Visio en tant que
composant.
Cette prface dfinit les conventions utilises dans ce guide, les connaissances
ncessaires sa comprhension, prsente les toutes dernires fonctions destines aux
dveloppeurs de solutions et rpertorie les matriaux de rfrence en ligne.
A propos du prsent guide....................................................................................... 2
Nouvelles fonctions destines aux dveloppeurs.................................................. 3
Matriaux de rfrence en ligne.............................................................................. 4
2 P RFACE
A propos du prsent guide
Le guide Developing Visio Solutions peut aider tout utilisateur souhaitant
personnaliser les formes ou les solutions Visio, notamment les dveloppeurs
dapplications, les analystes systme, les programmeurs, les architectes, les ingnieurs
et les utilisateurs de logiciels de CAO.
Connaissances ncessaires
Vous devez connatre les techniques de dessin et les commandes, les outils et les
menus de Visio. Vous devez galement matriser les systmes de coordonnes
cartsiens et les bases de la gomtrie. Des connaissances en transformation,
trigonomtrie et gomtrie analytique peuvent galement vous tre utiles.
Pour les chapitres traitant du contrle de Visio laide dun autre langage de
programmation tel que Microsoft Visual Basic pour Applications (VBA) ou C++,
vous devez connatre le langage de programmation utilis. La plupart des exemples
inclus dans cet ouvrage sont crits en langage VBA.
Convent ions
Le prsent guide utilise les conventions typographiques ci-dessous :
Par ailleurs, pour amliorer la lisibilit des exemples de code et de formule, les
conventions suivantes ont t adoptes :
Au sein des formules, des espaces ont t insrs avant et aprs les oprateurs et le
signe gal (=). Ces espaces ntant pas ncessaires, Visio les supprime si vous les
avez insrs dans les formules saisies.
Dans les exemples de code, des constantes de type numrique ou chane ont t
utilises l o vous utilisez gnralement des variables ou des constantes globales,
notamment si vous essayez de localiser des programmes.
Convention typographique Description
Gras Utilis pour reprer les termes de programmation dans le
corps du texte.
Italique Utilis pour les variables, les formules ou les termes
dfinis dans le corps du texte. Egalement utilis dans les
syntaxes pour indiquer les donnes que l utilisateur doit
saisir.
MajusculesInitiales Utilises pour amliorer la lisibilit dans Visio et dans VBA.
En ce qui concerne les termes de programmation, les
langages Visio et VBA ne diffrencient pas les majuscules
des minuscules. En revanche, C+ + fait la diffrence.
Nom de fichier Utilis pour les noms de fichier dans le corps du texte.
Po11ce hoh
popof1ohhe11e
Utilise pour les exemples de code.
P RFACE 3
Nouvelles f onct ions dest ines aux dveloppeurs
La version Visio 2000 offre une plateforme unique et puissante pour les solutions de
dessin personnalises. Elle a t enrichie de nouvelles sections, lignes et cellules
ShapeSheet

, et de nouveaux objets, proprits, mthodes et vnements Automation.


Vous disposez maintenant dun plus grand nombre doptions pour dfinir le
fonctionnement des lments des solutions. Pour plus dinformations, reportez-vous
aux aides en ligne Rfrence de ShapeSheet et Rfrence dAutomation, fournies avec
le programme Visio.
Vous bnficiez des nouvelles fonctions et des nouveaux outils suivants.
Nouveaux outils et nouvelles fonctions
Outil ou fonction Description
Prise en charge de
dessins complexes
Crez des dessins contenant un grand nombre de formes et
des formules complexes.
Amlioration des
fonctionnalits
d annulation
Bnficiez de l intgration transparente des programmes
complmentaires et des programmes externes que vous
dveloppez, et du gestionnaire d annulation de Visio.
Enrichissement du
modle de fentre
Hbergez des fentres dans Visio avec un programme externe
ou complmentaire.
Prise en charge de
M icrosoft Visual Basic
pour Applications
(VBA) 6.0
Utilisez la mme version de VBA que M icrosoft

O ffice 2000
pour simplifier le codage et amliorer la prise en charge du
dveloppement inter-application. VBA 6.0 offre de nouvelles
fonctions telles que la prise en charge de formulaires standard
et la parit de langage avec M icrosoft Visual Basic 6.0.
Personnalisation des
barres d outils
Crez des solutions hautement personnalises en travaillant
l apparence et le comportement des barres d outils et des
menus en fonction des besoins de la solution.
Dynamique en temps
rel
I nsrez une forme dans un document, puis modifiez-la :
le document est mis jour automatiquement. Cette fonction
permet de bnficier presque immdiatement des
modifications apportes aux dessins.
Enrichissement et
rationalisation de la
gomtrie
Rendez vos solutions plus efficaces en utilisant des nouveaux
types de forme gomtrique, tels que des NURBS, des
ellipses et des lignes sans fin, et en reprsentant d autres
types de forme gomtrique, tels que des polylignes. En outre,
les occurrences de forme peuvent maintenant hriter des
proprits gomtriques des formes de base.
Proprits des
documents
Grez les proprits de l ensemble du document et faites-y
rfrence dans des cellules associes un document.
Raccourcis de formes
de base
Ajoutez des raccourcis aux formes de base des gabarits pour
conomiser du temps lorsque vous grez ces formes et de
l espace pour stocker les fichiers. Les raccourcis peuvent
galement tre dots d actions lies au dplacement qui
permettent aux occurrences de chaque raccourci de
fonctionner ou d apparatre diffremment par rapport la
forme de base.
4 P RFACE
Mat riaux de rf rence en ligne
De nombreux matriaux de rfrence sont livrs sur le CD de Visio 2000. Dautres
matriaux de rfrence sont disponibles sur le site Web de Visio.
Mat riaux de rf rence f ournis sur le CD de Visio 2000
Outre les matriaux fournis dans le guide Developing Visio Solutions, vous pouvez
accder des informations de rfrence dtailles sur le CD de Visio 2000. Ces fichiers
sont stocks dans le dossier \Visio\DVS ou dans celui qui contient le programme
Visio. Pour plus dinformations concernant le contenu de ce dossier, consultez le
fichier \DVS\Lisezmoi.txt.
REMARQUE : lorsque vous utilisez Visio, si un message vous informe quun des fichiers ou
quune des ressources prcdemment mentionns est introuvable, ou que vous ne
parveniez pas les localiser, installez-les partir du CD du produit. Laide en ligne
Rfrence du dveloppeur et les exemples de fichier sont installs avec la fonction
Developing Visio Solutions, disponible uniquement si vous slectionnez loption
Installation personnalise/complte au cours de linstallation. Vous pouvez choisir lun ou
lautre de ces composants dans lcran Installation personnalise du programme
dinstallation.
Rfrences croises au
sein d un document
Faites rfrence toute cellule d un document partir d une
autre cellule de ce document. Une forme peut fonder son
comportement sur les proprits du document ou de tout
autre style, forme, page ou forme de base de ce document.
Amlioration de
l uniformit des objets
Faites pivoter les formes (bitmaps, mtafichiers et objets
O LE). Ajoutez du texte ou des proprits gomtriques aux
formes, y compris aux repres et aux groupes.
Amlioration des
fonctionnalits de
groupe
Ajoutez des proprits gomtriques directement aux groupes
et choisissez entre trois modes de slection de groupes
(le groupe en premier, le membre en premier, le groupe
uniquement).
Amlioration de la prise
en charge de la
localisation
Attribuez des noms universels aux objets et d autres noms aux
documents pour qu ils puissent tre utiliss par des solutions
indpendamment du langage.
M odification des
cellules in situ
Cliquez sur une cellule de la fentre Feuille ShapeSheet et
saisissez-y une formule directement, sans passer par la barre
de formules. Redimensionnez ensuite les colonnes dans cette
fentre pour afficher les longues formules.
Nouveaux outils et nouvelles fonctions (suite)
Outil ou fonction Description
P RFACE 5
Voici la liste des lments disponibles dans le dossier DVS :
Une illustration du modle dobjet Visio.
Des exemples de gabarits qui comprennent un assortiment de formes illustrant
une vaste gamme de fonctionnements de formes courantes.
Des modles contenant de nombreux exemples de macros Microsoft Visual Basic
pour Applications (VBA).
Les fichiers de lAssistant Documentation de gabarit, application exemple qui cre
un dessin avec une occurrence de chaque forme de base dun gabarit, ainsi que du
code source Microsoft Visual Basic utilis pour crer cette application et dautres
applications exemple.
Les fichiers de prise en charge Visual Basic, ainsi que le code source et les
programmes dutilitaire C++ dcrits au chapitre 26, Programmation de Visio
avec Microsoft Visual Basic et au chapitre 27, Programmation de Visio
avec C++ , situs dans le dossier \DVS\Libraries.
Mat riaux de rf rence sur le sit e Web de Visio
Le site Web de Visio (www.visio.com) prsente des informations concernant le
dveloppement de solutions Visio destines aux dveloppeurs de solutions
personnalises qui utilisent la technologie Visio. Ces informations sont les suivantes :
Des donnes techniques dtailles concernant la cration de symboles
SmartShapes

personnaliss, ou de produits Visio personnaliss ou automatiss.


Des mises jour dinformations destines aux dveloppeurs, notamment les
manifestations les concernant, les prochaines diffusions de donnes en ligne et les
derniers tlchargements.
Des ressources relatives au support du dveloppement, notamment les versions en
ligne des matriaux de rfrence, une base de connaissances en ligne et une
bibliothque de fichiers tlchargeables contenant des exemples de code et
dapplications.
La page Visio Developer Forum, lieu de rassemblement en ligne permettant de
partager des informations avec des dveloppeurs Visio et dobtenir de laide.
Des informations sur les services et lassistance technique Visio.
Des informations sur la formation des dveloppeurs, notamment le programme, la
description et le calendrier des cours, ainsi que quelques cours en ligne.
Des tudes de cas rels pour vous permettre de comprendre comment les
entreprises personnalisent la technologie Visio pour satisfaire leurs besoins.
Des informations sur les produits Visio destins aux dveloppeurs, tels que
Microsoft

Visio

2000, Enterprise Edition, contenant des outils pour la


modlisation, la conception et la documentation des applications.
Saisissez ladresse www.visio.com/vdn/ dans votre navigateur pour accder aux
informations relatives au dveloppement de solutions Visio.
Sommaire
1
Prsent at ion du manuel
Developing Visio Solut ions
Ce guide concerne le dveloppement de solutions. Ces solutions sont des ensembles de
formes et de programmes Microsoft

Visio

qui reprsentent fidlement la ralit et


rsolvent certains problmes de dessin.
En rgle gnrale, une solution logicielle combine lutilisation dun programme
personnalis et dapplications. Plutt que de dvelopper intgralement une
fonctionnalit, le dveloppeur de solutions utilise celles dun logiciel du commerce.
Une solution Visio utilise des formes programmables (fournies dans Visio ou
dveloppes spcialement) et un modle permettant de crer des dessins sur la base de
ces formes. Certaines solutions Visio utilisent galement Automation pour contrler
les formes et les dessins. Les programmes personnaliss dune solution Visio peuvent
tre crits dans tout langage de programmation prenant en charge Automation en
tant que contrleur, par exemple Microsoft

Visual Basic

pour Applications (VBA),


Microsoft

Visual Basic

ou C++. Pour simplifier le dveloppement de projets VBA,


lapplication Visio fournit un environnement de dveloppement intgr.
Ce chapitre prsente les fonctions essentielles de Visio, ainsi que certains concepts
permettant de choisir leur mode dutilisation. Pour tirer le meilleur parti de ce
chapitre et de ce guide, il est prfrable de connatre les commandes et les outils Visio.
Il est recommand de crer quelques dessins avant de poursuivre la lecture de ce
guide. Localisez laide en ligne de Visio et celle de ShapeSheet, fournies avec Visio
(slectionnez ? (Aide) > Rfrence du dveloppeur, puis choisissez loption de
rfrence de ShapeSheet). Cette aide fournit plus de dtails concernant les
informations de base et rpond aux questions que vous pouvez vous poser lors de la
lecture de ce guide.
A propos des solutions Visio................................................................................... 8
Utilisation de formes Visio pour crer des solutions............................................ 15
Dveloppement de formes laide de la technologie SmartShapes................... 18
Recours Automation dans une solution Visio .................................................... 20
Planification dune solution Visio ........................................................................... 25
8 CHAP I TRE 1
Si votre solution est conue pour contrler le moteur Visio avec Automation, vous
devez bien connatre le langage de programmation que vous allez utiliser. Laide en
ligne de VBA est fournie avec lapplication Visio. Si vous utilisez dautres langages de
programmation, reportez-vous la documentation fournie par le revendeur.
A propos des solut ions Visio
Une solution Visio est un ensemble de formes et de programmes Visio qui donnent
une reprsentation fidle de la ralit et permettent de rsoudre certains problmes de
dessin. En rgle gnrale, une solution Visio comporte des gabarits de formes de base
que lutilisateur peut insrer dans une page de dessin par glisser-dplacer. Il peut ainsi
crer un dessin sans avoir accomplir dopration manuelle. Une solution peut
galement comprendre des modles de dessin qui fournissent des dessins avec des
formes, telles que des blocs de titre, des logos ou des cadres, et qui prdfinissent
lchelle, la taille du dessin et, dans certains cas, le format de papier utiliser pour
limpression. Les programmes (qui apparaissent sous la forme dun code Microsoft
Visual Basic pour Applications directement dans les documents Visio de la solution
ou en tant que programmes autonomes, externes aux documents Visio) vous aident
crer le dessin, lanalyser ou transfrer des donnes entre le dessin et les sources de
donnes externes. Pour optimiser lutilisation des formes, lutilisateur peut consulter
laide en ligne.
Modlisat ion au moyen de f ormes Visio
Un modle conceptuel permet danalyser et de rsoudre un problme grce des objets
qui ressemblent aux lments du domaine du modle tudi (par exemple,
organigramme dun service, organisation des bureaux et des chaises dans un plan
damnagement, rseau de distribution ou diagramme dun circuit intgr). Comme
ces modles sont trs fidles la ralit, vous pouvez concevoir et dvelopper une
solution en utilisant des termes vocateurs pour les utilisateurs.
Dans lidal, les formes dune solution Visio doivent correspondre aux objets du
domaine modlis. La cration dun dessin donne lieu llaboration dun modle.
Le comportement de la forme garantit une modlisation et une reprsentation
graphique correctes, tout en laissant lutilisateur la possibilit de ne pas prendre en
compte certains attributs afin de crer une reprsentation lisible.
P RESENTATI ON DU MANUEL DEVEL OP I NG VI SI O SOL UTI ONS 9
Par exemple, si vous planifiez lorganisation dun service, le domaine du modle est le
service. Les objets du domaine sont les employs. Les dessins reprsentant ce modle
sont des organigrammes simples dont les diffrentes cases sont relies entre elles par
des traits de connexion indiquant les rapports hirarchiques.
Pour rorganiser un service, il suffit
de modifier les connexions entre
les employs.
Vous pouvez galement crer un plan afin de prparer lemmnagement de votre
socit dans de nouveaux locaux. Le domaine modlis est le btiment. Les objets de
ce domaine sont les employs mais vous pouvez galement faire figurer le mobilier,
lquipement informatique, etc. Le dessin de ce modle est un diagramme
dagencement despaces indiquant lemplacement de chaque employ, ainsi que le
matriel (mobilier et quipement informatique) ncessaire pour son bureau.
Pour crer un plan dagencement,
lutilisateur dplace les formes
reprsentant les employs, le
mobilier et les quipements
informatiques.
10 CHAP I TRE 1
Vous pouvez concevoir des formes Visio pour que dautres puissent les rutiliser dans
leurs dessins sans faire appel aux outils de dessin. Lapplication Visio constitue loutil
idal de modlisation. En effet, non seulement les formes ressemblent aux objets du
domaine modlis, mais elles peuvent galement participer lamlioration du
modle.
Par exemple :
Pour rorganiser un service, il suffit de dplacer les connexions entre les employs
dans un organigramme. Les formes permettent dobtenir un organigramme prcis
car elles fournissent lutilisateur des points de connexion prdfinis. Lutilisateur
sait ainsi o placer les connexions (cela diminue les risques de mauvaise
organisation, o, par exemple, un employ aurait deux suprieurs).
Pour crer un plan dagencement, il suffit de dplacer les formes correspondant
aux employs, au mobilier et lquipement informatique dans un diagramme
dagencement despace. Les formes permettent dobtenir un agencement correct
grce des poignes de contrle que les utilisateurs peuvent faire glisser afin de
vrifier le dgagement des portes et des tiroirs. Les formes peuvent tre verrouilles
de manire empcher leur redimensionnement. Ainsi, les utilisateurs ne risquent
pas de rduire par accident le mobilier standard qui ne tiendrait plus dans un
bureau rel.
P RESENTATI ON DU MANUEL DEVEL OP I NG VI SI O SOL UTI ONS 11
Extraction des donnes dun modle conceptuel
En rgle gnrale, un dessin Visio ne correspond qu une vue partielle dun modle,
et rarement au produit final. Pour tirer le meilleur parti des solutions Visio, il est
prfrable que les dessins reprsentent un modle dont les donnes peuvent tre
extraites automatiquement. Par exemple, dans une solution de modlisation de
processus, le dessin indique les tapes du processus. Il peut tre utile galement de
connatre le cot par transaction de chaque processus.
Donnes extraites
dun dessin de processus
Lorsque les donnes ajoutes au dessin Visio sont suffisantes, le modle complet est
stock dans le dessin. En revanche, si diffrents dessins doivent tre cohrents, vous
pouvez stocker dans une base de donnes unique et partage une partie du modle,
par exemple les spcifications techniques des cuisines, des plans de travail et des
appareils, ou les tableaux reprsentant les entres et sorties de processus.
Validation dun modle
Les modles prsentent des rgles qui dterminent le comportement des objets.
Les dessins doivent suivre certaines rgles afin dtre lisibles. Par exemple, un
organigramme dont les liens et les cases se chevauchent est plus difficilement
exploitable quun organigramme o les cases sont espaces rgulirement et dont les
liens contournent les formes.
12 CHAP I TRE 1
Toutefois, il ne suffit pas de crer un dessin dont lapparence est correcte. Les formes
et le dessin doivent avant tout permettre de vrifier lexactitude des donnes
quils reprsentent. Par exemple, dans un plan dagencement, chaque employ doit
avoir un bureau. Il est rare que plusieurs employs partagent un mme bureau.
A linverse, un mme employ nutilise que rarement plusieurs bureaux.
Une solution Visio permet danalyser les donnes extraites des dessins et de savoir si
elles suivent les rgles du modle. Supposons quune rorganisation globale de votre
socit entrane le remaniement de plusieurs services. Les structures hirarchiques
figurant sur lorganigramme de chaque service peuvent tre extraites
automatiquement, pour tre ensuite fusionnes dans une hirarchie globale qui vous
permettra de vrifier la cohrence de lensemble. Par exemple, la solution permet de
faire en sorte quaucun employ nait deux suprieurs, et que les employs qui ne
figurent pas dans la rorganisation propose aient bien t supprims sciemment de
lorganisation, etc.
Une solution Visio peut analyser les
dessins afin de valider le modle.
P RESENTATI ON DU MANUEL DEVEL OP I NG VI SI O SOL UTI ONS 13
Exemple de solut ion Visio daut omat isat ion des vent es sur le
t errain
Lexemple suivant illustre la manire dont une solution Visio peut modliser la
ralit, extraire les donnes du modle et les valider. Dans cet exemple, la solution
concerne les ventes sur le terrain dune socit qui fabrique et commercialise des
systmes de scurit.
Dordinaire, un commercial contacte un client potentiel afin de connatre ses besoins
en scurit, conoit un systme partir des composants dun catalogue (qui peut
indiquer les prix en vigueur) et propose une esquisse sur papier du systme propos.
Le commercial fait galement un devis approximatif, puis retourne au bureau pour
formaliser ce devis. Il recre lesquisse sur ordinateur. Les prix sont tudis et calculs
sur la base de la demande et le devis est labor. Si le client laccepte, la socit prpare
un contrat lui faire signer et un ordre dexcution pour linstallation.
Lapproche standard fonctionne bien... lorsque tout se passe comme prvu.
Malheureusement, les risques derreur sont nombreux : un composant essentiel peut
avoir t oubli dans lesquisse dorigine, les connexions peuvent tre incorrectes ou
certaines peuvent manquer. Le dessin formel peut ne pas correspondre lesquisse.
Le catalogue du commercial peut tre obsolte : le systme propos comprend alors
des composants qui ne sont plus disponibles ou qui sont plus coteux. La cration
manuelle de chaque document augmente le risque derreur chaque tape du
processus, y compris au dernier stade qui concerne linstallation proprement dite sur
le site du client. Mme si tout se passe bien, chaque tape prend du temps. En effet,
chaque document doit tre prpar, vrifi et ventuellement corrig.
Grce aux solutions Visio, ce processus peut tre automatis de la manire suivante :
le commercial, muni dun ordinateur portable avec Visio et la solution
dautomatisation des ventes, rencontre un client potentiel. Lorsquils valuent
ensemble les besoins du client en matire de scurit, le commercial labore un
diagramme reprsentant le systme propos. Pour ce faire, il insre dans un dessin
Visio illustrant le site dinstallation des formes issues dun gabarit personnalis. Les
formes du systme de scurit sont pourvues de points de connexion et de poignes
de contrle qui facilitent leur organisation. Le gabarit tant mis jour rgulirement,
les composants ne risquent pas dtre obsoltes.
14 CHAP I TRE 1
Systme de scurit
conu laide dune solution Visio
Les formes du systme de scurit possdent des proprits personnalises qui
stockent certaines donnes, telles que les numros de rfrence. La solution comporte
une base de donnes qui indique les prix en vigueur, et dautres informations sur les
composants et les programmes qui synchronisent les formes avec la base de donnes.
Le commercial peut ainsi effectuer les oprations suivantes :
Valider la proposition de systme de scurit en vrifiant que tous les composants
du dessin sont en place et que leurs connexions sont correctes. Le commercial peut
ainsi corriger les ventuelles erreurs alors quil se trouve encore chez le client.
Rechercher les prix en vigueur dans la base de donnes pour gnrer la liste des
pices concernant le matriel et fournir au client une valuation prcise du cot de
linstallation.
Grce la solution Visio, le commercial peut utiliser son dessin, directement sur le
terrain ou de retour au bureau, pour gnrer le devis, le contrat, lordre dexcution
de linstallation et la facture. La solution Visio cre des documents plus prcis dans un
temps rduit. Le temps gagn par le commercial lui permet de contacter davantage
de clients.
P RESENTATI ON DU MANUEL DEVEL OP I NG VI SI O SOL UTI ONS 15
Ut ilisat ion de f ormes Visio pour crer des solut ions
Une solution Visio comprend le plus souvent des formes. Lapplication Visio permet
au dveloppeur de solutions daccder facilement des fonctions graphiques
perfectionnes grce ses outils de dessin. Les formes peuvent tre programmes
laide de formules dans la fentre ShapeSheet

.
Chaque forme Visio comporte un ensemble de formules correspondant ses
attributs, tels que sa largeur et sa hauteur. Ces formules dterminent galement son
comportement, notamment lorsquun utilisateur double-clique dessus. Etant donn
que les formes Visio peuvent tre programmes laide de formules, vous pouvez leur
faire adopter un comportement proche de celui des objets rels quelles reprsentent.
Vous pouvez par exemple associer des donnes importantes (numro de rfrence,
nom ou fabricant) aux formes reprsentant lquipement dun bureau. Ces formes,
dont le comportement unique est dict par les formules que vous rdigez, peuvent
alors devenir des composants essentiels.
Assemblage dobjet s dans des dessins
Si un graphique nest pour vous quun ensemble de vecteurs, les graphiques Visio
vont vous offrir une toute nouvelle perspective. Les formes Visio sont paramtriques :
la gomtrie et les autres attributs dune forme Visio varient en fonction des valeurs de
certains paramtres, dfinis soit par le moteur Visio, soit par le dveloppeur des
formes. Une gomtrie est fixe lorsquelle repose simplement sur des coordonnes
x, y. En revanche, la gomtrie des formes repose sur des formules qui recalculent les
coordonnes de manire dynamique mesure que lutilisateur modifie la forme.
Au lieu de tirer des traits, vous crez le dessin en assemblant des objets intelligents.
Les formes Visio sont
paramtriques.
Dans cette forme, la longueur et le diamtre du boulon, ainsi que la longueur du
filetage, sont des paramtres contrls par des formules. Le diamtre et lpaisseur de
la tte sont directement lis ces paramtres.
A Diamtre de la tte
B Longueur du boulon
C Longueur du filetage
D Diamtre du boulon
E Epaisseur de la tte
A
B
C
D
E
16 CHAP I TRE 1
Ces paramtres sont indpendants les uns des autres, dans la limite des possibilits
physiques. Pour modifier la longueur ou le diamtre du boulon, lutilisateur dplace
les poignes de slection. Pour modifier la longueur du filetage, il dplace la poigne
de contrle. Ces paramtres peuvent galement tre configurs partir des donnes
numriques provenant de la base de donnes dun fabricant et indiquant les tailles
disponibles.
Ut ilisat ion de f ormes comme composant s
Dans un programme, une procdure est associe une fonctionnalit pour faciliter sa
rutilisation. De mme, les formes Visio sont associes un comportement sur la page
de dessin. Elles doivent tre considres comme des composants dont le
comportement par dfaut est dtermin par le moteur Visio, mais que vous pouvez
ensuite personnaliser laide de formules.
Une solution est gnralement compose de plusieurs formes. En rgle gnrale, vous
tes amen concevoir un ensemble de formes prenant en charge un type de dessin
particulier. Ces formes, une fois assembles, constituent les formes de base dun
gabarit Visio. Une forme de base est une forme figurant dans un gabarit et qui sert
crer des occurrences ou des formes. Les occurrences hritent de la plupart des
caractristiques de la forme de base.
Les utilisateurs (ou les programmes) peuvent insrer les formes de base dun gabarit
en les faisant glisser sur la page de dessin. Le gabarit permet de rutiliser des formes
personnalises. Une mme forme peut avoir diverses applications : un ingnieur
lutilisera pour simuler la configuration dun produit, un commercial pour prsenter
un produit un client, ou un dessinateur pour crer un catalogue de produits.
Lorsquun utilisateur insre pour la premire fois une forme de base dans la page de
dessin, une occurrence de cette forme est cre, et une copie, appele forme de base de
document, est ajoute au gabarit de document du dessin. Le gabarit de document est
stock dans le fichier de dessin lui-mme. Ce principe prsente deux avantages :
Le dessin est entirement autonome et transportable. Une fois le dessin cr,
le gabarit devient inutile.
Les occurrences dune forme de base hritent des attributs de la forme de base
stocke dans le gabarit de document. Un utilisateur peut modifier la forme de base
dans le gabarit de document afin de changer les caractristiques de toutes les
occurrences figurant dans le dessin.
P RESENTATI ON DU MANUEL DEVEL OP I NG VI SI O SOL UTI ONS 17
Comme chaque occurrence dune forme de base hrite des proprits de la forme de
base de document, elle peut prendre en charge de nombreux comportements
complexes tout en conservant une taille modeste. Une formule peut ne pas tre prise
en compte au niveau de loccurrence. En revanche, il est possible de modifier toutes
les occurrences en modifiant la forme de base de document. Le dessin peut tre
diffus sans problme car il contient des copies des formes de base. Le ou les gabarits
ayant servi llaboration des formes de base ne sont plus ncessaires. Pour afficher le
dessin, il vous suffit de disposer dune copie de Visio.
Les formes dquipement rseau sont conues pour pouvoir tre alignes et
connectes aux formes de racks. Un ingnieur rseau peut ainsi crer un modle
prcis reprsentant une salle des serveurs. Chaque forme rpond aux spcifications du
fabricant, et le concepteur des formes a personnalis leur zone dalignement et ajout
des points de connexion pour faciliter leur utilisation.
Formes dquipement rseau
alignes et connectes
avec les formes de racks.
A Rack structur de 7 po. x 19 po.
B Hub Galactica
C ONline 506-C
D Tableau de connexions 32 ports
E Lattis Sys. 5005N
F NetServer LC
G Etagre double face
18 CHAP I TRE 1
Pour aider lutilisateur crer un dessin partir de vos formes de base, fournissez-lui
un modle de dessin. Ce dernier peut comporter des formes se trouvant dj sur la
page de dessin. Mais il permet surtout de configurer la page de dessin grce une
grille et une chelle uniformes, et de crer des styles et des calques spcifiques.
Un modle peut galement ouvrir un ou plusieurs gabarits. Lorsque lutilisateur cre
un dessin partir du modle, Visio ouvre les gabarits et cre un fichier de dessin. Il y
copie les styles et les proprits du modle. Tout comme le gabarit, le modle devient
inutile une fois le dessin cr.
Pour plus dinformations sur les principes de cration de formes Visio, reportez-vous
au chapitre 2, Cration de formes Visio . Pour plus dinformations sur le
regroupement de formes dans des gabarits et sur la mise disposition de modles avec
une solution, reportez-vous au chapitre 3, Formes de base, gabarits, modles
et documents Visio .
Dveloppement de f ormes laide de la t echnologie Smart Shapes
La technologie SmartShapes

de Visio permet de dvelopper des formes qui se


comportent comme les objets quelles reprsentent en modlisant les caractristiques
pertinentes pour les types de dessin ou de diagramme que vous crez. Pour ce faire,
dfinissez des formules qui donnent aux formes un comportement conforme aux
rgles, codes et principes des objets qui leur correspondent.
Chaque forme Visio a sa propre feuille de calcul ShapeSheet

qui dfinit son


comportement et ses capacits. La feuille de calcul ShapeSheet est, en quelque sorte,
la feuille de proprits dune forme, chaque proprit tant dfinie par une valeur ou
par une formule recalcule dynamiquement mesure que lutilisateur modifie la
forme. Vous pouvez afficher et modifier les formules dune forme dans la fentre
ShapeSheet.
La plupart des fonctions susceptibles de ncessiter une programmation externe
peuvent tre contrles via la fentre ShapeSheet. Par exemple, vous pouvez ajouter
des options au menu contextuel dune forme en dfinissant des formules adquates.
Les formules peuvent contrler divers attributs dune forme, par exemple :
la gomtrie (retournement, rotation, chemins visibles ou masqus) ;
la couleur, le motif et lpaisseur de trait ;
le texte (notamment la police, le format du paragraphe et lorientation) ;
les poignes de contrle permettant aux utilisateurs de modifier la forme ;
les points de connexion auxquels les formes peuvent tre colles ;
les proprits personnalises pouvant contenir des donnes dfinies par
lutilisateur.
P RESENTATI ON DU MANUEL DEVEL OP I NG VI SI O SOL UTI ONS 19
Linterface en feuille de calcul facilite lutilisation de rfrences de cellule pour lier
entre elles les proprits dune forme. Ces proprits peuvent sinfluencer entre elles
de manire simple et claire. Par exemple, dans le cas dune pice dans un dessin
mcanique, vous pouvez lier la couleur de la forme ses dimensions afin dindiquer si
elles restent dans les tolrances dfinies.
Cette flche est un exemple typique de contrle dune forme Visio par les formules.
Les formules remplacent le comportement par dfaut des formes dans Visio, selon
lequel lensemble de la forme est redimensionn proportionnellement lorsque vous
ltirez. Les formules personnalises permettent, dans cet exemple, dtirer ou de
rduire le ft de la flche sans modifier la pointe.
La forme de la flche est contrle
par des formules Visio.
A La base de la pointe de la flche est dfinie comme une fraction de la hauteur.
B Tous les points de la base de la pointe de la flche ont la mme abscisse (coordonne x) :
Largeur - Hauteur * 0,5
C Hauteur
D Hauteur * 0,75
E Hauteur * 0,5
F Hauteur * 0,25
G Largeur
Pour plus dinformations sur lutilisation de la fentre ShapeSheet et sur le contrle
des formes par le biais de formules, reportez-vous au chapitre 4, Formules Visio
Pour plus dinformations sur lexemple de la pointe de flche, reportez-vous au
chapitre 5, Contrle de ltirement et de la rduction des formes .
20 CHAP I TRE 1
Recours Aut omat ion dans une solut ion Visio
Pour certaines solutions, les formes, les gabarits et les modles ne suffisent pas. Il peut
tre judicieux de recourir Automation si vous crez des dessins partir de donnes
en constante volution, ou si vous effectuez rgulirement des tches rptitives de
dveloppement de formes, pour aider les utilisateurs crer des dessins sans tre des
experts de Visio ou encore pour utiliser des dessins comme source de donnes dun
autre travail. Automation permet dautomatiser ces tches en intgrant la
fonctionnalit du moteur Visio dans une solution grce lutilisation de ses objets.
Si vous utilisez souvent Microsoft Visual Basic pour Applications (VBA), les objets
suivants vous sont familiers : contrles du type bouton de commande, formulaire
utilisateur, base de donnes et champ. Grce Automation, vous pouvez galement
utiliser les objets dautres applications. Les dessins, les formes de base, les formes, et
mme les menus et les outils Visio peuvent devenir des composants dun programme.
Le programme peut tre excut dans une occurrence de Visio, ou il peut lancer Visio
pour y rechercher les objets ncessaires.
Etant donn que les produits Visio intgrent VBA, nul nest besoin pour vous
dutiliser un autre environnement de dveloppement pour crire vos programmes.
Toutefois, vous pouvez crire des programmes contrlant le moteur Visio dans
nimporte quel langage prenant en charge lutilisation dAutomation en tant que
contrleur. La plupart des exemples fournis dans ce guide sont crits en langage VBA,
mais les principes dcrits sappliquent nimporte quel langage de programmation.
Aut omat ion et objet s Visio
Automation permet un programme crit en langage VBA, Microsoft Visual Basic,
C/C++ ou dans nimporte quel autre langage de programmation prenant en charge
Automation, dintgrer la fonctionnalit dune application (par exemple, lapplication
Visio) en utilisant ses objets.
Dans Automation, lapplication qui fournit les objets (parfois appele application
fournisseur ou serveur Automation ) les met la disposition des autres
applications, et procure les proprits et mthodes permettant de les contrler.
(Cette opration est parfois nomme mise disposition des objets .)
Lapplication qui utilise les objets (par exemple, votre programme, parfois appel
contrleur ou client Automation) cre des occurrences des objets, puis dfinit leurs
proprits, ou appelle leurs mthodes afin que les objets puissent tre utiliss par
lapplication. Le fournisseur et le contrleur collaborent en faisant appel des
fonctions via les bibliothques OLE, qui sont installes sur tout systme muni dune
application prenant en charge OLE (Visio, Visual Basic ou Microsoft

Windows

).
P RESENTATI ON DU MANUEL DEVEL OP I NG VI SI O SOL UTI ONS 21
Contrairement un langage de script qui automatise simplement les actions que vous
effectuez dans linterface utilisateur dune application (slection dune commande,
choix dune touche, saisie, etc.), Automation accde aux objets de lapplication.
Un objet intgre des donnes, un comportement, des vnements et une interface qui
vous donne accs ces lments. Chaque objet Visio prsente des proprits
(donnes), des mthodes (comportements) et des vnements grce auxquels vous
pouvez intgrer dans vos programmes les diffrentes fonctionnalits de cet objet.
Les objets Visio se trouvent dans une occurrence de Visio. Un programme VBA
(Microsoft Visual Basic pour Applications) sexcute dans une occurrence de Visio,
puis accde aux objets ncessaires. Un programme externe fonctionne
indpendamment de toute occurrence de Visio. Il lance donc lapplication ou accde
une occurrence de Visio dj en cours. Il accde ensuite aux objets Visio ncessaires.
La plupart des objets du modle conceptuel Visio correspondent aux lments que
vous pouvez afficher et slectionner dans une occurrence de Visio. Par exemple, un
objet Page reprsente une page de dessin et un objet Shape, une forme dans un
dessin. Les formules dune forme sont reprsentes par les objets Cell.
De nombreux chapitres de ce guide sont consacrs lintgration dAutomation dans
une solution Visio. Pour plus dinformations, reportez-vous au chapitre 14,
Automation et le modle dobjet de Visio .
22 CHAP I TRE 1
Exemple de surveillance des vnement s et de calcul dun
t ot al
Pour voir comment une solution accde aux objets Visio laide dAutomation,
prenez lexemple dune solution qui surveille les vnements dclenchs lors de lajout
ou de la suppression de formes dans un dessin. La solution calcule en permanence la
consommation lectrique totale des lments reprsents par les formes afin de
vrifier quelle ne dpasse pas la limite fixe.
Solution surveillant la
consommation lectrique des
lments reprsents par les
formes dun dessin
Lexemple commence par une procdure dinitialisation qui vrifie toutes les formes
dun dessin. La consommation maximale autorise est dfinie par le texte dune
forme, appele Limite, que lutilisateur peut saisir dans cette forme dans le dessin.
La fonction VBA Val convertit le texte en un nombre au format Double qui sera
utilis dans les calculs suivants. La solution calcule en permanence le total dans la
cellule PC dune forme du nom de Courant.
Valeurs cumules
Valeur
Valeur
Valeur
Valeur
Valeur
Valeur
Consommation
lectrique maximale
7,0
Valeur actuelle : 7,20
P RESENTATI ON DU MANUEL DEVEL OP I NG VI SI O SOL UTI ONS 23
Pour chaque forme reprsentant un priphrique consommateur dnergie, la valeur
correspondant cette consommation est enregistre dans une proprit personnalise
appele ConsommationEnergie. Le programme peut y accder via la proprit Cells
dun objet Shape. Le programme effectue une itration de la collection Shapes de
lobjet Page transmis la procdure InitWith et vrifie la consommation de chaque
forme prsentant une proprit ConsommationEnergie. Si la consommation totale
excde la limite dfinie pour le dessin, la solution en informe lutilisateur en donnant
la valeur 2 la cellule Couleur de la section relative au format des caractres de la
forme Limite (Car.Couleur). Le texte de la forme apparat ainsi en rouge.
0pf1oh Exp11c1f
P1vafe W1fhEvehfs LaPage As Page
P1vafe fheL1m1f As 0oub1e
P1vafe fheCuehf As Ce11
Pub11c Sub Th1fW1fh|aPage As Page)
01m 1 As Thfege
Sef LaPage = aPage
fheL1m1f = va1|aPage.Shapes|"L1m1fe").Texf)
Sef fheCuehf = aPage.Shapes|"Couahf").Ce11s|"uf11.PC")
fheCuehf.Pesu1fTu = 0#
Io 1 = 1 To aPage.Shapes.Couhf
W1fh aPage.Shapes|1)
Tf .Ce11Ex1sfs|"Pop.Cohsommaf1ohEheg1e", Ia1se) Theh
fheCuehf.Pesu1f|"") = fheCuehf.Pesu1f|"") +
.Ce11s|"pop.Cohsommaf1ohEheg1e").Pesu1f|"")
Tf fheCuehf.Pesu1f|"") > fheL1m1f Theh
aPage.Shapes|"L1m1fe").Ce11s|"Ca.cou1eu").Pesu1f|"") = 2
Ehd Tf
Ehd Tf
Ehd W1fh
hexf 1
Ehd Sub
24 CHAP I TRE 1
Supposons que lutilisateur ajoute une forme au dessin. Cette action dclenche un
vnement ShapeAdded gr par la procdure dcrite ci-dessous. Tout comme la
procdure dinitialisation de page, elle ajoute au total la valeur indiquant la
consommation de la dernire forme ajoute et vrifie si ce total dpasse la limite
du dessin.
La suppression dune forme dclenche un vnement BeforeShapeDelete. Une
solution ne peut pas annuler la suppression, mais peut nanmoins effectuer les
oprations ncessitant la prsence de la forme avant que cette dernire ne soit
supprime du dessin. La procdure dvnement suivante soustrait du total la valeur
de consommation de la forme supprime afin que le total indiqu soit juste. Si la
suppression de la forme fait repasser le total au-dessous de la limite, le texte de la
forme Limite apparat de nouveau en noir (0).
Pour plus dinformations sur laccs aux formules dune forme via Automation,
reportez-vous au chapitre 17, Automatisation des formules . Pour plus
dinformations sur la gestion des vnements Visio dans une solution, reportez-vous
au chapitre 21, Gestion des vnements dans Visio .
P1vafe Sub fhePageShapeAdded|yva1 Shape As v1s1o.TvShape)
Tf Shape.Ce11Ex1sfs|"Pop.Cohsommaf1ohEheg1e", Ia1se) Theh
fheCuehf.Pesu1f|"") = fheCuehf.Pesu1f|"") +
Shape.Ce11s|"pop.Cohsommaf1ohEheg1e").Pesu1f|"")
Tf fheCuehf.Pesu1f|"") > fheL1m1f Theh
LaPage.Shapes|"L1m1fe").Ce11s|"Ca.cou1eu").Pesu1f|"") = 2
Ehd Tf
Ehd Tf
Ehd Sub
P1vafe Sub fhePageefoeShape0e1efe|yva1 Shape As v1s1o.TvShape)
Tf Shape.Ce11Ex1sfs|"Pop.Cohsommaf1ohEheg1e", Ia1se) Theh
fheCuehf.Pesu1f|"") = fheCuehf.Pesu1f|"") -
Shape.Ce11s|"pop.Cohsommaf1ohEheg1e").Pesu1f|"")
Tf fheCuehf.Pesu1f|"") <= fheL1m1f Theh
LaPage.Shapes|"L1m1fe").Ce11s|"Ca.cou1eu").Pesu1f|"") = 0
Ehd Tf
Ehd Tf
Ehd Sub
P RESENTATI ON DU MANUEL DEVEL OP I NG VI SI O SOL UTI ONS 25
Planif icat ion dune solut ion Visio
Une solution est plus facile intgrer lorsquil sagit dun dessin normalis qui utilise
les lments fournis avec un produit Visio, ainsi que vos formes, gabarits et modles
personnaliss. Les solutions qui comportent des Assistants de dessin (parfois appels
programmes complmentaires) sont galement programmes pour aider lutilisateur
crer des dessins. Si les dessins crer suivent un ensemble strict de rgles, la
solution peut comporter une application utilisant des donnes issues dune autre
source pour gnrer des dessins modifiables par lutilisateur. Si la solution est conue
pour fournir plus que des dessins, elle doit galement permettre une intgration avec
une base de donnes externe et dautres applications externes (du commerce ou
propritaires).
Planif icat ion du processus de dveloppement
Un seul dveloppeur peut souvent crer une solution Visio simple, comportant des
formes personnalises, un modle et du code. Pour les solutions plus complexes,
toutefois, il est parfois ncessaire de recourir une quipe de dveloppeurs,
prsentant chacun des comptences particulires. Par exemple, une quipe de
dveloppeurs peut se composer des personnes suivantes :
Un ingnieur systme rompu la conception de logiciels, connaissant bien
lapplication Visio, son architecture et ses principales fonctions. Lingnieur
systme est responsable des aspects techniques et de la conception dune solution
Visio.
Des dveloppeurs de formes conscients du rle que doit jouer chaque forme dans
la solution, connaissant bien les outils de dessin de Visio et la fentre ShapeSheet

.
Les dveloppeurs de formes doivent avoir de solides connaissances en
mathmatiques et en gomtrie, car la majeure partie de leur travail est consacre
la cration de formules permettant de contrler le comportement des formes.
Des dveloppeurs Automation, spcialistes du langage de programmation utilis
pour dvelopper la solution (Microsoft VBA, Visual Basic ou C++, selon le type
dintgration ncessaire). Ces dveloppeurs doivent possder des connaissances de
base concernant les formes et les formules de Visio, et doivent connatre
parfaitement le modle dobjet Visio.
Des experts du domaine concern par la solution. Ces experts conseilleront
lquipe concernant les normes en vigueur dans le domaine, les processus, lusage
et les exceptions.
26 CHAP I TRE 1
Une fois lquipe forme, le processus de dveloppement peut se drouler de la
manire suivante :
Rencontrez les utilisateurs afin de connatre leurs besoins et didentifier les objets
ncessaires au domaine de la solution.
Aprs concertation avec les utilisateurs, choisissez la procdure suivre pour
effectuer chaque tche. Collectez des exemples de dessins pouvant tre automatiss
ou amliors par la solution. Si le projet est important, vous pouvez envisager de
crer un document recensant ces informations de sorte que dautres utilisateurs et
dveloppeurs puissent les passer en revue et les comprendre.
Dveloppez progressivement la solution et consultez les utilisateurs
chaque tape.
Le dveloppement et lintgration progressifs des fonctions Visio dans une
solution donnent souvent de meilleurs rsultats. En effet, la solution est plus
rapidement mise la disposition de lutilisateur, qui peut faire des commentaires
qui aideront amliorer la solution au cours du dveloppement.
Commencez par dvelopper des formes et par les mettre la disposition des
utilisateurs. Corrigez ces formes en fonction des commentaires des utilisateurs.
Lefficacit dune solution repose sur lutilit et la pertinence des formes.
Par exemple, vous pouvez choisir entre fournir lutilisateur un nombre
important de formes ou prvoir le temps ncessaire la cration de formes
multiples. Certains utilisateurs trouveront plus pratique dutiliser des formes
versatiles dans plusieurs configurations plutt que davoir choisir les formes dans
un gabarit en comportant un certain nombre.
Une fois que les utilisateurs sont satisfaits de lensemble initial de formes,
dveloppez ventuellement des Assistants de dessin ou des programmes
complmentaires pouvant tre utiles llaboration des dessins. Au besoin,
amliorez les formes afin de les rendre plus facilement utilisables.
Un ensemble de dessins normaliss peut suffire aux besoins des utilisateurs. Veillez
ne pas rendre une solution plus complexe que ncessaire. Le fait que lapplication
Visio soit programmable ne vous oblige pas crer des programmes pour vos
solutions.
Enfin, si les formes et les programmes complmentaires de la solution sont conus
pour tre utiliss avec une base de donnes ou avec dautres applications, prenez
cet lment en compte ds le dbut du processus de dveloppement.
La procdure suivre pour cette tape dpend du type de solution que vous
dveloppez. Pour plus dinformations, reportez-vous aux sections Intgration
dune solution Visio et dune base de donnes , page 29 et Choix concernant la
mise en oeuvre dAutomation , page 30.
P RESENTATI ON DU MANUEL DEVEL OP I NG VI SI O SOL UTI ONS 27
Planif icat ion des f ormes et des gabarit s
Le dveloppement dune solution commence par la cration des formes ncessaires.
Les fonctionnalits des formes doivent tre, dans la mesure du possible, dfinies par
des formules. Deux points justifient de commencer par les formes :
Les formes peuvent tre intelligentes. Vous pouvez utiliser les capacits
intrinsques des formes Visio afin de grer une grande partie des fonctionnalits
graphiques sans crire de code.
Les formes sont indpendantes du code qui les contrle. Une fois que vous avez
dvelopp les formes de base utilises par la solution, vous pouvez les modifier
sans avoir recompiler le code, et inversement.
Si le comportement attribuer la forme est prvisible et peut tre dfini laide de
formules (par exemple, un redimensionnement ou une mise lchelle automatique),
intgrez-le dans la forme. Si ce comportement doit pouvoir changer dynamiquement
(par exemple, le texte dune forme ou lorganisation des formes dun dessin peut
varier), grez cet lment dans le programme. Vous pouvez contrler trs prcisment
lapparence et le comportement des formes en dfinissant des formules de forme.
Si vous joignez votre solution un gabarit de formes de base, les utilisateurs peuvent
dans certains cas se passer des outils de dessin de Visio.
Lorsque vous crez des formes de base pour un programme, testez-les dans une
occurrence de Visio en crant manuellement les types de dessin que le programme
sera amen automatiser. Vous vous rendrez ainsi mieux compte de la
programmation faire et des donnes fournir. Vous saurez galement si votre forme
fonctionne comme prvu.
Enfin, noubliez pas que le gabarit qui contient les formes de base constitue llment
principal de linterface utilisateur de la solution :
Veillez ce que les formes de base soient faciles trouver dans le gabarit.
Rpartissez ventuellement les formes de base connexes dans plusieurs gabarits,
surtout si vous les utilisez dans plusieurs solutions.
Pour plus dinformations sur la cration de formes de base et de gabarits,
reportez-vous au chapitre 3, Formes de base, gabarits, modles et documents
Visio . Pour plus dinformations sur la diffusion de gabarits dans une solution Visio,
reportez-vous au chapitre 13, Diffusion de gabarits et de modles .
28 CHAP I TRE 1
Planif icat ion de modles de dessin
Un modle de dessin fournit aux utilisateurs un espace de travail commun. Il facilite
la normalisation en permettant lutilisateur de crer facilement des dessins
normaliss laide de jeux de formes prdfinies.
Un modle de dessin peut comporter des styles, et configurer les pages de dessin
laide dune grille et dun systme de mesure uniformes. Un modle peut crer des
pages de dessin comportant des formes, ou ouvrir un ou plusieurs gabarits pour que
lutilisateur puisse ajouter dautres formes. Un modle peut galement fournir des
dessins comportant leur propre interface utilisateur en incluant des contrles
Microsoft

ActiveX

, tels que des boutons de commande et des zones de texte, des


contrles personnaliss chargs deffectuer des tches particulires et un code VBA
permettant un utilisateur dintervenir dans le dessin via les contrles. Lajout de
modles une solution Visio prsente les avantages suivants :
Si la solution est conue pour crer des dessins Visio, vous pouvez gagner du
temps au dveloppement et lutilisation en stockant le programme sous forme de
macros VBA dans un modle Visio, ou en joignant au programme Visual Basic ou
C/C++ un modle sous forme de fichier autonome.
Lorsquun modle sert crer un document, les styles, les proprits de document,
les macros VBA, les modules et les formulaires utilisateur du modle sont copis
dans le nouveau document. Il nest pas ncessaire de dfinir les proprits de
document ou les styles laide dAutomation, moins que vous ne souhaitiez
quils diffrent de ceux du modle. Il nest pas non plus utile de diffuser un
programme VBA sparment, moins que le code ne soit complexe ou que vous
ne soyez amen le mettre jour ultrieurement.
Si la solution permet de personnaliser linterface utilisateur de Visio, apportez les
modifications ncessaires dans le document du modle plutt que dans
lapplication Visio elle-mme. Ainsi, linterface utilisateur de la solution napparat
que lorsque lutilisateur sen sert, et non lorsquil a recours lapplication Visio
pour dautres tches.
Lutilisation dun modle permet dviter les problmes de conversion lorsquun
programme fait rfrence des styles et quil est utilis dans plusieurs langages.
REMARQUE : le fait de fournir un code VBA dans un modle simplifie les fichiers
diffuser avec une solution. En revanche, la tche de dbogage ou damlioration du code
est complique car chaque document cr partir du modle reoit une copie du code.
Pour plus de flexibilit, vous pouvez tre amen placer le code VBA dans un gabarit ou
dans un autre document joint la solution. Ainsi, les mises jour peuvent tre diffuses
plus facilement. Pour plus dinformations sur la cration de modles, reportez-vous au
chapitre 3, Formes de base, gabarits, modles et documents Visio . Pour plus
dinformations sur la diffusion de modles dans une solution Visio, reportez-vous au
chapitre 13, Diffusion de gabarits et de modles .
P RESENTATI ON DU MANUEL DEVEL OP I NG VI SI O SOL UTI ONS 29
Ut ilisat ion dAut omat ion dans les f ormes et les modles
Une fois que vous avez dvelopp les formes de base et les ventuels modles de la
solution, vous pouvez utiliser Automation pour mettre en oeuvre le reste de la
solution. Les oprations que cela implique dpendent de la fonction de la solution et
de son contexte dexcution. En rgle gnrale, Automation permet deffectuer les
oprations suivantes :
Mettre en oeuvre linterface utilisateur de la solution.
Dans la plupart des programmes autonomes, une bote de dialogue ou un cran
dAssistant informe lutilisateur de la procdure suivre et lui demande de saisir
les informations ncessaires lexcution.
Stocker et rcuprer les donnes.
Les formes peuvent possder des proprits personnalises. Elles peuvent
ventuellement tre configures pour inviter lutilisateur saisir des donnes ou
dfinir des proprits de forme lorsque, par exemple, une forme de base est insre
dans une page de dessin. Toutefois, afin dviter toute modification fortuite des
types de donnes et des donnes, la solution peut stocker les donnes dans une
base de donnes externe et les rcuprer lorsque cela savre ncessaire.
Positionner les formes, les connecter ou dfinir leurs proprits.
Si la solution cre un dessin, elle doit pouvoir dterminer les formes de base
ncessaires et lemplacement o celles-ci doivent tre insres. Elle dfinit
galement le texte des formes, applique les styles et relie les formes. Si la solution
est conue pour lire des dessins ou pour utiliser des formes existantes, elle doit
rechercher les formes, vrifier quelles sont adaptes au programme, et dfinir
leurs proprits et leurs formules.
Noubliez pas quune forme peut possder des formules qui la redimensionnent ou la
rorientent lorsque le programme change son emplacement ou sa taille. Cela vous
vite davoir modifier la forme vous-mme avec la souris dans la fentre de dessin de
Visio. Si vous tes amen crire du code complexe qui modifie les formes,
demandez-vous dabord si ce traitement ne pourrait pas tre effectu par une
formule.
Pour plus dinformations sur la diffusion dune solution Visio utilisant Automation,
reportez-vous au chapitre 25, Distribution dune solution Visio Automation
Int grat ion dune solut ion Visio et dune base de donnes
Lintgration dune solution Visio et dune base de donnes doit tre planifie afin
que les dessins puissent tre synchroniss avec la base de donnes. Le choix de la base
de donnes est essentiel. Vous devez ensuite dterminer les modifications apporter,
ainsi que le mode et le moment de leur application.
30 CHAP I TRE 1
Par exemple, dans la solution de systme de scurit dcrite plus haut dans ce
chapitre, chaque composant (camra, capteur, unit de contrle, etc.) correspond
une pice rfrence dans le catalogue du fabricant. Stockez cette rfrence dans les
proprits personnalises de chaque forme de base afin de faciliter la recherche
dinformations dans le catalogue stock sous forme de base de donnes.
Une fois que les relations unissant la solution la base de donnes sont dfinies,
la solution peut apporter des modifications de lune des manires suivantes :
En grant les vnements Visio qui indiquent le moment o la base de donnes
doit tre mise jour ou synchronise avec le dessin.
En crant un programme externe qui interroge le dessin Visio pour en extraire les
donnes lorsque cela est ncessaire (par exemple, sur demande de lutilisateur).
En stockant toutes les donnes dune solution dans une base de donnes externe et
en utilisant les donnes associes aux formes Visio, telles quune proprit
personnalise, afin daccder aux enregistrements de la base de donnes externe.
LAssistant Base de donnes fourni avec Visio peut dfinir des cellules personnalises
et lier ces cellules aux champs de base de donnes pour les solutions simples ou pour
la mise au point des solutions plus complexes. Vous pouvez utiliser le moteur Jet ou la
bibliothque DAO (data access objects - objets daccs aux donnes) fournie par
Microsoft pour accder aux bases de donnes via ODBC (Open Database
Connectivity). Votre solution Visio peut galement appeler un serveur Automation
qui met jour et synchronise la base de donnes, et permet de mieux contrler son
intgrit.
Pour plus dinformations sur les solutions et les bases de donnes Visio, reportez-vous
au chapitre 20, Intgration de donnes et dune solution Visio .
Choix concernant la mise en oeuvre dAut omat ion
Le type de programme crer dpend de ce que vous souhaitez faire. Vous pouvez
crire une macro VBA dans un document Visio ou une autre application de
contrleur Automation, ou dans un programme autonome en Visual Basic
ou C/C++. Vous pouvez crer un type spcifique de DLL (dynamic-link library)
fonctionnant avec lapplication Visio, appele bibliothque Visio (VSL). Les
utilisateurs peuvent excuter ce programme depuis le bureau Windows ou
lExplorateur Windows, ou directement depuis lapplication Visio, en choisissant une
commande ajoute un menu Visio, en cliquant sur un bouton ajout la barre
doutils, ou mme en double-cliquant ou en cliquant avec le bouton droit sur une
forme du dessin. Vous pouvez galement concevoir le programme pour quil soit
excut automatiquement lors dun vnement particulier, par exemple louverture
ou la cration dun fichier.
P RESENTATI ON DU MANUEL DEVEL OP I NG VI SI O SOL UTI ONS 31
Il existe quatre principales mthodes pour intgrer Automation dans une solution
Visio. Vous pouvez intgrer les lments suivants :
Un excutable autonome, ou fichier EXE, gnralement crit en langage Visual
Basic ou C++, mais qui peut galement utiliser nimporte quel langage prenant en
charge la cration dun contrleur Automation ActiveX.
Un fichier EXE est facile crer. Il peut tre crit dans de nombreux langages et est
garant de fiabilit. Toutefois, un fichier EXE doit tre excut dans un autre
processus de loccurrence de Visio quil contrle et doit tre charg chaque
excution, ce qui peut avoir une incidence sur les performances.
Une bibliothque Visio (VSL). Il sagit dune DLL Windows standard munie dun
point dentre Visio obligatoire et dune extension de nom de fichier .vsl.
Une VSL est beaucoup plus rapide quun fichier EXE car elle est excute dans le
mme processus quune occurrence de Visio. En outre, elle nest charge quune
fois, puis est excute depuis la mmoire. Vous pouvez galement dterminer,
dans le contexte, les cas dans lesquels la VSL est visible. Toutefois, une VSL nest
pas aussi fiable quun fichier EXE. En cas de blocage, loccurrence de Visio se
bloque galement. La VSL doit tre crite en langage C++. Elle nest plus rapide
quun fichier EXE que si son temps de traitement concerne principalement le
contrle de loccurrence de Visio ; si la VSL consacre plus de la moiti de son
temps au contrle dune autre application, il peut tre judicieux de choisir un
programme excut dans le processus de cette autre application.
Macro(s) VBA. VBA est fourni avec les produits Visio et permet dcrire des
macros, et de crer des botes de dialogue ou des modules de classe. Dautres
contrleurs VBA, tels que Microsoft

Word et Microsoft

Excel, permettent
galement de contrler lapplication Visio.
Tout comme les VSL, les macros VBA sont excutes dans le mme processus que
loccurrence de Visio. Leur criture tant plus simple, les programmeurs les
mettent au point plus rapidement. Les macros VBA sont faciles diffuser, ce qui
peut constituer un avantage mais aussi un inconvnient. Chaque dessin contient
une copie du code VBA : les tches de dbogage et dajout de fonctions sont donc
plus difficiles raliser.
Une approche mixte consiste utiliser VBA dans une occurrence de Visio afin de
charger et dexcuter des serveurs Automation (fichiers DLL ou EXE) crs dans
dautres langages.
Cette approche prend en charge lexcution en cours de processus si le serveur
Automation est cr en tant que DLL et prend en charge toute une gamme
darchitectures. Toutefois, cette approche mixte implique une conception plus
soigne du systme.
32 CHAP I TRE 1
Pour plus dinformations sur la programmation de lapplication Visio avec VBA,
reportez-vous aux chapitres 14 25 de ce guide. Pour plus dinformations sur
lutilisation de Visual Basic avec lapplication Visio, reportez-vous au chapitre 26,
Programmation de Visio avec Microsoft Visual Basic
Pour plus dinformations sur la programmation de Visio avec C++ et lcriture de
VSL, reportez-vous au chapitre 27, Programmation de Visio avec C++ .
Sommaire
2
Crat ion de f ormes Visio
Les meilleures solutions Microsoft

Visio

commencent souvent sur la page de dessin,


dans laquelle vous concevez des formes. Vous pouvez dfinir en grande partie le
comportement personnalis ncessaire une solution grce la programmation ;
cependant, vous obtenez plus rapidement de meilleurs rsultats si vous utilisez la
fonctionnalit intgre des formes Visio. Si vous concevez des formes intelligentes,
vous pouvez tablir une solution plus souple ncessitant long terme un codage et
une maintenance moins importants.
Considrez les formes commme des composants que lutilisateur peut employer pour
laborer un diagramme sans effort supplmentaire ou presque de sa part. Chacune
des formes doit, si possible, reprsenter un objet du monde rel ; la principale tche
de lutilisateur consiste choisir la forme partir du gabarit et, pour quil puisse
effectuer un choix correct, cette forme doit reprsenter quelque chose de familier.
Prvoyez autant de fonctions que possible pour la forme (dans la mesure du
raisonnable). Une forme qui a plusieurs fonctions peut tre plus trompeuse et plus
difficile utiliser que plusieurs formes ayant chacune une fonction dfinie.
Par ailleurs, les formes simplifies fonctionnent mieux dans le produit Visio.
Ce chapitre prsente les diffrents moyens dacquisition de formes pour vos solutions.
Vous avez la possibilit de les dessiner vous-mme, mais vous pouvez galement
importer des graphiques issus dautres programmes, convertir des mtafichiers en
formes, analyser les images utiliser comme formes et adapter les formes existantes
vos besoins. Les chapitres suivants dcrivent plus en dtail le contrle des formes par
le biais des formules et dautres techniques.
Anatomie des formes Visio ..................................................................................... 34
Conception de formes.............................................................................................. 39
Importation de formes issues dautres programmes............................................ 44
Ajustement de formes Visio existantes.................................................................. 47
34 CHAP I TRE 2
Anat omie des f ormes Visio
Lanatomie des formes dsigne de manire approximative la gomtrie et linterface
utilisateur grce auxquelles une forme apparat et se comporte dune certaine manire
sur une page de dessin. Le terme de forme peut faire rfrence une ligne, un arc ou
une spline, une srie de segments, plusieurs formes regroupes ou un objet issu
dune autre application. Vous devez savoir si la gomtrie de ces formes diffre
lgrement ou de manire importante car ces diffrences peuvent intervenir sur la
faon dont les utilisateurs travaillent sur les formes. Les quatre lments essentiels
connatre sur lanatomie des formes sont les suivants :
Le type de forme (ferme ou ouverte) car il intervient en premier chef sur son
mode de remplissage.
Le nombre de dimensions (1D ou 2D) car cette indication a un impact de
premire importance sur laspect et le comportement de cette forme.
Le type des poignes, qui sont des lments de linterface utilisateur lis la
gomtrie des formes et qui montrent lutilisateur comment agir sur une forme.
La constitution de la forme en tant que groupe car cette information dtermine,
entre autres, la procdure de modification que doivent suivre les utilisateurs du
groupe et des formes quil contient.
Lorsque vous crez des formes pour une solution, vous devez dfinir leur anatomie
pour fournir aux utilisateurs les indications visuelles dont ils ont besoin pour
interagir avec ces formes. Par exemple, vous pouvez verrouiller le redimensionnement
des formes pour les portes, les fentres et les bureaux (tous les lments de taille
standard) afin que les utilisateurs ne les tirent pas malencontreusement lorsquils
travaillent dessus.
Une seule ligne est une forme, tout
comme la forme de base Visio
reprsentant la table et les chaises
qui regroupe plusieurs formes
simples.
Cette section dfinit les lments des formes qui constituent le point de dpart de la
conception de vos propres formes et de la modification des formes existantes.
CRATI ON DE FORMES VI SI O 35
Formes ouvert es et f ermes
Une forme peut tre constitue de plusieurs segments de trait, darc ou de spline
appels chemins, chacun de ces chemins pouvant tre ouvert ou ferm. Seul un
chemin ferm peut tre rempli avec une couleur ou un motif, et seul un chemin
ouvert peut tre format avec des extrmits de trait.
Le rectangle reprsente quatre
segments de trait dans un chemin
ferm contenant un motif. Les traits
reprsentent des chemins ouverts
auxquels ont t appliques des
extrmits de trait.
Les formes peuvent galement avoir plusieurs chemins. En consquence, vous pouvez
concevoir une forme plusieurs chemins, les uns ouverts et les autres ferms, pour
crer un dcoupage de zones. Prenons en guise dexemple un anneau, dont vous ne
pouvez pas remplir lorifice avec une couleur ou un motif. Vous pouvez galement
crer une forme, comme le symbole de recyclage ci-dessous, qui se compose de
plusieurs chemins.
Le symbole de recyclage est
constitu de quatre chemins : A, B,
C et D. Seul le quatrime chemin, D,
est ferm, comme lindique la
manire dont la couleur remplit les
formes. Vous pouvez crer des
formes similaires en combinant la
gomtrie (Forme > Oprations >
Combinaison).
Si vous avez dj essay sans succs dappliquer un motif de remplissage une forme,
vous avez sans doute t confront une autre consquence de la gomtrie des
chemins : le premier et le dernier sommets dun chemin ouvert peuvent tre un mme
point. Si tel est le cas, la forme semble ferme, mais vous ne pouvez pas lui appliquer
un motif de remplissage ou une couleur. Cependant, vous pouvez fermer ce chemin
en insrant le dernier sommet sur le premier laide de loutil Crayon. Pour plus
dinformations, reportez-vous la section Utilisation des outils de dessin lors de la
cration de formes , page 39.
Pour plus dinformations sur la cration de formes plusieurs chemins,
reportez-vous la section Cration et contrle des groupes , page 115.
B
C
A
D
36 CHAP I TRE 2
Formes 1D ou 2D
Une forme peut tre en une dimension (1D) ou en deux dimensions (2D).
Une forme 1D se comporte comme un trait et affiche des points de fin ; pour
redimensionner la forme, slectionnez-la avec loutil Pointeur, puis dplacez ces
points de fin. Vous pouvez coller les points de fin des formes 1D sur les cts des
formes 2D pour crer des traits de connexion qui restent fixes lorsque les formes sont
dplaces.
Une forme 1D comporte deux points
de fin. Certaines formes 1D
comportent galement dautres
poignes, comme la poigne de
contrle de cet arc.
Une forme 2D possde les mmes proprits quun rectangle et affiche des poignes
de slection ; pour redimensionner la forme, slectionnez-la laide de loutil
Pointeur et faites glisser ces poignes.
Une forme 2D comporte plus de
deux poignes et peut tre ferme
(comme lellipse) ou ouverte
(comme le zigzag).
Vous pouvez transformer les formes 1D en formes 2D et vice-versa. Pour plus
dinformations, reportez-vous la section Conversion des formes 1D et 2D ,
page 159. Pour plus dinformations sur les procdures de contrle de la gomtrie des
formes 2D, reportez-vous au chapitre 5, Contrle de la gomtrie des formes laide
de formules .
Poignes des f ormes
Les formes peuvent tre dotes de diffrentes poignes, qui vous permettent de
modifier leur aspect. Une poigne est un contrle qui apparat sur une forme
slectionne. Les poignes diffrent en fonction du type de forme et de loutil utilis
pour la slectionner. Par exemple, si vous slectionnez une forme laide de loutil
Rotation, vous affichez les poignes de rotation et pouvez faire pivoter la forme.
Le tableau suivant illustre les poignes les plus courantes qui vous permettent de
modifier les formes.
CRATI ON DE FORMES VI SI O 37
Poignes des formes - Prsentation
Nom des
poignes Aspect Comportement
Poignes de
slection
Elles apparaissent lorsque vous
slectionnez une forme 2D l aide de
l outil Pointeur ( . Utilisez les poignes
de slection dangle pour redimensionner
proportionnellement les formes. Utilisez
les poignes de slection latrales pour
redimensionner les cts de la forme.
Points de fin I ls apparaissent lorsque vous
slectionnez une forme 1D l aide de
l outil Pointeur ( La direction de la
forme est reprsente, pour des raisons
de routage, par un point de dbut (A) et
un point de fin (B). Certaines formes 1D
comportent galement des poignes de
slection (C). (Pour plus d informations,
reportez-vous la section Prsentation
des formes 1D et 2D , page 158 du
prsent chapitre.)
Poignes de
rotation
Ces poignes d angle arrondies (A)
apparaissent lorsque vous slectionnez
une forme l aide de l outil Rotation ( ).
L axe (B) indique le centre de la rotation.
Pour faire pivoter une forme, utilisez une
poigne d angle. Pour modifier le centre
de rotation, faites glisser l axe de rotation
vers un nouvel emplacement.
Sommets Ces poignes en forme de losange (A)
apparaissent lorsque vous slectionnez
une forme l aide de l outil Crayon ( ),
Trait ( ), Arc ( ) ou Dessin main
leve ( ). Pour modifier la forme, faites
glisser l un de ses sommets l aide de
l outil utilis lors de sa cration. Le
sommet apparat en magenta pour
indiquer qu il est slectionn. Pour
ajouter ou supprimer des segments,
ajoutez ou supprimez des sommets
l aide de l un des outils dcrits ci-dessus.
Points de
contrle
Ces points apparaissent sur les courbes,
les arcs et les traits dessins main leve
que vous slectionnez l aide de l outil
Crayon. Utilisez les points de contrle (A)
pour modifier la courbure ou la symtrie
d un segment.
Poignes
d excentricit
Elles permettent d ajuster l angle et
l ampleur de l excentricit d un arc
d ellipse. Pour afficher les poignes
d excentricit (A), choisissez un arc.
Slectionnez ensuite l outil Crayon et
cliquez sur le point de contrle au centre.
A B
C
A
B
A
A
A
A
38 CHAP I TRE 2
Vous pouvez ajouter certaines poignes aux formes pour fournir des fonctionnalits
supplmentaires et programmer dautres comportements pour certaines poignes,
comme lindique le tableau suivant.
Formes en groupes
Beaucoup de formes de base Visio sont des groupes. A premire vue, un groupe ne
semble pas forcment trs diffrent dune autre forme. Cependant, les groupes ont des
comportements uniques que vous devez connatre pour pouvoir en crer et anticiper
la manire dont les utilisateurs interagissent avec ces groupes. Lun des avantages-cls
du groupement est que vous pouvez considrer un groupe en tant quobjet unique,
tout en formatant sparment les formes qui le composent.
Vous pouvez regrouper toute combinaison de formes. Les groupes peuvent galement
inclure des repres, dautres groupes et des objets issus dautres programmes.
Certaines formes Visio sont des
groupes (cest--dire des
ensembles de formes regroupes
pour constituer des formes
uniques).
Pour dt erminer si un objet est un groupe :
Slectionnez un objet, puis choisissez Format > Spcial. Si lobjet est un groupe, la
bote de dialogue indique Type : Grouper en dessous du nom de la forme
de base.
Pour plus dinformations sur la gestion des groupes Visio existants, reportez-vous la
section Modification des groupes , page 48Pour plus dinformations sur les
formules de groupe, reportez-vous la section Cration et contrle des groupes ,
page 115.
Informations sur... Section consulter
Comportement de connexion et points de
connexion
Prsentation des formes 1D et 2D ,
page 158.
Contrle de la rotation par le biais des
formules
Contrle du retournement et de la rotation
des formes , page 98.
Formules utilises pour programmer les
poignes de contrle
Flexibilit des formes grce aux poignes
de contrle , page 132.
Poignes de verrouillage et mthodes de
protection des formes
Limitation du comportement d une forme
l aide de verrouillages , page 111.
N
CRATI ON DE FORMES VI SI O 39
Concept ion de f ormes
Pour reprsenter des objets personnaliss propres votre activit ou appliquer vos
propres droits dauteur, vous devez laborer des formes de toutes pices. Vous pouvez
bien sr dessiner ces formes trait par trait ; cependant, pour gagner du temps, vous
pouvez utiliser les techniques dveloppes par les concepteurs de formes de Visio.
Lune des mthodes pour crer des formes personnalises consiste utiliser les outils
de dessin Visio. En outre, Visio inclut des commandes et outils exceptionnels qui
simplifient le processus de cration de formes gomtriques plus complexes.
Par exemple, les commandes Union et Combinaison permettent de crer une forme
partir de plusieurs autres formes, et la commande Fragmentation permet de diviser
les formes en plusieurs petites parties que vous pouvez rorganiser, modifier ou
supprimer.
Cette section rpertorie les outils de dessin et les techniques de dveloppement de
formes de base Visio.
Ut ilisat ion des out ils de dessin lors de la crat ion de f ormes
Pour commencer un dessin, utilisez les outils de dessin Visio dans la barre doutils
Standard. Ces outils ressemblent aux autres outils que vous connaissez, mais ils
comportent de nouvelles fonctionnalits. Loutil Crayon est particulirement puissant
car il vous permet de dessiner aussi bien des traits que des arcs. Ds que vous dplacez
la souris, le moteur Visio calcule rapidement le chemin suivi par le pointeur. Si ce
chemin est droit, loutil Crayon dessine un segment de trait droit. Sil est courb,
il dessine un arc. Au fur et mesure de votre dessin, vous pouvez observer la manire
dont le moteur Visio interprte les mouvements de loutil.
Pour dessiner une forme, utilisez un
ou plusieurs des outils de dessin de
la barre doutils Standard.

CONSEIL : que vous utilisiez loutil Crayon, Trait ou Arc pour crer un trait ou un arc,
le rsultat est le mme. Pour modifier des formes dessines laide de lun de ces outils,
slectionnez un point de fin, un point de contrle ou un sommet, puis faites-le glisser.
40 CHAP I TRE 2
Outils de dessin - Prsentation
Forme dessiner Outil Description
L outil Crayon permet de dessiner aussi bien
des traits que des arcs. Si vous dplacez le
crayon en ligne droite, il dessine un trait. Si
vous dcrivez une courbe, il dessine un arc.
Chaque arc est une partie d un cercle ; sa taille
est fonction de la distance sur laquelle vous
dplacez la souris.
L outil Trait est le meilleur outil pour dessiner
des formes qui se composent uniquement de
lignes droites. Pour limiter un trait un angle de
45 degrs, appuyez sur la touche M aj, puis
faites glisser ce trait tout en maintenant cette
touche enfonce.
L outil Arc permet de dessiner des arcs, qui
reprsentent toujours le quart d une ellipse. La
direction dans laquelle vous dplacez la souris
dtermine le sens de la courbure. Pour dessiner
un quart de cercle, appuyez sur la touche M aj,
puis faites glisser l arc tout en maintenant cette
touche enfonce.
L outil Dessin main leve fonctionne comme
un crayon sur du papier. Slectionnez-le et
faites-le glisser pour dessiner des splines et
des courbes main leve. Pour obtenir des
courbes moins marques, dsactivez l option
de magntisme avant de dessiner.
(Slectionnez O utils > M agntisme et collage,
puis dsactivez M agntisme. Pour afficher les
autres options pour les splines, choisissez
O utils > O ptions, puis cliquez sur l onglet
Dessin.)
L outil Rectangle permet de dessiner des
rectangles et des carrs. Pour dessiner un
carr, appuyez sur la touche M aj, puis faites
glisser le pointeur tout en maintenant cette
touche enfonce.
L outil Ellipse permet de dessiner des ellipses
et des cercles. Pour dessiner un cercle,
appuyez sur la touche M aj, puis faites glisser le
pointeur tout en maintenant cette touche
enfonce.
CRATI ON DE FORMES VI SI O 41
Crat ion de f ormes f ermes
Avant dtre remplie avec une couleur ou un motif, une forme doit tre ferme.
Pour f ermer une f orme :
Dplacez le point de fin du dernier segment cr sur le sommet au dbut du
premier segment, puis relchez le bouton de la souris.
Il est sans doute plus simple de relier le sommet de fermeture si loption de
magntisme est active ( Outils > Magntisme et collage, puis activez Magntisme).
Pour plus dnformations sur lutilisation des formules pour la fermeture des formes,
reportez-vous la section Masquage de la gomtrie dune forme , page 129.
Crat ion de f ormes avec des lment s rcurrent s
Si vous avez besoin dune mme srie de traits ou de formes avec un espacement
identique, vous pouvez utiliser la technique suivante.
Pour reproduire rapidement des lment s de f orme :
1 Slectionnez une forme puis, tout en maintenant la touche Ctrl enfonce, faites
glisser le curseur pour crer la premire copie et la placer lemplacement voulu.
2 Appuyez sur la touche F4 pour crer de nouvelles copies de la forme avec la mme
valeur de dcalage.
Cette technique fonctionne galement pour un groupe de formes slectionnes.
Crat ion de groupes
Lorsque vous devez crer des formes possdant une gomtrie complexe ou incluant
plusieurs styles et formats, vous pouvez crer un groupe. Un groupe combine
plusieurs formes ou autres groupes en une nouvelle forme Visio dont les composants
peuvent nanmoins tre modifis et formats sparment. Crez un groupe si vous
souhaitez dplacer et dimensionner simultanment plusieurs formes, tout en
conservant les attributs de formatage de chacune dentre elles.
Pour crer un groupe :
1 Slectionnez les formes regrouper.
2 Choisissez Forme > Groupes > Grouper.
REMARQUE : si vous voulez crer une forme de base constitue de plusieurs formes, il est
recommand de regrouper les formes au pralable. Si vous ne crez pas de groupe, le
moteur Visio regroupe les formes lorsquun utilisateur insre la forme de base dans un
dessin. Cette tape supplmentaire peut augmenter le temps ncessaire la cration dune
occurrence de la forme de base.
Pour plus dinformations sur le comportement des groupes et les formules,
reportez-vous au chapitre 6, Regroupement et fusion de formes .
42 CHAP I TRE 2
Crat ion de f ormes par f usion
Vous pouvez appliquer la technique de cration de formes simples, puis utiliser lune
des commandes dopration sur les formes pour fusionner ces formes en une forme
unique. A laide des commandes Forme > Oprations, vous pouvez crer des formes
comportant un dcoupage de zones ou des rgions que vous pouvez formater et
remplir. En gnral, il est galement beaucoup plus efficace dutiliser des formes
entires comme point de dpart plutt que dessayer desquisser une forme avec
plusieurs traits et arcs.
Le tableau suivant dcrit les commandes dopration sur les formes et donne des
exemples de leurs rsultats. Pour plus dinformations sur ces oprations, et connatre
les diffrences entre la fusion et le regroupement, reportez-vous la section
Diffrences entre formes regroupes et formes fusionnes , page 114.
Utilisation de diffrentes oprations sur les formes - Rsultats
Commande Rsultat Exemple
Fragmentation Permet de diviser une forme en
fragments plus petits, ou de
crer des formes partir des
lignes d intersection ou des
formes 2D superposes.
Combinaison Permet de crer une forme
partir de celles slectionnes. Si
les formes slectionnes sont
superposes, la zone de
superposition est dcoupe
(supprime), ce qui produit un
effet d emporte-pice.
Union Permet de crer une forme
partir du primtre de deux ou
plusieurs formes superposes.
Soustraction Permet de crer une forme en
tant la zone de superposition
des slections de la slection
principale.
CRATI ON DE FORMES VI SI O 43
I ntersection Permet de crer une forme
partir de la zone de superposition
des formes slectionnes, en
liminant les zones de
non-superposition.
Jonction Permet de crer une forme
partir de segments 1D relis
leur extrmit. Cette commande
permet d assembler chacun de
ces segments en un ou plusieurs
chemins continus, le nombre de
chemins dpendant de la
configuration des formes
slectionnes.
Coupure Permet de fractionner les objets
slectionns leur intersection.
Cette commande permet de
crer une forme pour chacune
des pices. Si, lorsque vous les
fractionnez, les formes
deviennent ouvertes, elles
perdent leur remplissage.
Dcaler Permet de crer un ensemble de
lignes parallles ou de courbes
droite et gauche de la forme
d origine.
Utilisation de diffrentes oprations sur les formes - Rsultats (suite)
Commande Rsultat Exemple
44 CHAP I TRE 2
Import at ion de f ormes issues daut res programmes
Si vous souhaitez simplement crer une forme partir des fichiers graphiques, images
clipart ou croquis sur papier existants, collez une image compatible, importez un
fichier, ou analysez une image et importez le fichier analys. Lorsque vous importez
une image, vous crez un objet graphique Visio. Lorsque vous liez ou incorporez une
image, vous crez un objet OLE (Object Linking and Embedding - Liaison et
incorporation dobjets). Sur la page de dessin, les objets graphiques et OLE
fonctionnent dans lensemble de la mme manire que les autres formes Visio, et vous
pouvez les utiliser pour crer des formes de base.
De nombreux fichiers imports dans les dessins Visio en tant quobjets graphiques ou
OLE sont stocks sous la forme de mtafichiers Windows

, qui est le format dchange


utilis pour stocker des graphiques vectoriels. Les graphiques trams issus des fichiers
BMP et DIB sont stocks sous la forme de bitmaps. Vous pouvez modifier les
mtafichiers et les bitmaps sur la page de dessin Visio pratiquement de la mme
manire que les autres formes. Pour ce faire, dplacez, faites pivoter, redimensionnez
ou ajoutez du texte, des formes gomtriques ou des proprits personnalises. En
outre, vous pouvez crer une forme de base partir dun mtafichier ou dun bitmap.
Cependant, seuls les mtafichiers (pas les bitmaps) peuvent tre convertis en formes
Visio, pour fournir des fonctions de modification supplmentaires.
Import at ion dimages graphiques
La mthode la plus simple pour ajouter des images graphiques un dessin Visio est de
les insrer ou de les importer. Cette opration permet dobtenir un objet graphique au
format mtafichier ou bitmap, en fonction du format de limage dorigine.
Pour import er une image graphique :
Slectionnez Insertion > Image.
Limage est importe en tant que nouvel objet graphique au format mtafichier
(si le graphique dorigine tait un graphique vectoriel) ou au format bitmap
(si le graphique dorigine tait stock dans un fichier BMP ou DIB).
Vous pouvez galement ouvrir les fichiers graphiques directement en utilisant la
commande Fichier > Ouvrir et en choisissant le format appropri dans la liste
droulante Type de fichier.
Pour la plupart des fichiers que vous importez, une bote de dialogue de paramtres
dimportation apparat ; vous pouvez y indiquer la manire dont le fichier import
doit apparatre dans un dessin. Par exemple, si vous importez un fichier au format
PCT, vous pouvez prciser si les dgrads et larrire-plan doivent tre conservs, et la
manire dont les couleurs doivent se traduire.
CRATI ON DE FORMES VI SI O 45
Pour dt erminer si un objet graphique import est un mt af ichier ou un
bit map :
Slectionnez lobjet, puis choisissez Format > Spcial. La bote de dialogue indique
Type : Mtafichier ou Type : Bitmap .
REMARQUE : un mtafichier peut tre compos, entre autres ou uniquement, dun
bitmap. Par exemple, si vous importez un fichier au format JPG, GIF ou TIF dans un
dessin Visio, vous crez un mtafichier contenant un bitmap.
Comme les donnes peuvent subir jusqu deux conversions avant dapparatre dans
le dessin Visio (une lorsque vous les exportez du programme dorigine et une autre
lorsque vous les importez dans le dessin Visio), limage peut tre lgrement
diffrente de celle du programme dorigine.
Les traits de certains graphiques vectoriels, tels que ceux inclus dans les fichiers Adobe
Illustrator (.ai), CorelDRAW! (.cdr), Encapsulated PostScript (.eps) et Micrografx
Designer (.drw) peuvent apparatre irrguliers dans le dessin Visio. Vous pouvez
obtenir de meilleurs rsultats avec ces formats de fichier si vous les convertissez en
formes Visio. Pour plus dinformations, reportez-vous la section Conversion de
mtafichiers imports en formes , page 46.
CONSEIL : vous pouvez importer des fichiers dans plus de 20 formats. Pour obtenir la liste
complte des formats, slectionnez Fichier > Ouvrir ou Insertion > Image, puis droulez
la liste Type de fichier.
Modif icat ion de mt af ichiers et de bit maps import s
Vous pouvez travailler avec des mtafichiers et bitmaps imports, ainsi quavec des
objets OLE, pratiquement de la mme manire quavec des formes Visio. Vous
pouvez notamment ajouter du texte en le saisissant, ou utiliser les outils de dessin
pour faire pivoter et redimensionner les objets. Vous pouvez appliquer un style de
trait pour modifier laspect du contour dun objet. Si cet objet contient des espaces
vides, par exemple un arrire-plan, vous pouvez galement leur appliquer un style,
une couleur ou un motif de remplissage.
Vous pouvez dfinir des proprits supplmentaires pour les bitmaps via la fentre
ShapeSheet

pour contrler la luminosit, le contraste et dautres attributs. Pour


accder ces proprits, slectionnez un bitmap import, choisissez Fentre >
Afficher la feuille ShapeSheet, puis recherchez la section Proprits d'image. Pour plus
dinformations sur chacune des cellules, slectionnez une cellule, puis appuyez sur la
touche F1.
46 CHAP I TRE 2
Conversion de mt af ichiers import s en f ormes
Vous pouvez convertir un objet graphique au format mtafichier en une forme ou en
un groupe de formes Visio que vous pouvez formater. Convertissez un mtafichier
lorsque vous voulez modifier les objets qui le composent (des formes par exemple),
appliquer une couleur et des motifs de remplissage, ou crer des dpendances entre
les formes laide de formules. En principe, vous convertissez un mtafichier en
groupe pour pouvoir le dplacer en tant quunit ; cependant, si vous souhaitez
effectuer une autre opration, convertissez-le directement en formes.
REMARQUE : si un mtafichier a pour composant un bitmap, vous ne pouvez pas le
convertir. Les bitmaps ne peuvent pas tre convertis en formes gomtriques Visio car le
moteur Visio ne peut pas diffrencier, dans un bitmap, les traits, le texte et les autres
lments.
Pour convert ir un mt af ichier en groupe Visio :
Slectionnez un mtafichier, puis choisissez Forme > Groupes > Convertir
en groupe.
Pour convert ir un mt af ichier en f ormes Visio :
Slectionnez un mtafichier, puis choisissez Forme > Groupes > Dissocier.
Pour reconvert ir une f orme en mt af ichier :
1 Slectionnez une forme, puis appuyez sur la squence de touches Ctrl+C pour la
copier.
2 Cliquez sur Edition > Collage spcial, puis choisissez Image (Mtafichier
amlior).
Conversion de bibliot hques de symboles CAO en f ormes
Selon le produit Visio dont vous disposez, vous pouvez convertir des bibliothques de
symboles des dessins CAO en formes de base Visio stockes dans un gabarit. Une
bibliothque de symboles est constitue de plusieurs fichiers de symbole (en gnral
des fichiers DWG). Les produits Visio incluant la commande de conversion des
bibliothques CAO peuvent convertir chaque fichier de symbole en une seule forme
de base. Lorsque vous convertissez simultanment plusieurs fichiers de symboles,
toutes les formes de base sont places sur le mme gabarit.
Pour convert ir une bibliot hque de symboles au f ormat Visio :
1 Slectionnez Fichier > Ouvrir, puis choisissez le modle de convertisseur CAO
(_dwgcnvt.vst) dans le dossier Visio\Solutions\Visio Extras.
Ce modle est livr avec Microsoft

Visio

2000, Technical Edition, et Microsoft


Visio

2000, Enterprise Edition.


2 Choisissez Outils > Macros > ThisDocument > Convertir les bibliothques CAO.
CRATI ON DE FORMES VI SI O 47
3 Dans la bote de dialogue de conversion de bibliothque CAO, appuyez sur la
touche Ctrl, puis, tout en la maintenant enfonce, slectionnez les fichiers DWG
convertir.
4 Cliquez sur Ouvrir.
Le bloc dans chacun des fichiers DWG slectionns est converti en une seule forme
de base et plac sur un nouveau gabarit. Chaque forme de base porte le nom du
fichier DWG correspondant.
5 Pour enregistrer le gabarit, cliquez avec le bouton droit sur sa barre de titre, puis
slectionnez Enregistrer sous. Dans la bote de dialogue Enregistrer le fichier sous,
attribuez un nom au fichier du gabarit, puis cliquez sur Enregistrer.
Ajust ement de f ormes Visio exist ant es
Vous navez pas besoin de crer des formes de toutes pices. En ralit, il est souvent
plus simple et plus rapide de rechercher une forme Visio existante qui vous convient,
puis de la modifier.
La modification des formes et groupes existants est tout un art. Cette section vous
donne des conseils sur la modification des objets. Pour plus dinformations sur
lutilisation des outils mentionns, consultez laide en ligne fournie avec Visio. Pour
plus dinformations sur la procdure de comparaison de la reprsentation dune
forme sur une page de dessin avec la reprsentation ShapeSheet

, reportez-vous la
section Examen dune forme dans la fentre ShapeSheet , page 70.
Modif icat ion des f ormes
Pour modifier la structure gomtrique de la plupart des formes, slectionnez-les
laide de loutil Crayon ( ), puis faites glisser le pointeur, ajoutez ou supprimez des
sommets. Pour modifier les courbures, faites glisser un point de contrle ou les
poignes dexcentricit dun point.
Lune des mthodes de
modification dune forme consiste
faire glisser un sommet (A) laide
de loutil Crayon.
Pour ajouter un segment, cliquez
avec loutil Crayon (A) sur lendroit
o vous souhaitez ajouter le
segment, tout en maintenant la
touche Ctrl enfonce. Insrez
ensuite, avec ce mme outil, le
nouveau sommet lemplacement
choisi.
A
A
48 CHAP I TRE 2
Pour quune forme comporte moins de segments, supprimez les segments inutiles.
Pour supprimer un segment,
slectionnez un sommet laide de
loutil Crayon (A), puis appuyez sur
la touche Suppr. Le segment auquel
est associ le sommet est alors
supprim. La forme des autres
segments est modifie en
consquence.
La manire dont le moteur Visio redessine la forme aprs la suppression dun sommet
dpend de la position du sommet (au dbut ou la fin dune forme ouverte), de
lordre de cration des segments et de la nature du segment suivant le sommet
supprimer (trait ou arc). Aprs la suppression de segments, vous devrez peut-tre
ajuster la forme ; pour ce faire, faites glisser les sommets et points de contrle en
fonction des besoins.
Pour modifier la courbure dun arc
ou dune courbe dessine main
leve, faites glisser un point de
contrle (A) jusqu ce que le
segment ait laspect souhait.
Modif icat ion des groupes
Vous pouvez examiner les groupes individuellement pour observer leur
fonctionnement et savoir comment les modifier. Bien quun groupe soit considr
comme une forme, il nest techniquement pas stock de la mme manire que les
autres formes. Un groupe peut inclure des repres et des objets issus dautres
applications, ainsi que des formes.
Un groupe peut contenir du texte et des formes gomtriques, indpendamment des
formes qui le composent. Un ensemble de formules spcifique est appliqu chacun
des objets dun groupe, et au groupe lui-mme ; par consquent, lorsque vous dissociez
des formes, les formules appliques au groupe sont perdues. Cependant, si vous
dissociez un groupe contenant du texte ou des formes gomtriques, le moteur Visio
convertit ce texte ou ces formes en une nouvelle forme.
REMARQUE : si vous convertissez un dessin Visio 2000 contenant des groupes dans un
format dune version Visio prcdente, le texte ou les formes gomtriques associs aux
groupes (et non les formes quils contiennent) sont perdus.
Vous pouvez modifier un groupe et les formes quil contient directement sur la page de
dessin. Cependant, pour viter de modifier un comportement de groupe particulier,
ouvrez le groupe dans la fentre de groupe.
A A
A
CRATI ON DE FORMES VI SI O 49
Pour ouvrir un groupe dans la f ent re de groupe :
Slectionnez un groupe, puis choisissez Edition > Ouvrir Grouper. (Si vous avez
attribu un nom au groupe laide de la commande Format > Spcial, le nom du
groupe suit la commande Ouvrir ; sinon, la commande indique Ouvrir Grouper.)
Vous pouvez modifier un groupe
dans la fentre de groupe pour
pouvoir travailler sur chacune des
formes qui le composent. Les
modifications effectues dans
cette fentre sont
automatiquement rpercutes dans
la fentre de dessin.
A Ouvrez un groupe dans la fentre de groupe pour modifier les formes quil contient tout en
conservant les dpendances de formules entre ces formes.
B Les formes apparaissent dans la fentre de groupe comme si elles taient indpendantes, et non
regroupes.
C Si vous dplacez une forme en dehors de la page dans la fentre de groupe, elle est place en
dehors du rectangle de slection du groupe.
CONSEIL : une fois les modifications effectues dans la fentre de groupe, vous devrez
peut-tre rajuster la largeur et la hauteur du groupe de telle sorte que son rectangle de
slection englobe prcisment toutes les formes du groupe. Pour ce faire, slectionnez un
groupe, puis choisissez Forme > Oprations > M. jour rect. slection. Pour plus
dinformations, reportez-vous la section Accrochage de formes une grille laide des
rectangles de slection , page 240.
Pour plus dinformations sur les options de comportement des groupes, notamment
sur la possibilit de placer des formes sur un groupe pour les y ajouter (le
transformant ainsi en cible de dplacement ), reportez-vous la section
Modification dun groupe , page 116.
A
B
C
50 CHAP I TRE 2
Dissociation des groupes
Dissociez un groupe pour annuler lassociation entre les formes quil contient et
travailler sur chacune de ces formes. Le processus de dissociation supprime la feuille
de calcul ShapeSheet du groupe. Si vous dissociez une occurrence dune forme de
base, la forme nhrite pas des caractristiques de la forme de base stockes dans le
gabarit du fichier de dessin.
Pour dissocier les f ormes :
1 Choisissez un groupe.
2 Slectionnez Forme > Groupes > Dissocier.
Droits dauteur sur les formes
Toute forme cre la suite dune modification dune forme Visio conserve le
copyright Visio. Si vous diffusez une forme de base protge par ce copyright, les
destinataires doivent disposer dune licence pour pouvoir utiliser un gabarit
contenant la forme de base dorigine.
Si vous souhaitez diffuser une forme sans restriction de copyright, vous devez crer
intgralement la forme. Lorsque vous crez des formes de cette manire, vous pouvez
leur appliquer votre propre copyright, avant ou aprs avoir cr une forme de base
partir de la forme.
Pour ajout er des droit s daut eur une f orme (ou dt erminer si une f orme
exist ant e est prot ge par un copyright ) :
Slectionnez une forme, puis choisissez Format > Spcial.
IMPORTANT : le champ relatif au copyright ne peut tre complt quune seule fois. Avant
dajouter un copyright, effectuez une copie de sauvegarde de la forme en cas dventuelles
erreurs de frappe.
Sommaire
3
Formes de base, gabarit s, modles
et document s Visio
Si vous envisagez dlaborer une solution de dessin normalis comportant des formes
que vous avez vous-mme cres ou une application personnalise intgrant la
fonction Microsoft

Visio

dans un systme plus vaste, vous constaterez que les


formes de base, les gabarits, les modles et les documents sont les composants
essentiels de la plupart des solutions Visio. Lorsque vous crez une solution, vous
devez savoir comment utiliser au mieux ces composants en fonction de vos besoins.
Vous pouvez diffuser les formes que vous dveloppez en tant que formes de base
rutilisables dans un gabarit. Un gabarit fonctionne comme une bibliothque
logicielle dans laquelle vous regroupez les formes que vous souhaitez rutiliser
ultrieurement. Vous pouvez galement crer un modle qui ouvre certains gabarits et
dtermine les paramtres de page, les informations de calque, les styles, les formes, les
lments prdfinis, tels que les blocs de titre, et les macros. Grce aux modles, il est
plus facile de transmettre des solutions personnalises aux utilisateurs. Les documents
Visio que vous crez contiennent tous les mmes informations. Leur affichage dpend
de lextension que vous utilisez.
Ce chapitre prsente ces lments et donne des conseils qui vous permettront de
rendre vos solutions aussi efficaces que possible.
Cration de formes de base et de gabarits ............................................................ 52
Cration de modles................................................................................................ 56
Ouverture et enregistrement de documents Visio ................................................ 60
52 CHAP I TRE 3
Crat ion de f ormes de base et de gabarit s
Une forme de base est une forme, un groupe ou un objet dune autre application,
enregistr dans un gabarit pouvant tre ouvert dans dautres dessins. Crez une forme
sur la page de dessin, puis faites-la glisser dans un gabarit pour crer une forme de
base, ou utilisez les commandes de la fentre de gabarit. Les formes de base sont cres
afin de permettre lutilisateur de crer des dessins sans le moindre trac manuel.
Pour rutiliser ces formes de base, enregistrez-les dans un gabarit autonome sous la
forme dun fichier .vss. Tout fichier Visio peut tre enregistr sous ce format.
Par dfaut, un gabarit autonome est ouvert en lecture seule dans lapplication Visio.
Pour que le gabarit ou ses formes de base puissent tre utiliss, le gabarit doit tre
modifiable. Sauf indication contraire, le terme gabarit dans ce guide dsigne un
gabarit autonome. Le gabarit contient les formes ncessaires la cration dun dessin :
il constitue lun des lments principaux de linterface utilisateur. Son efficacit
dpend de lorganisation, du comportement et des performances des formes.
Lorsquun utilisateur insre dans la page de dessin une forme de base dun gabarit, le
moteur Visio cre une copie de cette forme dans le gabarit de document du dessin et
cre une occurrence de la forme sur la page de dessin. Un fichier de dessin comporte
toujours un gabarit de document contenant des copies des formes de base utilises
dans le dessin, mme si les formes correspondantes sont ensuite supprimes de la
page de dessin. Une occurrence est lie la copie de la forme de base dans le gabarit
du document et hrite du comportement et de lapparence de la forme de base.
Gabarits dun fichier de dessin Visio
A Lorsque vous ouvrez un modle, le fichier du gabarit autonome est gnralement ouvert en
lecture seule dans une fentre ancre.
B Pour afficher le gabarit de document dune page de dessin, slectionnez Fentre > Afficher le
gabarit de document.
A
B
FORMES DE BASE, GABARI TS, MODL ES ET DOCUMENTS VI SI O 53
Crat ion dun gabarit
Pour crer un gabarit, vous pouvez ouvrir un nouveau fichier vide en tant que gabarit.
Comme la page de dessin du nouveau fichier est vide, sa taille reste peu importante.
Tant que vous navez pas ajout de formes de base au gabarit, le fichier contient
uniquement les styles par dfaut.
Pour crer un f ichier de gabarit vide avec accs en crit ure :
Slectionnez Fichier > Ouvrir un gabarit > Nouveau gabarit.
Pour crer un gabarit partir dun gabarit existant, vous pouvez ajouter de nouvelles
formes de base un gabarit existant ou modifier celles qui sy trouvent, puis
enregistrer dans un nouveau fichier le gabarit ainsi corrig.
Pour ouvrir un gabarit avec accs en crit ure :
1 Slectionnez Fichier > Ouvrir un gabarit > Ouvrir un gabarit.
2 Slectionnez le fichier de gabarit modifier.
3 Dans la bote de dialogue Ouvrir un gabarit, slectionnez Original dans la zone
Ouvrir, puis cliquez sur Ouvrir. Vous pouvez galement cliquer avec le bouton
droit sur la barre de titre dun gabarit ouvert, puis choisir Modifier dans le menu
contextuel.
Lorsquun gabarit est modifiable, un astrisque rouge apparat dans le coin
suprieur gauche de licne dans la barre de titre.
REMARQUE : les gabarits, les formes de base, les modles et le code source fournis avec
Visio sont protgs par un copyright dtenu par Visio Corporation. Ils sont protgs par la
loi sur les copyrights des Etats-Unis, ainsi que par diverses lgislations internationales.
Toute diffusion dune forme de base faisant lobjet dun copyright et fournie avec Visio est
interdite, sauf si le destinataire dtient dj une copie avec licence dun produit Visio
comportant cette forme de base. Cette interdiction sapplique aux formes que vous crez
partir de formes de base faisant lobjet dun copyright.
Pour protger par un copyright vos propres formes, choisissez Format > Spcial, puis
saisissez les informations de copyright dans le champ Copyright.
Vous pouvez crer rapidement un gabarit avec des formes de base en enregistrant le
gabarit de document dun fichier de dessin en tant que fichier de gabarit avec
lextension .vss. Le gabarit ainsi obtenu contient toutes les formes de base utilises lors
de la session de dessin, y compris celles dont les occurrences ont depuis t
supprimes de la page de dessin. Vous pouvez tre amen modifier le gabarit de
document et supprimer le contenu de la page de dessin avant de lenregistrer en tant
que nouveau fichier de gabarit.
54 CHAP I TRE 3
Pour crer un gabarit part ir du gabarit de document dun dessin :
1 Choisissez Fentre > Afficher le gabarit de document pour afficher ou modifier les
formes de base avant de les enregistrer.
2 Choisissez Fichier > Enregistrer sous.
3 Dans la zone Type de, choisissez Gabarit (*.vss). Entrez le nom et lemplacement
du fichier, puis cliquez sur Enregistrer.
Crat ion de f ormes de base dans des gabarit s
Tout comme vous crez une forme en insrant une forme de base dans un dessin,
vous pouvez crer une forme de base en insrant une forme ou un groupe dans un
gabarit. Avant tout, le gabarit doit tre modifiable (un astrisque rouge doit
apparatre sur licne dans sa barre de titre). Pour quun gabarit soit modifiable,
ouvrez-le en tant quoriginal ou cliquez avec le bouton droit sur la barre de titre du
gabarit, puis choisissez Modifier.
Vous pouvez crer une forme de base partir dun objet coll ou import depuis un
autre programme vers lapplication Visio. Vous pouvez galement crer des formes de
base en ajoutant un gabarit des formes de base vierges.
Pour crer une f orme de base part ir dune f orme dun dessin :
1 Dans la fentre de dessin, affichez la page contenant la forme utiliser en tant que
forme de base.
2 Vrifiez que la fentre de dessin est active, puis faites glisser la forme de cette
fentre vers la fentre de gabarit. Vous pouvez galement maintenir la touche Ctrl
enfonce et faire glisser une copie de la forme. Si le gabarit est ouvert en lecture
seule, un message apparat : vous pouvez paramtrer dynamiquement le gabarit
sur ltat Lire/Ecrire.
Dans la fentre de gabarit apparaissent le nom et licne par dfaut de la forme
de base.
3 Pour enregistrer les modifications apportes au fichier de gabarit, cliquez avec le
bouton droit sur la barre de titre du gabarit et choisissez Enregistrer.
Si vous crez un gabarit, entrez son nom. Dans la zone Type de fichier,
slectionnez Gabarit. Pour empcher toute modification fortuite du gabarit lors de
sa prochaine ouverture, slectionnez Lecture seule dans la zone Enregistrer.
Cliquez sur OK.
Pour crer une f orme de base vierge :
1 Si le gabarit auquel vous souhaitez ajouter la forme de base nest pas modifiable,
cliquez avec le bouton droit sur la barre de titre du gabarit, puis choisissez
Modifier.
2 Cliquez avec le bouton droit dans la fentre de gabarit, puis choisissez Nouvelle
forme de base.
FORMES DE BASE, GABARI TS, MODL ES ET DOCUMENTS VI SI O 55
3 Dans la bote de dialogue Nouvelle forme de base, compltez le champ Nom en
saisissant le nom de la forme de base, puis en cliquant sur OK.
Une forme de base vierge est cre au bas du gabarit et indique par une icne
barre. Modifiez la forme de base et son icne laide des commandes du menu
Forme de base ou du menu contextuel de cette forme.
Pour plus dinformations sur les autres options de la bote de dialogue Nouvelle
forme de base, cliquez sur le bouton ? dans la bote de dialogue.
Modif icat ion des f ormes de base dans les gabarit s
Lorsque vous ouvrez un gabarit avec accs en criture, vous pouvez modifier les
formes de base en ouvrant la fentre de dessin de la forme comme lindique la figure
suivante. Pour quun gabarit soit modifiable, vous pouvez galement cliquer avec le
bouton droit sur la barre de titre du gabarit et choisir Modifier. Pour dfinir les
attributs des formes de base et des icnes, cliquez sur la forme avec le bouton droit et
choisissez une commande dans le menu contextuel.
La fentre de dessin de la forme de
base affiche la page de dessin
dune forme de base.
A Lastrisque rouge de licne dans la barre de titre du gabarit indique que le gabarit est
modifiable.
B Vous pouvez ajouter un gabarit une forme de base vierge, puis modifier cette dernire et son
icne.
C Vous pouvez faire un dessin sur la page de dessin dune forme de base et la modifier comme sil
sagissait de la page de dessin dun document.
D Vous pouvez renommer rapidement une forme de base en cliquant deux fois sur son texte.
B
C
A
D
56 CHAP I TRE 3
Pour modif ier une f orme de base :
1 Dans la fentre de gabarit, cliquez avec le bouton droit sur la forme de base
modifier, puis choisissez Modifier la forme de base dans le menu contextuel.
La fentre de dessin de la forme de base qui apparat contient la page de dessin
associe la forme de base.
2 Lorsque vous avez fini de modifier la forme de base, fermez sa fentre de dessin.
Un message apparat et vous invite mettre jour la forme de base. Cliquez sur
Oui. Les modifications que vous avez apportes sont galement rpercutes sur
licne de la forme de base, moins que loption de mise jour manuelle ne soit
coche dans la bote de dialogue Proprits de la forme de base de la forme de base.
Crat ion de modles
En rgle gnrale, pour crer un modle, vous ouvrez un nouveau fichier de dessin ou
un fichier existant, vous dfinissez les options souhaites, vous ouvrez les gabarits
ncessaires, puis vous enregistrez le fichier en tant que modle. La page de dessin dun
fichier de modle Visio est gnralement vierge, mais vous pouvez choisir dinsrer
des formes dans la page de dessin, telles quun bloc de titre ou le logo dune socit.
Le modle peut galement comporter plusieurs pages de dessin.
Crat ion dun modle
Vous pouvez enregistrer un fichier Visio en tant que modle. Les modles peuvent
comporter les lments suivants :
La liste despaces de travail identifiant un ou plusieurs gabarits, ouverte lorsque
vous ouvrez un nouveau fichier de dessin avec le modle.
Une ou plusieurs pages de dessin avec des arrire-plans. Chaque page contient un
dessin que vous pouvez redimensionner.
Des macros Microsoft

Visual Basic

pour Applications (VBA).


Des paramtres dimpression.
Des styles de ligne, de texte et de remplissage.
Des options de magntisme, de collage et de calque.
Une palette de couleurs.
La taille et la position des fentres.
FORMES DE BASE, GABARI TS, MODL ES ET DOCUMENTS VI SI O 57
Pour crer un modle :
1 Ouvrez le fichier de dessin qui doit servir de rfrence au modle. Vous pouvez
galement ouvrir un nouveau fichier de dessin.
2 Ouvrez le ou les fichiers de gabarit ouvrir avec le modle.
Ouvrez chaque fichier de gabarit en lecture seule. Si vous ouvrez le fichier de
gabarit en tant quoriginal, il est enregistr sous cette forme dans la liste des
espaces de travail du modle.
3 Activez la fentre de dessin, puis modifiez ou dfinissez les options et les
paramtres inclure dans le modle.
Par exemple, vous pouvez dfinir les styles inclure, indiquer les options
daffichage de page et slectionner une chelle de dessin.
4 Si une page de dessin doit contenir des lments standard, choisissez son
apparence. Vous pouvez insrer dautres pages en tant que pages de premier plan
ou darrire-plan.
5 Choisissez Fichier > Proprits. Dans la bote de dialogue Proprits, saisissez des
informations sur le modle et cliquez sur OK.
Le texte saisi dans la zone Description apparat lorsque vous slectionnez le modle
dans la bote de dialogue Ouvrir ou Parcourir les modles (choisissez Fichier >
Nouveau > Choisir le type de dessin, puis cliquez sur le bouton Parcourir les
modles).
6 Choisissez Fichier > Enregistrer sous.
Dans la zone Enregistrer, cochez la case Espace de travail. Dans la liste Type de
fichier, slectionnez Modle (*.vst). Dans la zone Nom du fichier, saisissez le nom
du modle, puis cliquez sur OK.
En rgle gnrale, le moteur Visio ouvre les gabarits dun modle dans des fentres
ancres en lecture seule. Toutefois, un modle peut ouvrir certains fichiers de gabarit
ancrs et dautres flottants, certains en lecture seule et dautres en tant quoriginal.
La liste des espaces de travail dun modle stocke le nom des fichiers de gabarit
ouvrir, ainsi que le type, la taille et la position de la fentre dans laquelle ils doivent
apparatre. Ces paramtres daffichage correspondent leur apparence au moment de
lenregistrement du modle.
REMARQUE : si vous crez un modle pour des dessins mis lchelle, lchelle de la page
est dfinie par la page de dessin du modle. Lchelle de la forme de base est dtermine
par celle de la forme. Pour viter tout comportement inattendu, il est prfrable dutiliser
une mme chelle ou une chelle proche pour les formes de base et les pages de dessin.
Pour plus dinformations, reportez-vous au chapitre 12, Formes mises lchelle et
dessins cots .
58 CHAP I TRE 3
En rgle gnrale, lorsque vous
ouvrez un fichier en tant que
modle (.vst), vous ouvrez au moins
deux documents, un fichier de
gabarit et un fichier de dessin
contenant les lments indiqus.
A Un ou plusieurs gabarits autonomes selon les indications de la liste despaces de travail
du modle
B Les dfinitions de style et les couleurs utilises dans le fichier de gabarit qui doivent
correspondre celles du dessin
C La liste des espaces de travail du modle qui rpertorie tous les fichiers et toutes les fentres
ouvrir
D Le dessin dune ou de plusieurs pages, contenant les dfinitions de style, la palette de couleurs
et le gabarit de document
A propos des pages, des arrire-plans et des calques
Lorsque vous crez un modle Visio, vous devez dcider de la manire dont les
informations que vous allez fournir vont tre organises. Lapplication Visio fournit
des outils daffichage et dorganisation, tels que des pages, des arrire-plans et des
calques pour organiser laffichage des lments ; vous pouvez utiliser ces outils afin
que vos solutions soient plus efficaces.
FORMES DE BASE, GABARI TS, MODL ES ET DOCUMENTS VI SI O 59
A propos des pages et des arrire-plans
Les modles et les documents peuvent contenir plusieurs pages de dessin.
Chaque page peut tre associe une ou plusieurs pages darrire-plan. Les pages
darrire-plan se trouvent larrire des pages de dessin. Elles contiennent
gnralement les formes devant apparatre sur plusieurs pages de dessin. Vous pouvez
utiliser les arrire-plans pour crer des calques dinformations visuels. Lorsque vous
associez un arrire-plan un autre arrire-plan, il figure derrire larrire-plan
dorigine et derrire la page de dessin.
Les formes figurant sur les pages darrire-plan ne peuvent pas tre modifies partir
de la page de premier plan. Pour modifier les lments de la page darrire-plan, vous
devez dabord atteindre cette dernire. Lorsque vous dveloppez une solution, vous
devez slectionner les formes placer la fois sur les pages de premier plan et
darrire-plan, et choisir si vos modles de document doivent contenir des
arrire-plans.
Les arrire-plans et les pages
fonctionnent la manire de
feuilles de papier transparent
empiles les unes sur les autres.
Lorsque vous associez un
arrire-plan (C) un autre
arrire-plan (B), il apparat derrire
larrire-plan dorigine et derrire la
page de dessin (A) ; la page de
dessin apparat toujours sur le
dessus.
A propos des calques
Vous pouvez utiliser des calques pour organiser les formes de base et les formes en
catgories nommes dans les modles et les dessins.
Dans dautres programmes graphiques, le terme calques dsigne souvent lordre
dempilement (du premier plan larrire-plan) des objets sur la page. Dans Visio,
les calques organisent les formes apparentes en catgories nommes. Lappartenance
dune forme un calque na aucune incidence sur sa position dans lordre
dempilement.
Vous pouvez masquer ou afficher les calques, les imprimer ou non, ou protger les
calques contre toute modification. Les formes peuvent tre associes plusieurs
calques. Les informations de calque dune forme sont indpendantes de lordre
dempilement et mme de son appartenance au groupe. En outre, chaque page dun
document peut possder son propre ensemble de calques. Lorsque vous crez des
formes de base, vous pouvez les associer des calques. Lorsque les utilisateurs crent
des occurrences de ces formes, elles sont automatiquement associes ces calques.
Texas
B
C
A
60 CHAP I TRE 3
Les formes peuvent appartenir
plusieurs calques. Dans cet
exemple, les formes lac et boussole
appartiennent aux calques de rues
(A), dlments gographiques (B)
et de routes (C).
Ouvert ure et enregist rement de document s Visio
Tous les fichiers Visio prsentent le mme format. Toutefois, lextension de fichier
du document Visio dtermine le mode douverture et denregistrement des
modifications. Un document Visio peut tre un dessin (.vsd), un gabarit (.vss), un
modle (.vst) ou un espace de travail (.vsw). Le moteur Visio utilise lextension du
nom de fichier afin de dterminer les lments afficher lors de louverture du
document. Par exemple, vous pouvez enregistrer un fichier de dessin (.vsd) en tant
que modle (.vst) que vous pourrez ensuite ouvrir et utiliser en tant que modle.
Composant s dun document Visio
Chaque document Visio contient les lments suivants :
Au moins une page de dessin.
Un gabarit de document contenant des copies des formes de base utilises sur la
page de dessin (ou dans le cas dun fichier .vss, un gabarit nomm affichant la
forme de base).
La liste des espaces de travail qui identifie toutes les fentres et tous les fichiers
ouvrir avec le fichier en cours.
La liste des styles dfinis dans le document, comprenant au moins les quatre styles
Visio par dfaut (Sans style, Aucun, Normal et Txt. seulmt).
Une palette de couleurs comportant 24 pastilles de couleur modifiables par
lutilisateur et jusqu 232 couleurs supplmentaires dfinies par les formules RVB
(rouge, vert, bleu) ou TSL (teinte, saturation, luminosit) dans le document.
Un projet VBA (Microsoft Visual Basic pour Applications) muni du module de
classe par dfaut (vide) appel ThisDocument.
Une feuille de document pouvant stocker les donnes personnalises.
FORMES DE BASE, GABARI TS, MODL ES ET DOCUMENTS VI SI O 61
La page de dessin dun document peut galement contenir des formes, dont les styles
et les couleurs dpendent des lments stocks dans le document, ainsi que dautres
projets VBA comprenant des modules, des modules de classe et des formes utilisateur.
Pour plus dinformations sur lutilisation de VBA dans lapplication Visio,
reportez-vous au chapitre 15, Programmation dans Visio avec Microsoft VBA .
Ouvert ure dun f ichier Visio
Vous pouvez ouvrir un fichier Visio en tant que document original avec accs en
lecture/criture, en tant que document original avec accs en lecture seule ou en tant
que copie du document original. Lorsque vous choisissez Fichier > Ouvrir, ces
options apparaissent dans la bote de dialogue douverture.
Le moteur Visio utilise lextension du nom de fichier du document pour dterminer
les fentres activer. Par exemple, lorsque vous ouvrez un fichier de gabarit, sa fentre
de dessin est ferme : seul son gabarit de document apparat. Lorsque vous ouvrez un
fichier de dessin, la fentre du gabarit de document est ferme : seule la page de dessin
apparat. Vous pouvez afficher les fentres fermes par dfaut pour un fichier Visio
donn :
Pour afficher la fentre de dessin dun fichier de gabarit (.vss), choisissez Fentre >
Afficher la page de dessin.
Pour afficher le gabarit de document dun fichier, choisissez Fentre > Afficher le
gabarit de document.
Le tableau suivant indique le mode daffichage par dfaut des diffrents types de
fichier en fonction de lextension.
Ouverture des diffrents types de fichier
Fichier Type de document Elments affichs par dfaut
.vsd Dessin O uvre toutes les fentres et tous les fichiers rpertoris
dans l espace de travail si celui-ci a t enregistr avec le
fichier. Dans le cas contraire, le moteur Visio cre une
fentre de dessin et affiche la page qui tait ouverte lors
du dernier enregistrement du fichier.
.vss Gabarit O uvre le gabarit en lecture seule (dans une fentre ancre
si la fentre de dessin est active). Si aucune fentre de
dessin n est active, le moteur Visio cre une fentre de
gabarit et affiche le gabarit du fichier.
.vst M odle O uvre une copie sans titre du dessin dans une fentre de
dessin, et ouvre toutes les fentres et tous les fichiers
rpertoris dans l espace de travail.
.vsw Espace de travail O uvre dans les fentres appropries tous les fichiers
rpertoris dans l espace de travail.
62 CHAP I TRE 3
Choix du t ype de f ichier adapt vot re solut ion
Vous pouvez slectionner le type de fichier Visio qui vous permettra de travailler plus
efficacement. Voici quelques conseils concernant lenregistrement de votre travail :
Enregistrez le gabarit de document dun fichier en tant que fichier de gabarit (.vss)
afin de crer un gabarit autonome regroupant les formes que vous utilisez
frquemment.
Si vous ouvrez plusieurs fichiers de dessin (.vsd) simultanment, vous pouvez
enregistrer lagencement de toutes les fentres ouvertes dans un fichier despace de
travail (.vsw). Vous pouvez ensuite ouvrir le fichier despace de travail afin
douvrir toutes les fentres de dessin dans le mme ordre. (Lorsque vous cochez la
case Espace de travail dans la bote de dialogue Enregistrer le fichier sous, vous
enregistrez uniquement les descriptions des fentres ouvertes dans la liste des
espaces de travail du fichier en cours denregistrement.)
Pour enregistrer votre fichier en tant quespace de travail, appuyez sur Alt+F12,
entrez le nom du fichier despace de travail, choisissez le dossier dans lequel vous
souhaitez lenregistrer, puis cliquez sur Enregistrer.
REMARQUE : avant denregistrer vos fichiers dans un espace de travail, enregistrez vos
dessins en tant que fichiers de dessin (.vsd).
Si vous enregistrez des fichiers de gabarit et de modle qui doivent tre utiliss
conjointement, vrifiez que les paramtres de page, les styles et les couleurs de
leurs pages de dessin sont compatibles. Pour plus dinformations, reportez-vous
au chapitre 10, Gestion des styles, des formats et des couleurs .
Pour que le document que vous crez puisse tre consult mais pas modifi par les
autres utilisateurs, enregistrez le fichier en lecture seule. Pour ce faire, cochez la
case Lecture seule dans la bote de dialogue Enregistrer le fichier sous.
Les utilisateurs peuvent ouvrir et modifier une copie dun fichier en lecture seule,
mais ils ne peuvent apporter aucune modification loriginal. Une fois que vous
avez enregistr un fichier en lecture seule, vous devez lenregistrer sous un autre
nom via la commande Enregistrer sous pour quil puisse nouveau tre modifi.
Laide en ligne de Visio contient des procdures permettant denregistrer diffrents
types de fichier et despace de travail. Pour plus dinformations, recherchez le terme
enregistrement dans laide en ligne.
Sommaire
4
Formules Visio
En tant que dveloppeur de formes, vous avez besoin dun moyen de contrle trs
prcis pour lapparence et le fonctionnement des formes cres. Vous pouvez
modifier le fonctionnement par dfaut dune forme et amliorer ses possibilits en
modifiant ses formules. De nombreux autres objets Microsoft

Visio

(par exemple,
les pages, les documents, les formes de base, les repres et les styles) sont galement
dots de formules modifiables.
Ce chapitre prsente les termes et les concepts concernant les formules Visio. Tout
dabord, il dcrit le mode daffichage des formes et des autres objets Visio dans la
fentre ShapeSheet

, ainsi que les diverses sections de cette fentre et les lments sur
lesquels porte leur contrle. Il prsente ensuite les composants dune formule Visio
(fonctions, oprateurs, rfrences de cellule et units de mesure) et indique comment
modifier les formules dans la fentre ShapeSheet. Il fournit galement des
informations gnrales concernant la conception des formules : comment les formes
hritent des formules, quand ajouter des cellules dfinies par lutilisateur, comment
paramtrer les formules pour empcher les utilisateurs de les modifier dans une
fentre de dessin et comment contrler les calculs. Enfin, il offre des indications qui
permettent de dcider quand utiliser Automation pour ajouter des formules
une solution.
Fentre ShapeSheet................................................................................................. 64
Elments des formules Visio................................................................................... 72
Conception de formules Visio................................................................................. 80
Ajout de fonctionnalits aux formules Visio laide dAutomation..................... 86
64 CHAP I TRE 4
Fent re ShapeSheet
Un objet Visio est stock en interne en tant quensemble de formules. Par exemple,
lorsque vous affichez une forme dans une fentre de dessin, vous en voyez le rendu
graphique et son fonctionnement en fonction de ses formules. Lorsque vous affichez
cette mme forme dans la fentre ShapeSheet

, vous visualisez les formules


sous-jacentes qui dterminent lapparence et le fonctionnement de la forme sur la
page de dessin. Ces deux fentres affichent chacune la mme forme, mais sous un
angle diffrent.
Dans une fentre de dessin, certaines des modifications effectues sur un objet ont
une incidence sur ses formules. Par exemple, lorsque vous faites glisser une forme
laide de loutil Pointeur, Visio rvalue les formules qui dfinissent le centre de
rotation, ou axe, de la forme sur la page de dessin car ces formules dterminent
lemplacement de la forme sur la page. Une fentre ShapeSheet permet nanmoins de
contrler avec une grande prcision lapparence et le fonctionnement de lobjet en en
modifiant les formules. Que vous modifiiez un objet dans la fentre de dessin ou dans
la fentre ShapeSheet, ces changements sont automatiquement sauvegards lors de
lenregistrement du document Visio contenant lobjet.
Af f ichage de la f ent re ShapeSheet
La plupart des objets Visio (formes, groupes, repres, points de repre, pages,
documents, styles, objets lis ou incorpors provenant dautres applications) sont
dots de formules sous-jacentes que vous pouvez modifier pour changer le
fonctionnement de lobjet. Pour changer les formules dun objet, vous devez
commencer par afficher la fentre ShapeSheet associe lobjet.
Parties dune forme dans une
fentre ShapeSheet
A Dans la fentre ShapeSheet, la barre de menus comporte les commandes permettant de
travailler sur les formules de lobjet.
B Vous pouvez modifier la formule dans la cellule slectionne ou dans la barre de formule.
C Chaque section ShapeSheet reprsente un ensemble de formules associes.
A
B
C
FORMUL ES VI SI O 65
Pour af f icher la f ent re ShapeSheet associe un objet de la page de
dessin :
1 Slectionnez un objet dans la fentre de dessin.
Pour slectionner une forme dans un groupe ( condition que ses paramtres de
fonctionnement le permettent), slectionnez le groupe, puis la forme. Pour plus
dinformations sur les groupes, reportez-vous au chapitre 6, Regroupement et
fusion de formes .
2 Choisissez Fentre > Afficher la feuille ShapeSheet ou cliquez sur le bouton
Afficher la feuille ShapeSheet ( ) de la barre doutils Dveloppeur.
Pour afficher la barre doutils Dveloppeur, choisissez Affichage > Barres d'outils,
puis cochez loption Dveloppeur.
CONSEIL : pour ajouter la commande Afficher la feuille ShapeSheet aux menus
contextuels des formes (ces menus apparaissent lorsque vous cliquez avec le bouton droit
sur une forme), choisissez Outils > Options, cliquez sur longlet Options avances, puis
cochez loption Excuter sous le mode dveloppeur. Cette option ajoute galement le
sous-menu Programmes complmentaires au menu Outils.
Les formules des pages de dessin, des styles, des documents Visio et des formes de base
des gabarits sont galement modifiables.
Pour af f icher la f ent re ShapeSheet associe une page, un st yle ou
document :
1 Choisissez Affichage > Fentres > Drawing Explorer.
Fentre Drawing Explorer
2 Cliquez sur un dossier pour louvrir ou le fermer.
3 Dans la fentre Drawing Explorer

, cliquez avec le bouton droit sur un document,


une page ou un style, puis choisissez Afficher la feuille ShapeSheet dans le menu
contextuel.
66 CHAP I TRE 4
CONSEIL : vous pouvez galement afficher la fentre ShapeSheet associe une page soit
en choisissant Fentre > Afficher la feuille ShapeSheet lorsquaucun lment de cette page
nest slectionn, soit en cliquant sur le bouton Afficher la feuille ShapeSheet ( ) de la
barre doutils Dveloppeur.
Pour af f icher la f ent re ShapeSheet associe une f orme de base dun
gabarit :
1 Si la forme de base est dans un gabarit autonome, choisissez Fichier > Ouvrir un
Gabarit > Ouvrir un gabarit et slectionnez le fichier de gabarit contenant cette
forme de base. Vrifiez que loption Original ou Copie est slectionne dans la
bote de dialogue Ouvrir un gabarit.
Si la forme de base est dans le gabarit dun document Visio ouvert, choisissez
Fentre > Afficher le gabarit de document.
2 Dans la fentre des gabarits de Visio, cliquez avec le bouton droit sur la forme de
base et choisissez Modifier la forme de base dans le menu contextuel.
Vous pouvez galement afficher une fentre de dessin des formes de base en
cliquant avec le bouton droit sur une forme de base dans la fentre Drawing
Explorer et en choisissant Modifier la forme de base dans le menu contextuel.
3 Dans la fentre de dessin des formes de base, alors quaucun lment nest
slectionn, choisissez Fentre > Afficher la feuille ShapeSheet.
Dans longlet Options avances de la bote de dialogue accessible via Outils >
Options, si loption mode Excuter sous le mode dveloppeur est coche, vous
pouvez galement effectuer les oprations suivantes :
Cliquez avec le bouton droit dans la fentre de dessin des formes de base et
choisissez Afficher la feuille ShapeSheet dans le menu contextuel.
Cliquez sur le bouton Afficher la feuille ShapeSheet ( ) de la barre doutils
Dveloppeur.
Af f ichage des sect ions de la f ent re ShapeSheet
La fentre ShapeSheet est compose de sections avec des cellules libelles contenant
les formules qui dfinissent les lments associs lapparence et au fonctionnement
de lobjet. Visio naffiche pas automatiquement toutes les sections possibles dune
fentre ShapeSheet. Certaines sont masques pour conomiser lespace daffichage ;
dautres sont prsentes uniquement si elles sont ncessaires pour lobjet. Par exemple,
pour crer une commande et lajouter au menu contextuel dune forme, vous devez
ajouter une section Actions la forme laide de la commande Insertion > Section de
la fentre ShapeSheet ou via Automation. (Pour plus dinformations sur lajout de
sections via Automation, reportez-vous au chapitre 17, Automatisation des
formules .
FORMUL ES VI SI O 67
Pour af f icher ou masquer les sect ions de la f ent re ShapeSheet :
1 Cliquez sur la barre de titre de la fentre ShapeSheet, puis choisissez Affichage >
Sections.
2 Dans la bote de dialogue Sections, cochez les sections afficher ou dslectionnez
celles masquer, puis cliquez sur OK.
Si une section apparat en gris, cela signifie quelle nest pas disponible car elle
nexiste pas pour lobjet.
Pour ajout er des sect ions dans la f ent re ShapeSheet :
1 Choisissez Insertion > Section.
2 Dans la bote de dialogue Insrer une section, cochez les sections ajouter lobjet,
puis cliquez sur OK.
Les sections apparaissent dans la fentre ShapeSheet dans un ordre fixe (et non
au-dessus ou au-dessous de la section affiche). Faites dfiler la fentre ShapeSheet
pour rechercher les sections qui viennent dy tre insres.
Les sections Gomtrie fonctionnent diffremment des autres types de section : un
objet peut tre dot de plusieurs sections du type Gomtrie, alors quil ne peut en
possder quune pour chacun des autres types. Dans la bote de dialogue Insrer
une section, slectionnez Gomtrie pour ajouter une section Gomtrie vierge
comprenant des lignes DplacerVers et TraitVers ; slectionnez Ellipse ou Ligne
infinie pour ajouter une section Gomtrie comprenant une ligne Ellipse ou Ligne
Infinie, respectivement. Pour plus dinformations sur les lignes Gomtrie,
reportez-vous au chapitre 5, Contrle de la gomtrie des formes laide
de formules .
CONSEIL : vous pouvez agrandir ou rduire une section de la fentre ShapeSheet en
cliquant sur le nom de cette section.
Sect ions ShapeSheet : prsent at ion et objet de leur cont rle
Chaque section ShapeSheet contrle un aspect dun objet Visio. En tant que
dveloppeur de formes, vous devez savoir de quelles sections dpend un
fonctionnement pour pouvoir le modifier.
Cette partie de chapitre rpertorie toutes les sections ShapeSheet disponibles,
accompagnes dune brve description de leur action. Pour plus dinformations sur
les cellules dune section ShapeSheet, effectuez une recherche laide des mots
sections dans des feuilles Shapesheet dans laide en ligne Rfrence du dveloppeur
fournie avec Visio.
68 CHAP I TRE 4
Sections ShapeSheet
Section Elments dfinis
Actions Noms des commandes personnalises rpertoris dans le menu
contextuel de l objet et les actions de ces commandes.
Alignement Alignement de l objet en fonction du repre ou du point de repre
auquel il est coll.
Appartenance au
calque
Calques auxquels l objet est attribu.
Calques Calques de l objet et leurs proprits.
Caractres Attributs de formatage pour le texte de l objet : police, couleur,
style de texte, casse, position en fonction de la ligne de base, taille
en points, etc.
Cellules
personnalises
Cellules nommes permettant de saisir des formules et des
constantes mentionnes dans d autres cellules et outils
complmentaires. Contrairement aux cellules M ontage, les
cellules dfinies par l utilisateur sont transportables . Par
exemple, si une forme faisant rfrence une cellule dfinie par
l utilisateur dans une page est copie sur une autre page ne
comportant pas la mme cellule dfinie par l utilisateur, cette
cellule est alors ajoute dans la page. Si la page possde dj
cette cellule dfinie par l utilisateur, la forme y fait simplement
rfrence pour utiliser sa valeur.
Champs de texte Formules personnalises insres dans un texte l aide de la
commande I nsrer un champ.
Contrles Coordonnes x et y, et comportement des poignes de contrle
de l objet.
Divers Proprits qui contrlent d autres attributs, tels que l apparence
de l objet lorsqu il est slectionn ou dplac.
Evnements Formules indiquant le dclencheur d un vnement, tel que le
double-clic sur une forme.
Format de bloc de
texte
Alignement et marges du texte dans un bloc de texte.
Format de
remplissage
Attributs de formatage du remplissage de l objet et de son ombre
porte : motif, couleurs de premier et d arrire-plan, etc.
Format de trait Attributs de formatage des lignes : motif, paisseur et couleur ;
ornement des extrmits de trait (par exemple, une pointe de
flche) ; format des ornements ; rayon du cercle dans lequel la
ligne est inscrite, style des extrmits de ligne (rond ou carr), etc.
Gomtrie Coordonnes des sommets des lignes et des arcs constituant les
proprits gomtriques de l objet. Si cet objet possde plusieurs
chemins, il est dot d une section Gomtrie pour chacun
d entre eux.
I nfos sur le collage Formules gnres pour une forme 1D lorsque cette dernire est
colle d autres objets.
I nfos sur l' image
externe
Largeur, hauteur et dcalage l intrieur des bordures de l objet
provenant d une autre application et insr dans un dessin Visio.
Liens hypertexte Liens entre l objet et une destination, telle qu une autre page de
dessin, un autre fichier ou un site Web.
FORMUL ES VI SI O 69
M ise en page Attributs de page qui contrlent la prsentation automatique des
formes et le routage des liens dynamiques : apparence par dfaut
et fonctionnement des formes et des liens dynamiques, etc.
M ise en page des
formes
Attributs de positionnement et de routage : possibilit pour un lien
de traverser une forme ou style qu un lien doit adopter lorsqu il en
croise un autre.
M ontage Zone de travail rserve aux formules intermdiaires mentionnes
dans d autres cellules.
Paragraphe Attributs de formatage des paragraphes : retraits, espacement
entre les lignes et alignement horizontal des paragraphes.
Points de connexion Points de connexion de l objet.
Points de fin 1D Coordonnes x et y des points de dbut et de fin d une forme 1D.
Proprits de doc Attributs de document, tels que les paramtres d aperu avant
impression ou le format des sorties.
Proprits de
groupe
Attributs de comportement, de slection et d affichage des
groupes : modes de slection et d affichage, fonctionnement du
texte, de l attraction et du dplacement, etc.
Proprits de la
page
Attributs tels que l chelle de dessin, le format de la page et le
dcalage des ombres portes.
Proprits de style Attributs en fonction de l lment auquel le style est appliqu
(formatage de remplissage, de trait ou de texte).
Proprits d' image Attributs de bitmap, tels que l intensit (gamma), la luminosit et
le contraste de l image.
Proprits
personnalises
Donnes associes l objet (lments dfinis par l utilisateur).
Protection Etat des verrouillages paramtrs l aide de la commande
Protection et des verrouillages supplmentaires pouvant tre
dfinis uniquement dans la fentre ShapeSheet.
Rgles et grille Paramtres de la grille et des rgles de la page : densit, origine et
espacement.
Tabulations Alignement et positionnement des taquets de tabulation.
Transformation de la
forme
I nformations de positionnement gnrales : largeur, hauteur,
angle et centre de rotation (axe) ; retournement et fonctionnement
de l objet lorsque ce dernier est redimensionn au sein d un
groupe.
Transformation du
texte
I nformations de positionnement d un bloc de texte.
Sections ShapeSheet (suite)
Section Elments dfinis
70 CHAP I TRE 4
Examen dune f orme dans la f ent re ShapeSheet
La meilleure faon dtudier les formules Visio et la fentre ShapeSheet est dafficher
une forme dans la fentre de dessin et dans la fentre ShapeSheet, cte cte. Cette
technique est pratique pour isoler des formes de base afin dexaminer lincidence
des formules personnalises sur leur fonctionnement. Vous pouvez galement essayer
de modifier les formules par dfaut pour observer les effets sur la forme dans la
fentre de dessin.
Pour examiner une f orme dans la f ent re ShapeSheet :
1 Slectionnez une forme dans la fentre de dessin.
2 Choisissez Fentre > Afficher la feuille ShapeSheet pour afficher la fentre
ShapeSheet.
3 Choisissez Fentre > Mosaque pour disposer les fentres ShapeSheet et de dessin
cte cte.
Examen dune forme dans la
fentre ShapeSheet
A Lorsque vous slectionnez certaines lignes ou cellules de la fentre ShapeSheet, le sommet
correspondant est mis en surbrillance dans la fentre de dessin.
Effectuez vos propres essais en commenant par dessiner une forme simple constitue
de segments de droite, telle quun rectangle ou un autre polygone, et affichez la
fentre ShapeSheet en suivant la procdure indique prcdemment. Dans la fentre
ShapeSheet, testez les suggestions ci-dessous et observez leur incidence sur la forme
dans la fentre de dessin :
Modifiez les valeurs des cellules AxeX et AxeY de la section Transformation de la
forme. La forme change de place sur la page de dessin.
Modifiez les valeurs des paramtres Largeur, Hauteur ou Angle. La forme est
rduite ou agrandie, ou pivote en fonction de ces valeurs.
Cliquez sur lintitul dune ligne Gomtrie pour slectionner cette dernire. Dans
la fentre de dessin, une poigne noire apparat sur le sommet correspondant.
A
FORMUL ES VI SI O 71
Slectionnez une ligne Gomtrie et choisissez Edition > Supprimer la ligne.
Le sommet correspondant est remplac par un segment de droite.
Slectionnez une ligne Gomtrie et choisissez Insrer > Ligne ou Insrer > Ligne
aprs. Saisissez vos propres valeurs dans les cellules de la ligne insre. Un sommet
apparat sur la forme en fonction des coordonnes indiques.
CONSEIL : si des valeurs plutt que des formules apparaissent dans les cellules de la fentre
ShapeSheet (ce qui est souvent le cas avec les formes de base fournies avec les produits
Visio), choisissez Affichage > Formules pour afficher les formules.
Vous pouvez afficher les sections qui ne sont pas visibles ou masquer celles qui ne vous
sont pas utiles. Pour plus dinformations, reportez-vous la section Affichage des
sections de la fentre ShapeSheet , page 66.
Lorsque vous modifiez une forme, certaines formules sont affiches en noir et dautres en
bleu. Cela indique que la formule est hrite ou locale. Pour plus dinformations,
reportez-vous la section Hritage des formules dune forme , page 80.
Dans la fentre de dessin, vous pouvez modifier la forme laide des outils de dessin et
des commandes Visio pour observer lincidence de ces changements sur les formules
de la forme. Testez les suggestions ci-dessous :
Dplacez la forme laide de loutil Pointeur. Les formules AxeX et AxeY de la
forme sont modifies pour reflter sa nouvelle position sur la page de dessin.
Faites glisser les poignes de slection pour redimensionner la forme. Les formules
Largeur et Hauteur de la forme sont modifies pour reflter son nouveau format.
A laide de loutil Crayon, slectionnez un sommet et supprimez-le, ou ajoutez-en
un et dplacez-le. Observez les incidences sur la section Gomtrie de la forme.
Changez le format de remplissage ou de trait de la forme. Les formules des sections
Format de remplissage ou Format de trait de la forme sont modifies.
Choisissez Format > Protection et cochez des options de la bote de dialogue qui
apparat. Les valeurs des cellules correspondantes dans la section Protection de la
forme passent de 0 1. Dans la fentre ShapeSheet, remplacez la valeur 1 des
cellules Protection par 0 et observez les effets sur les poignes de verrouillage de la
forme dans la fentre de dessin. (Vous pouvez galement saisir TRUE ou FALSE au
lieu de 1 ou 0 dans les cellules Protection, mais les cellules affichent toujours
1 ou 0.)
Pour obtenir une brve prsentation des outils de dessin Visio, reportez-vous au
chapitre 2, Cration de formes Visio . Pour obtenir des informations sur les
sections Transformation de la forme et Gomtrie, reportez-vous au chapitre 5,
Contrle de la gomtrie des formes laide de formules . Pour obtenir des
informations de rfrence sur toutes les sections ou cellules ShapeSheet,
reportez-vous laide en ligne Rfrence du dveloppeur (accessible via ? (Aide) >
Rfrence du dveloppeur) fournie avec Visio.
72 CHAP I TRE 4
Elment s des f ormules Visio
La cl pour contrler les actions appliques aux formes consiste rdiger les formules
qui dfinissent le comportement souhait. Une formule est une expression qui peut
comporter des constantes, des fonctions, des oprateurs et des rfrences de cellule.
Visio excute une formule pour obtenir un rsultat quil convertit ensuite dans lunit
dfinie pour la cellule qui contient la formule. Certaines formules ne sont quune
simple constante, mais toutes sont soumises ce processus de traitement et de
conversion. Dans la fentre ShapeSheet

, vous pouvez afficher le contenu dune


cellule, que ce soit des valeurs ou des formules, en slectionnant la commande
correspondante dans le menu Affichage.
REMARQUE : lorsque vous travaillez avec Automation, il vous suffit dafficher les formules
des formes et de les configurer. Pour plus dinformations, reportez-vous au chapitre 17,
Automatisation des formules .
Saisie et modif icat ion des f ormules dans la f ent re
ShapeSheet
Modifiez la formule dune cellule pour changer le mode de calcul de la valeur de cette
cellule et, par consquent, lun des comportements de la forme. Par exemple, la cellule
Hauteur de la section Transformation de la forme comporte une formule que vous
pouvez modifier pour changer la hauteur de la forme. Vous pouvez saisir et modifier
les formules dans la fentre ShapeSheet de la mme manire que dans un tableur.
Visio considre tout lment de la cellule (y compris une constante numrique, une
chane ou une rfrence de cellule) comme une formule. Contrairement aux cellules
dun tableur, la plupart des cellules Visio requirent un rsultat dun type particulier
tel quune dimension (par consquent, tous les lments que vous saisissez dans ces
cellules impliquent une unit de mesure, telle que des pouces ou des centimtres).
Le moteur Visio convertit automatiquement le rsultat naturel dune formule pour
quil corresponde au type dfini pour la cellule contenant la formule. Par exemple, la
cellule RetournementX de la section Transformation de la forme requiert un rsultat
de type boolen (TRUE ou FALSE). Cest pourquoi toutes les formules de la cellule
RetournementX ayant pour rsultat un nombre positif prennent la valeur TRUE et
celles qui sont gales zro, la valeur FALSE. Pour plus dinformations, reportez-vous
la section Units de mesure des formules Visio , page 78.
FORMUL ES VI SI O 73
Pour saisir une formule, slectionnez une cellule, et saisissez les donnes dans celle-ci
ou dans la barre de formule, illustre dans la figure suivante.
Saisie dune formule dans la
fentre ShapeSheet
A Slectionnez une cellule, saisissez ou modifiez la formule, et appuyez sur Entre.
B Cliquez sur le bouton Annuler pour annuler les modifications apportes la formule.
Pour plus dinformations sur la saisie et ldition des formules, ou sur lutilisation de
la barre de formule, effectuez une recherche laide des mots formules ou barre
de formule dans laide en ligne Rfrence du dveloppeur (accessible via ? (Aide) >
Rfrence du dveloppeur) fournie avec Visio.
CONSEIL : cliquez avec le bouton droit sur une cellule ShapeSheet pour afficher le menu
contextuel qui rpertorie les commandes permettant de modifier cette cellule.
Fonct ions et oprat eurs des f ormules Visio
Si vous avez dj cr des formules dans un tableur, vous avez certainement t amen
utiliser des fonctions et des oprateurs similaires ceux disponibles pour les
formules Visio. Cette section prsente brivement les fonctions et les oprateurs Visio,
ainsi que leur mode dutilisation.
Fonctions
Une fonction effectue une tche bien dfinie. La plupart des fonctions acceptent un
nombre fixe darguments en entre, mme si certaines nen acceptent aucun ; dautres
acceptent un nombre variable darguments et dautres encore acceptent des
arguments facultatifs. Bien que le type et le nombre darguments dpendent de la
fonction, toutes les fonctions respectent la mme syntaxe gnrale :
FONCTION(argument1, argument2, ... argumentN)
La plupart des fonctions disponibles pour les formules Visio ressemblent celles
utilises dans les tableurs : mathmatiques (SOMME ou RACINE), trigonomtriques
(SIN ou COS) ou logiques (SI ou NON). De nombreuses autres fonctions sont
propres Visio, telles que PROTECTION, PESANTEUR ou RUNADDON.
A
B
74 CHAP I TRE 4
Pour plus dinformations sur les fonctions, reportez-vous laide en ligne Rfrence
du dveloppeur (accessible via ? (Aide) > Rfrence du dveloppeur) fournie avec
Visio.
REMARQUE : certaines fonctions apparaissent dans les formules gnres par Visio, mais
ne sont pas rpertories dans la bote de dialogue Insrer une fonction ni dcrites dans
laide en ligne Rfrence du dveloppeur. Ces fonctions commencent par un caractre de
soulignement (par exemple, _ELLIPSE_THETA) ; elles sont rserves une utilisation
interne et ne doivent pas tre utilises dans dautres formules.
Oprateurs
Un oprateur effectue une opration en associant gnralement deux oprandes pour
gnrer un rsultat.
La plupart des oprateurs sont de type arithmtique (addition, soustraction,
multiplication, etc.) ou logique (suprieur , infrieur ou gal ). Lun dentre eux,
loprateur de concatnation, est part : il combine deux chanes pour nen obtenir
quune.
Un oprande peut tre une constante (une valeur) ou une expression (pouvant
ventuellement contenir une ou plusieurs fonctions) qui donne une valeur unique.
Dans une formule Visio (comme dans tout tableur), un oprande peut galement tre
une rfrence de cellule.
Lorsquune formule contient plusieurs oprateurs, ces derniers sont excuts dans un
ordre prdfini (parfois appel leur ordre de priorit). Par exemple, loprateur de
multiplication ( * ) est calcul avant loprateur daddition ( + ). Prenez lexpression
ci-dessous :
4 + 5 * 6
Comme la multiplication a un ordre de priorit suprieur celui de laddition, 5 * 6
est calcul en premier, ce qui fait 30, puis 4 est ajout 30 pour obtenir un rsultat
gal 34.
Vous pouvez modifier cet ordre de calcul en regroupant les expressions entre
parenthses. Par exemple :
( 4 + 5 ) * 6
Comme 4 + 5 est mis entre parenthses, cette expression est calcule en premier pour
donner 9. Ensuite, la multiplication 9 * 6 est calcule pour donner un rsultat gal
54.
Dans le cas dexpressions entre parenthses imbriques, Visio commence par
lexpression entre parenthses qui a le plus haut degr dimbrication et termine par les
parenthses extrieures.
FORMUL ES VI SI O 75
Pour obtenir le tableau des oprateurs et de leur ordre de priorit dans les formules
Visio, effectuez une recherche laide des mots ordre dvaluation dans laide en
ligne Rfrence du dveloppeur fournie avec Visio.
Rf rences de cellule ShapeSheet
Vous pouvez crer des relations dinterdpendance au sein des formules Visio laide
de rfrences de cellule. Les rfrences de cellule permettent en effet de calculer une
valeur pour une cellule en fonction de la valeur dune autre cellule. Par exemple, la
cellule Largeur dune forme peut contenir une formule qui calcule la largeur de la
forme partir de la valeur de la cellule Hauteur ; de cette manire, lorsque lutilisateur
tire la forme vers le haut, la largeur de cette forme est modifie de manire
proportionnelle.
Une formule peut faire rfrence toute autre cellule dun document, mme sil est
plus courant et plus pratique de faire rfrence aux cellules situes sur la mme page
(par exemple, une cellule dans la mme forme ou dans une autre forme au sein du
mme groupe).
REMARQUE : si vous envisagez de localiser une solution pour les marchs internationaux,
vous prfrerez peut-tre utiliser des noms universels dans les formules. Dans Microsoft


Visio

2000, tous les objets auxquels vous pouvez attribuer un nom (par exemple, aux
formes ou aux lignes dans une section Cellules personnalises) peuvent en fait accepter
deux noms : un nom local et un nom universel. Lutilisateur voit le nom local qui doit tre
traduit si la solution est localise. Le nom universel est (dans la plupart des cas)
transparent pour lutilisateur ; il na pas besoin dtre traduit et ne peut tre attribu qu
laide dAutomation.
Vous pouvez saisir les noms universels dans les formules de la fentre ShapeSheet ou les
paramtrer avec Automation, mais une fois que la formule est entre, elle est affiche avec
les noms locaux dans la fentre ShapeSheet. Pour obtenir des informations sur
lutilisation des noms universels dans une solution, reportez-vous au chapitre 25,
Distribution dune solution Visio Automation et laide en ligne Rfrence du
dveloppeur fournie avec Visio.
76 CHAP I TRE 4
Rfrences aux cellules situes dans la mme forme
Une rfrence une cellule situe dans la mme forme doit indiquer uniquement le
nom de cette cellule, tel que Hauteur. Si la cellule est situe dans une section avec des
lignes indexes, la section et lindex de ligne font partie du nom de la cellule.
Par exemple, lexpression ci-dessous fait rfrence la cellule situe dans la colonne X
et la ligne 5 de la section Points de connexion :
CONSEIL : pour faire rapidement rfrence une autre cellule de la mme forme,
positionnez le point dinsertion sur la barre de formule, puis cliquez sur la cellule
laquelle vous souhaitez faire rfrence. Visio insre le nom de cette cellule au point
dinsertion.
Rfrences des cellules situes dans dautres formes ou conteneurs
Pour crer une rfrence une cellule situe dans un autre conteneur (forme, page,
forme de base, document ou style), vous devez insrer un prfixe qui identifie ce
conteneur. Par exemple, une rfrence une cellule situe dans une autre forme doit
inclure le nom ou lID de la forme conteneur, suivi dun point dexclamation, puis le
nom de la cellule, comme lindique lexemple ci-dessous :
Cette rfrence mentionne la cellule Largeur de la section Transformation de la forme
de la forme nomme Chaise de bureau.
La rfrence peut comprendre lID de la forme, si cette dernire ne comporte pas de
nom, ou si vous souhaitez utiliser un autre nom. Par exemple, la rfrence suivante
indique la cellule Largeur de la section Transformation de la forme de la forme dont
lID est 2. Cette opration est recommande car lutilisation de noms limite la porte
aux conteneurs (par exemple, deux groupes peuvent chacun contenir une forme
portant le mme nom), tandis que Feuille.ID est unique. Par exemple :
CONSEIL : un objet sur une page de dessin comporte toujours un ID, quil ait un nom
descriptif ou non. Visio attribue cet ID la cration de lobjet. LID ne change pas, sauf si
vous dplacez lobjet vers une autre page ou un autre document. Pour afficher lID dun
objet ou pour donner un nom descriptif, choisissez Format > Spcial.
Cohhecf1ohs.XS
Cha1se de bueau!Lageu
Ieu111e.2!Lageu
FORMUL ES VI SI O 77
Une rfrence une cellule situe dans la page de dessin requiert le nom LaPage suivi
dun point dexclamation et le nom de la cellule. (Dans une forme de base, une
rfrence LaPage mentionne lobjet qui dfinit les proprits globales de la forme de
base, telles que sa taille globale et son chelle de dessin.) Par exemple, lexpression
suivante fait rfrence la cellule EchellePage de la page de dessin :
Rgles concernant les rf rences de cellule dans les f ormules
Le tableau ci-dessous rcapitule les rgles relatives aux rfrences de cellule dans les
formules.
LaPage!Eche11ePage
Rcapitulatif de la syntaxe des rfrences de cellule
Cellule Syntaxe de la rfrence la cellule Exemple
Dans le mme
objet
NomDeCe11u1e Largeur
Dans une
section
Gomtrie
Ceometrie.IndexLigneNomDeCo1onne Ceometriey1.X1
Dans un autre
objet nomm du
mme conteneur
NomDeForme!NomDeCe11u1e Ltoi1e!Ang1e
Dans un autre
objet de mme
nom du mme
conteneur
NomDeForme.ID!NomDeCe11u1e Lxecutive.2!hauteur
Dans tout objet
de la page
feui11e.ID!NomDeCe11u1e feui11e.8!Remp1PremP1an
Dans une
colonne
nomme avec
lignes indexes
NomdeSection.NomDeCo1onne|IndexLigne] Char.Font|8]
Dans une
colonne sans
nom avec lignes
indexes
NomdeSection.IndexLigneNomDeCo1onne Montage.A5
Dans une ligne
nomme
NomdeSection.Rowname uti1.Point de fuite
Sur la feuille de
la page
LaPage!ReferenceDeCe11u1e LaPage!LargeurPage
Une cellule dans
la feuille de la
page d une autre
page du
document
Pages|NomDePage]!ReferenceDeCe11u1e Pages|Page-8]!Lche11eDessin
78 CHAP I TRE 4
Unit s de mesure des f ormules Visio
Visio calcule les rsultats dune formule de diffrentes manires, en fonction de la
cellule dans laquelle elle a t saisie :
En gnral, les cellules reprsentant la position dune forme, une dimension ou un
angle requirent une paire nombre/unit qui consiste en lassociation dun nombre
et de lunit de mesure ncessaire pour interprter ce nombre. Par exemple, une
formule dans la cellule Largeur peut donner comme rsultat 5, signifiant 5 pouces
ou 5 centimtres, en fonction de lunit de mesure en vigueur dans le dessin.
Dautres cellules ne sont pas dotes dunit de mesure intrinsque et donnent
comme rsultat une chane, une expression vrai ou faux, ou un index, en fonction
de la nature de la cellule. Par exemple, la formule =5 dans la cellule
RemplPremPlan signifie la couleur 5 de la palette des couleurs du dessin, alors que
=5 dans la cellule VerrLargeur signifie TRUE (seul zro signifie FALSE) et
verrouille la largeur de la forme.
Pour optimiser les rsultats, indiquez toujours une unit de mesure dans les formules,
plutt que de compter sur Visio. Si vous nassociez pas dunit de mesure un nom-
bre, ce dernier est dfini laide de lunit interne paramtre pour la cellule, que ce
soit une unit de page, de dessin ou dangle :
Les units de page mesurent les dimensions sur la page dimpression, y compris les
tailles de police. Les units de page sont gnralement utilises pour lpaisseur des
traits et les tailles de police qui ne sont pas mises lchelle par rapport au dessin.
Les units de dessin indiquent les mesures relles : une piscine de 50 mtres (units
de dessin) peut tre reprsente par une longueur de 10 cm (units de page) sur le
papier. Par exemple, si vous saisissez la formule =50 dans la cellule Largeur qui
attend une paire nombre/unit en unit de dessin, Visio fournit lunit de dessin
par dfaut dfinie pour la page et calcule la formule en fonction de cette unit.
Les units dangle mesurent les distances angulaires, telles que la rotation dune
forme en degrs ou en radians.
Visio utilise par dfaut les pouces pour mesurer les distances, les radians pour les
angles et les jours pour les dures.
Dans une feuille
de formes de
base
Masters|NomFormeBase]!ReferenceCe11u1e Masters|Porte]!
feui11e.5.Largeur
Dans une feuille
de style
Sty1es!NomDuSty1e!ReferenceDeCe11u1e Sty1es!Lien!Cou1eurTrait
Dans une feuille
de document
LeDoc!ReferenceDeCe11u1e LeDoc!FormatSortie
Rcapitulatif de la syntaxe des rfrences de cellule (suite)
Cellule Syntaxe de la rfrence la cellule Exemple
FORMUL ES VI SI O 79
Unit s mult idimensionnelles
Une formule Visio qui multiplie ou divise des units dimensionnelles gnre un
rsultat en units multidimensionnelles pouvant tre stock dans certaines cellules.
Par exemple, si une forme fait 5 pieds de large et 10 pieds de haut en units de dessin,
la formule = Largeur * Hauteur donne comme rsultat 50 pi^2 (50 pieds carrs). Les
cellules pouvant stocker des rsultats multidimensionnels sont les suivantes :
La cellule Valeur de la ligne Proprit personnalise ou Cellules personnalises.
Les cellules A, B, C et D de la ligne Montage.
La fonction FORMAT permet dafficher des units multidimensionnelles laide
dabrviations telles que po.
2
. Pour plus dinformations, effectuez une recherche sur le
mot FORMAT dans laide en ligne Rfrence du dveloppeur fournie avec Visio.
Noubliez pas que la plupart des multiplications visent associer une valeur dote
dunit une valeur qui nen a pas. Si un tel calcul multiplie deux valeurs avec unit,
le rsultat multidimensionnel peut tre erron. Par exemple, si une cellule de couleur
telle que RemplPremPlan est paramtre sur le produit de deux cellules Gomtrie, le
rsultat est une erreur #DIM car les cellules Gomtrie sont toujours dotes dune
unit, alors que la cellule RemplPremPlan ne peut pas contenir de valeur
multidimensionnelle.
REMARQUE : dans les versions des produits Visio antrieures Visio 2000, les formules
dans lesquelles des valeurs dimensionnelles sont multiplies ou divises risquaient de
gnrer des rsultats incorrects. Prenons lexemple de la formule =1 cm * 1cm convertie
en 0,394 po. * 0,394 po. En multipliant uniquement les constantes et non les units, cette
formule donnait comme rsultat 0,155 po. Si vous convertissiez le rsultat en centimtres
en le multipliant par 2,54 cm./po., vous obteniez un rsultat incorrect de 0,394 cm. au
lieu de 1 cm.^2 (centimtres carrs). Pour bnficier des units multidimensionnelles de
la version Visio 2000, vous devez donc modifier les solutions existantes que vous aviez
mises en oeuvre pour pallier ce dysfonctionnement.
Indicat ion des unit s de mesure
Comme de nombreux dessins reprsentent des objets physiques, vous pouvez
indiquer les units de mesure des systmes imprial ou mtrique, exprimer les angles
dun arc en radians, en degrs dcimaux, ou en degrs, minutes et secondes. Vous
pouvez galement utiliser des mesures typographiques standard telles que les picas, les
points, les cicros et les didots.
80 CHAP I TRE 4
Pour optimiser les rsultats, indiquez toujours une unit de mesure lorsque vous
saisissez une formule dans une cellule qui attend une valeur dimensionnelle, comme
les exemples du tableau ci-dessous lindiquent.
Lindication explicite des units facilite lidentification des paires nombre/unit dans
les calculs ; cela permet dviter de diviser par mgarde une paire nombre/unit par
une autre ou dassocier des units incompatibles, telles que des angles ajouts des
longueurs. Par ailleurs, lindication dune unit de mesure facilite la localisation des
formules dans le cadre dune utilisation internationale.
Pour plus dinformations sur les units de mesure des formules Visio, reportez-vous
laide en ligne Rfrence du dveloppeur (accessible via ? (Aide) > Rfrence du
dveloppeur) fournie avec Visio.
Concept ion de f ormules Visio
La conception de formules Visio adquates va au-del dune syntaxe simplement
correcte. Un dveloppeur de formes doit comprendre do proviennent les formules
par dfaut dune forme, les avantages et les inconvnients de stocker des formules
dans certaines cellules, comment empcher la modification involontaire des formules
personnalises et comment contrler le recalcul dune formule pour optimiser les
performances.
Hrit age des f ormules dune f orme
Lorsque vous ouvrez une fentre ShapeSheet

, la formule figurant dans une cellule


peut tre hrite dune forme de base ou dun style. Plutt que deffectuer une copie
en local de toutes les formules dune forme, loccurrence dune forme de base hrite
des formules de cette forme de base et des styles qui lui sont appliqus.
Ce comportement prsente deux avantages : il permet, dune part, de rpercuter sur
toutes les occurrences les modifications effectues sur les formules ou sur la dfinition
du style dune forme de base, et, dautre part, de rduire le volume des fichiers Visio
car les formules hrites sont stockes une seule fois dans la forme de base, et non
dans chaque occurrence.
Exemples de paires nombre/unit
Valide Non valide
5 po. 5
Largeur + 0, 5 po. Largeur + 0, 5
7 po. * 1, 5 7 * 1, 5
DEG(M O DULE(Angle, 360 deg.)) M O DULE(Angle, 360 deg.)
FORMUL ES VI SI O 81
Lorsque vous saisissez une formule dans une cellule de ce type, vous crasez la
formule hrite avec la formule locale. La cellule qui contient la formule locale
nhrite plus sa formule de la forme de base, les modifications effectues sur la
formule de la forme de base ne sont pas rpercutes sur la cellule dans loccurrence, et
la forme occupe un espace de stockage plus important dans le document. Les styles
sont une exception : lorsque vous appliquez un style, de nouvelles formules sont
toujours inscrites dans les cellules ShapeSheet correspondantes, moins que vous
noptiez pour la conservation des substitutions locales. Pour plus dinformations,
reportez-vous au chapitre 10, Gestion des styles, des formats et des couleurs .
La couleur du texte dune formule indique si cette formule est locale ou hrite.
Si le texte dune cellule est noir, la formule est hrite ; sil est bleu, la formule est
locale. Que vous modifiiez la formule dans la fentre ShapeSheet ou dans la forme
elle-mme (par exemple, en la redimensionnant dans la fentre de dessin), la formule
change.
Pour restaurer une formule hrite dans une cellule, supprimez la formule locale.
Visio la remplace par la formule correspondante de la forme de base.
REMARQUE : dans les versions prcdentes du produit Visio, les formules Gomtrie
taient toujours locales. Dans Visio 2000, elles sont hrites de formes de base.
Cela signifie que toutes les modifications locales effectues sur les proprits gomtriques
dune forme crent une copie de la formule hrite et supposent un espace de stockage plus
important. Pour conserver des documents Visio de taille rduite, modifiez les formules
hrites dans la forme de base, dans le gabarit du document, pour que les formes puissent
encore hriter de la forme de base. Les solutions qui utilisent Automation pour modifier
les formules Gomtrie des formes doivent tre reconues pour fonctionner de la mme
manire.
Formules des sect ions Cellules personnalises et Mont age
La plupart des sections ShapeSheet ont une fonctionnalit prdfinie : leurs cellules
contrlent des comportements ou des attributs de forme dtermins. Cependant,
vous pouvez tre amen simplifier une formule avec des calculs intermdiaires, ou
stocker des valeurs utilises par dautres formules ou des programmes
complmentaires. Vous pouvez stocker des formules et des valeurs de ce type dans la
section Cellules personnalises ou Montage dun objet. Pour ajouter ces sections dans
la fentre ShapeSheet, choisissez Insertion > Section, puis cochez la section ajouter.
82 CHAP I TRE 4
Les cellules des sections Cellules personnalises et Montage ne contrlent pas des
comportements ou des attributs de forme particuliers ; de cette manire, vous pouvez
indiffremment insrer des formules dans lune et/ou lautre de ces sections.
Cependant, dans certains cas, il est plus judicieux de privilgier lune des mthodes :
Comme une cellule dfinie par lutilisateur peut stocker un nom descriptif, elle
reprsente lemplacement le plus appropri pour stocker des constantes et des
valeurs auxquelles dautres formules font rfrence ; une rfrence un nom
descriptif facilite en effet la comprhension des formules.
La section Montage comporte des cellules X et Y, conues pour contenir une paire
nombre/unit en unit de dessin. Ces cellules sont les emplacements appropris
pour stocker des formules dans lesquelles des coordonnes de forme entrent
en jeu.
REMARQUE : si vous accdez aux cellules dune forme laide dAutomation, insrez les
formules dans des cellules dfinies par lutilisateur plutt que dans des cellules de la
section Montage. Tous les programmes peuvent crire dans une cellule Montage, et par
consquent craser les formules qui y sont stockes. Ce fonctionnement est plus
improbable dans une cellule portant un nom unique.
Section Cellules personnalises
Vous pouvez ajouter une cellule dont vous indiquez le nom et la valeur dans la section
Cellules personnalises. Une cellule dfinie par lutilisateur peut contenir tous les
types de formule, tels quune constante mentionne dans dautres formules ou un
calcul utilis par un programme complmentaire. Par exemple, une forme de base
peut faire rfrence une cellule dfinie par lutilisateur dans une page. Lorsquune
occurrence de cette forme de base est cre, elle fait rfrence la cellule dfinie par
lutilisateur de la page sur laquelle elle est situe si cette page contient dj cette cellule
dfinie par lutilisateur. Dans le cas contraire, elle est copie de la forme de base.
(Ce fonctionnement est galement vrai pour les cellules dfinies par lutilisateur dans
des documents.) Cette fonctionnalit rend les cellules dfinies par lutilisateur
hautement portables car le dveloppeur de formes nest pas oblig de vrifier que
toutes les destinations possibles comportent cette cellule dfinie par lutilisateur (si la
forme requiert ce type de cellule, cette dernire sera forcment prsente).
Le nom que vous attribuez une cellule dfinie par lutilisateur doit tre unique au
sein dune mme section. Pour faire rfrence la valeur dune cellule dfinie par
lutilisateur situe dans la mme forme, utilisez la syntaxe Util.nom (par exemple,
Util.Constante).
FORMUL ES VI SI O 83
Pour faire rfrence une cellule dfinie par lutilisateur situe dans une autre forme,
une autre page ou un autre document, faites prcder Util.nom de lemplacement
adquat. Par exemple :
CONSEIL : certaines cellules, notamment Util.Message et Action.Message, ont t conues
pour contenir par dfaut des chanes. Lorsque vous saisissez des donnes dans ces cellules
dune fentre ShapeSheet, Visio met automatiquement le texte entre guillemets. Dbutez
la formule avec un signe gal (=) pour que Visio la traite en tant que formule. Visio ne
met pas automatiquement le texte entre guillemets si vous dfinissez les formules de lune
de ces cellules laide dAutomation.
Section Montage
La section Montage est compose de six colonnes intitules X, Y, A, B, C et D.
Les cellules des colonnes X et Y utilisent les units de mesure du dessin : insrez des
calculs incluant des dimensions ou des coordonnes de forme dans ces cellules.
Les cellules des colonnes A D ne comprenant pas dunit intrinsque, elles sont
adaptes tout type de rsultats. Pour faire rfrence des cellules de la section
Montage, indiquez le nom de la section, ainsi que le libell de la colonne et de la ligne
(par exemple, Montage.A1).
Comme leur nom lindique, les cellules Montage sont plus appropries pour les
calculs intermdiaires locaux dune forme et non pour ceux concerns par
Automation). Outre le fait que les cellules Montage ne peuvent pas tre nommes de
manire aussi explicite que les cellules dfinies par lutilisateur, elles nont pas non
plus un aussi fort degr de transportabilit. Si une forme fait rfrence une cellule
Montage sur une page ou un document, et que vous souhaitiez copier cette forme vers
une autre page ou un autre document, la formule de rfrence choue et indique
lerreur #REF car la formule Montage de la page ou du document source nest pas
copie vers la destination.
Ieu111e.2!uf11.Cohsfahfe
LaPage!uf11.Cohsfahfe
Le0oc!uf11.Cohsfahfe
84 CHAP I TRE 4
Prot ect ion des f ormules
La fonction PROTECTION est la seule faon dempcher la modification des
formules dans des cellules ShapeSheet. PROTECTION protge la totalit dune
formule dans une cellule ; elle ne peut pas protger quune partie de formule.
Les actions effectues dans la fentre de dessin ne peuvent pas craser les formules
protges par la fonction PROTECTION. La syntaxe de la fonction PROTECTION
est la suivante :
expression tant la formule protger. Il nexiste aucune diffrence entre lexcution
dune formule protge par la fonction PROTECTION et celle dune formule non
protge.
Lorsque vous dplacez, redimensionnez, regroupez ou dissociez des formes, Visio
crit ces modifications dans les cellules ShapeSheet et peut ainsi craser des formules
personnalises. Les cellules le plus couramment affectes par ces actions sont Largeur,
Hauteur, AxeX et AxeY de la section Transformation de la forme. Par exemple, pour
empcher le retournement dune forme, saisissez la formule suivante :
Une mme action dans la fentre de dessin peut avoir une incidence sur plusieurs
cellules ShapeSheet. Vous devez protger les formules dans chacune de ces cellules si
vous souhaitez empcher la modification involontaire de la forme. Bien sr, si un
utilisateur supprime une section ShapeSheet, toutes les formules qui y sont stockes,
y compris celles qui sont protges, sont supprimes.
Cont rle du recalcul des f ormules
Par dfaut, une formule qui fait rfrence une autre cellule est de nouveau calcule
lorsque la cellule rfrence est modifie. Par exemple, si une formule fait rfrence
la cellule AxeX de la forme et que cette dernire soit dplace sur la page, la formule
est recalcule car AxeX a t modifi. Gnralement, ce comportement vous
conviendra parfaitement ; les formules Visio en retirent la majeure partie de leur
puissance et de leur adaptabilit.
Certains recalculs peuvent sembler tre la consquence de phnomnes de cause
effet, mais de nombreux facteurs ont une incidence sur lordre dans lequel les
formules sont recalcules. Les formules doivent tre conues pour ne pas dpendre
dun ordre de recalcul dtermin.
PP0TECTT0h|expess1oh)
PefouhemehfX = PP0TECTT0h|IALSE)
PefouhemehfY = PP0TECTT0h|IALSE)
FORMUL ES VI SI O 85
Tous les recalculs ne sont pas ncessaires. Par exemple, la fonction DEFF, fonction
puissante qui peut, dans une formule, dfinir la formule dune autre cellule, na pas
besoin dtre recalcule jusqu ce que la condition qui la dclenche se produise ;
cependant, si cette formule fait rfrence des cellules souvent modifies, elle peut
tre frquemment recalcule inutilement. Le recalcul prend du temps et a une
incidence sur les performances des formes.
Pour viter les recalculs inutiles et pour amliorer les performances dune solution,
insrez les rfrences aux cellules dans lune des fonctions suivantes :
GETREF(rfrence de cellule) permet dinclure dans une formule une rfrence
une autre cellule, sans recalculer cette formule en cas de modification de la valeur
de la cellule.
GETVAL(rfrence de cellule) permet dutiliser dans une formule la valeur dune
autre cellule.
Le principal avantage de GETREF rside dans le fait que la rfrence la cellule cible
na pas besoin dtre mise entre guillemets. Dans les versions prcdentes de Visio,
la rfrence une cellule cible utilise dans une fonction DEFF devait tre mise entre
guillemets, ce qui impliquait la ncessit de convertir la formule pour les solutions
localises.
GETREF et GETVAL permettent toutes les deux une formule de suivre la rfrence
une cellule si elle est modifie (par exemple, si les lignes prcdentes sont supprimes
ou si la cellule elle-mme est supprime) ; cependant, la formule de rfrence nest pas
recalcule lorsque la cellule de rfrence est modifie.
Par exemple, la formule suivante est recalcule lorsque la valeur de Largeur est
modifie, et non lorsque AxeX et AxeY changent de valeur :
La formule suivante est recalcule lorsque la cellule contenant la formule DEFF est
dclenche (par exemple, par un utilisateur choisissant une action dans un menu
contextuel), et non lorsque AxeX est modifi :
= CETvAL|AxeX) + CETvAL|AxeY) + Lageu
= 0EII|CETPEI|AxeX) 7)
86 CHAP I TRE 4
Ajout de f onct ionnalit s aux f ormules Visio laide dAut omat ion
Lune des principales questions lorsque vous dveloppez une solution Visio est la
suivante : est-il ncessaire de faire appel Automation ? Les formules Visio peuvent
tre extrmement puissantes, mais plus les formules sont complexes, plus il est
difficile de les concevoir et de les tester.
Vous pouvez tre amen ajouter des fonctionnalits une solution laide
dAutomation si :
Les formules utilisent de nombreuses expressions DEFF pour simuler un flux de
contrle (instructions if-else et switch-case, ou des boucles). DEFF est la fonction
la plus adquate pour une initialisation ou une configuration unique, et non pour
dfinir une machine dtat.
Les formules dpendent de lordre de recalcul permettant dobtenir des rsultats
corrects. Mais, pour optimiser les performances, les formules sont recalcules
lorsque cela est ncessaire et lordre nest donc pas garanti. Les formules qui
dpendent du recalcul pralable dautres formules peuvent gnrer des rsultats
incohrents.
Les formules gnrent des rsultats incohrents sans raison apparente. En effet, les
formules complexes peuvent dpendre deffets secondaires (qui seront grs dans
les versions ultrieures de Visio) et entraner larrt du fonctionnement des
formules. Par exemple, les formules ne doivent pas tre fondes sur une chane de
rfrences circulaires pour excuter une boucle un certain nombre de fois.
Pour obtenir une prsentation du mode de sparation des fonctionnalits entre les
formules Visio et Automation, reportez-vous au chapitre 1, Prsentation du manuel
Developing Visio Solutions . Pour obtenir une prsentation dAutomation dans Visio,
reportez-vous au chapitre 14, Automation et le modle dobjet de Visio .
Sommaire
5
Cont rle de la gomt rie des
f ormes laide de f ormules
Lorsque vous crez une forme, vous devez dcider de son comportement aprs une
action de lutilisateur. Le plus souvent, cette raction consiste en un
redimensionnement ou en un repositionnement. Lapplication Microsoft

Visio


enregistre lemplacement de chaque sommet dans lespace de coordonnes de la
forme. Ces sommets, ainsi que les chemins qui les connectent, dfinissent la gomtrie
de la forme. Lorsque vous crivez des formules visant contrler la gomtrie des
formes, vous dterminez lapparence dune forme et son comportement face aux
diffrentes actions de lutilisateur.
Ce chapitre dfinit la gomtrie des formes et indique la manire dont vous pouvez
tirer, rduire, retourner et faire pivoter les formes. Il explique galement la manire
dont vous pouvez contrler les courbes des formes. Vous y trouverez aussi des
suggestions qui vous permettront doptimiser la gomtrie des formes et dutiliser des
verrouillages afin de limiter les types daction applicables une forme.
Gomtrie des formes ............................................................................................. 88
Contrle de ltirement et de la rduction des formes ......................................... 94
Contrle du retournement et de la rotation des formes....................................... 98
Contrle des courbes des formes...........................................................................103
Optimisation de la gomtrie dune forme............................................................110
Limitation du comportement dune forme laide de verrouillages ...................111
88 CHAP I TRE 5
Gomt rie des f ormes
La plupart des logiciels de dessin reposent sur une gomtrie en deux dimensions.
Lorsque vous dessinez un objet, le programme lenregistre sous la forme dun
ensemble demplacements horizontaux et verticaux. Ces emplacements, appels
sommets dans lapplication Visio, sont mesurs partir dun point dorigine sur la
page et sont connects par des segments de traits, comme si vous dessiniez lobjet sur
du papier millimtr.
Un chemin est un ensemble de segments de traits ou de courbes qui connectent les
sommets dune forme. Dans la plupart des cas, chaque chemin correspond une
section Gomtrie que vous pouvez afficher dans une fentre ShapeSheet

ou
laquelle vous pouvez accder via Automation. Chaque sommet dfinissant un chemin
correspond une ligne de la section Gomtrie. Un chemin peut tre ferm ou ouvert,
et chaque forme peut possder plusieurs chemins (et donc plusieurs sections
Gomtrie) ; pour plus dinformations, reportez-vous au chapitre 6, Regroupement
et fusion de formes .
Un chemin est un ensemble de
segments de traits ou de courbes
qui connectent les sommets dune
forme.
A la diffrence des autres logiciels de dessin, lapplication Visio permet de contrler
lemplacement dun sommet par le biais de formules. Au lieu denregistrer
simplement la nouvelle position dune forme qui vient dtre dplace ou
redimensionne, lapplication Visio permet de calculer un sommet par rapport aux
autres sommets ou aux autres formes, ou au contraire de dfinir une position fixe sur
la page. Les formules permettent en outre de faire adopter aux formes des
comportements complexes.
CONTRL E DE L A GOMTRI E DES FORMES L AI DE DE FORMUL ES 89
Lillustration suivante prsente un exemple simple. Dans le rectangle situ gauche, la
largeur et la hauteur sont indpendantes lune de lautre. La modification de lune na
aucune incidence sur lautre. En revanche, dans le rectangle situ droite, la hauteur
est calcule laide dune formule qui fait rfrence la largeur. Toute modification
de la largeur de la forme entrane un nouveau calcul de la formule de la hauteur : la
hauteur de la forme subit une modification.
Lorsque vous crez une formule
pour une forme, lapplication Visio
recalcule les sommets sur la base
de votre formule.
Descript ion de f ormes dans un syst me de coordonnes
Parmi les formules essentielles figurent celles qui permettent de contrler la taille ou
la position dune forme. Chacun des sommets dune forme est enregistr sous la
forme dun couple de coordonnes x, y. Lorsque vous dplacez ou redimensionnez la
forme, lapplication Visio enregistre les modifications apportes ses sommets et
redessine la forme en lui appliquant les nouveaux paramtres de position et de taille.
Pour dplacer, retourner, faire pivoter ou redimensionner une forme Visio laide de
formules, vous devez dcrire la forme en fournissant un systme de coordonnes.
Lapplication Visio utilise divers systmes de coordonnes pour dcrire une forme.
Selon le rle que va jouer la forme, vous pouvez tre amen utiliser trois systmes de
coordonnes :
Coordonnes locales La largeur et la hauteur dune forme dfinissent les deux axes
de coordonnes locales. Lorigine correspond langle infrieur gauche du plan
largeur/hauteur de la forme. Langle suprieur droit prsente les coordonnes
(Largeur, Hauteur). La section Gomtrie utilise des formules pour dcrire les
coordonnes locales des sommets pour les chemins qui composent une forme. En
modifiant ces formules, vous pouvez contrler lapparence dune forme, quel que soit
son emplacement sur la page de dessin.
Coordonnes sur la page Lemplacement dune forme ou dun groupe sur la page de
dessin est indique par les coordonnes sur la page dont lorigine correspond langle
infrieur gauche de la page. Les coordonnes de ce type apparaissent sur la rgle dans
lunit de mesure indique dans la bote de dialogue Mise en page.
A Largeur = 1
B Hauteur = 1
C Largeur = 3
D Hauteur = Largeur * 0,5
90 CHAP I TRE 5
Coordonnes parent Lapplication Visio identifie galement la position dun objet par
rapport son parent. En ce qui concerne les formes situes sur une page de dessin, les
coordonnes parent sont identiques aux coordonnes sur la page. En revanche, si une
forme se trouve dans un groupe, son parent est le groupe, et non la page. Les
coordonnes parent correspondent donc aux coordonnes locales du groupe. Dans ce
cas, lorigine du systme de coordonnes parent correspond langle infrieur gauche
du plan largeur/hauteur du groupe.
Lapplication Visio utilise diffrents
systmes de coordonnes pour
identifier les sommets et la position
des formes.
A Plan largeur/hauteur
B Coordonnes locales
C Coordonnes sur la page
CONSEIL : vous ne pouvez pas modifier lorigine du systme de coordonnes sur la page.
En revanche, vous pouvez modifier le point zro des coordonnes affiches sur les rgles en
maintenant la touche Ctrl enfonce et en faisant glisser la barre lintersection de deux
rgles. Le dplacement du point zro na aucune incidence sur le systme de coordonnes
sur la page, mais il peut servir mesurer la distance sparant deux formes.
Reprsent at ion de la gomt rie dune f orme laide de
f ormules
Lapplication Visio indique la largeur, la hauteur et la position dune forme laide de
formules dans la section Transformation de la forme qui utilise le systme de
coordonnes parent. Visio exprime la valeur de chaque sommet dune forme sous la
forme dune fraction de la largeur/hauteur dans la section Gomtrie. Lorsque vous
dplacez, redimensionnez ou faites pivoter une forme, Visio crit de nouvelles
formules dans la section Transformation de la forme, puis recalcule les formules des
sommets dans la section Gomtrie.
CONTRL E DE L A GOMTRI E DES FORMES L AI DE DE FORMUL ES 91
Lexemple suivant prsente un rectangle accompagn de ses sections Transformation
de la forme et Gomtrie.
Rectangle accompagn de ses
sections Transformation de la
forme et Gomtrie
Dans cet exemple, la cellule Largeur du rectangle contient la valeur = 3 po. et deux de
ses cellules Gomtrie comportent la formule = Largeur*1. Si la forme est tire sur la
page de dessin, la valeur de la cellule Largeur augmente, ce qui modifie la valeur des
coordonnes locales indiques dans la section Gomtrie. La formule Gomtrie,
toutefois, demeure = Largeur*1. Les formules Gomtrie qui reprsentent les
sommets de la forme sont toutes des coordonnes locales, exprimes dans les
units de largeur et hauteur de la forme.
REMARQUE : les types de ligne de gomtrie indiquent la manire dont un segment de
chemin doit tre dessin. Dans lexemple prcdent, les types de ligne DplacerVers et
TraitVers correspondent des segments de droite. Supposons que vous ayez indiquer
une personne de tracer un rectangle sur une feuille de papier. Vous lui donneriez
certainement lexplication suivante : Placez votre stylo sur les coordonnes 0, 0, puis
tirez un trait vers les coordonnes 3, 0... , etc.
Les types de ligne qui dcrivent des courbes (surtout les courbes dessines laide de loutil
Dessin main leve) sont plus complexes que ceux correspondant des droites. Certains
types de ligne peuvent reprsenter plusieurs sommets en une seule ligne. Pour plus
dinformations sur les types de ligne Gomtrie, reportez-vous la section Gomtrie de
laide en ligne ShapeSheet (accessible via ? (Aide) > Rfrence du dveloppeur, puis
slectionnez loption de rfrence de ShapeSheet) de votre produit Visio.
92 CHAP I TRE 5
Reprsent at ion de la posit ion dune f orme sur une page
La position dune forme sur la page est indique par son axe (ou centre de rotation).
Lapplication Visio utilise deux ensembles de coordonnes dans la section
Transformation de la forme afin de stocker lemplacement de laxe dune forme :
Les cellules AxeX et AxeY stockent les donnes x et y de laxe en fonction de son
parent, qui peut tre le groupe ou la page. Les coordonnes AxeX et AxeY sont
donc exprimes dans les coordonnes parent. Elles indiquent la position de la
forme par rapport son parent. Si la forme est dplace, les valeurs AxeX et AxeY
changent.
Les cellules AxeLocX et AxeLocY stockent les donnes dx et de y par rapport la
forme. Les valeurs AxeLocX et AxeLocY sont donc exprimes dans les
coordonnes locales. AxeLocX et AxeLocY reprsentent le point de rotation de la
forme lorsque vous la faites pivoter. Tout comme les formules Gomtrie de la
forme, AxeLocX et AxeLocY sont des formules qui font rfrence la largeur et la
hauteur de la forme. Le dplacement de la forme nentrane aucune modification
des formules AxeLocX et AxeLocY.
Laxe dcrit la position dune forme
dans les coordonnes locales et les
coordonnes parent.
A Les coordonnes locales de laxe dcrivent ce point (Largeur * 0,5, Hauteur * 0,5).
B Les coordonnes parent de laxe dfinissent ce point.
Pour comprendre le fonctionnement de laxe, imaginez que vous placez une fiche
cartonne de 3 x 5 po. sur une feuille de papier et que vous les perforez laide dune
aiguille. Vous pouvez dcrire lemplacement de la carte sur le papier par rapport aux
trous de laiguille.
Laxe fonctionne de cette manire dans lapplication Visio. Les coordonnes locales
de laxe (le trou dans la carte) sont (AxeLocX, AxeLocY). Les coordonnes parent
(le trou dans le papier) sont (AxeX, AxeY). Si vous fixez la carte un autre endroit du
papier (ce qui quivaut dplacer une forme sur une page), le trou de la carte ne
change pas de place. Cela nentrane donc aucune modification des coordonnes
locales de laxe. Toutefois, une nouvelle perforation apparat sur le papier, car les
coordonnes parent de laxe ont t modifies.
A
B
CONTRL E DE L A GOMTRI E DES FORMES L AI DE DE FORMUL ES 93
Dplacement dune forme laide de formules
Lorsque vous dplacez une forme sur une page laide de la souris, lapplication Visio
met jour les valeurs AxeX et AxeY en fonction de la nouvelle position de la forme sur
la page. Pour dplacer une forme par le biais de formules, dfinissez les valeurs AxeX
et AxeY. Par exemple, pour dplacer la flche dun pouce vers le haut dans la figure
suivante, vous pouvez utiliser cette formule :
Vous pouvez galement lier la position de la flche la largeur de la page laide dune
formule du type suivant :
Par dfaut, laxe est au centre de la forme que lapplication Visio exprime sous la
forme de formules utilisant les coordonnes locales (Largeur*0,5, Hauteur*0,5).
Vous pouvez dplacer laxe dune forme de lune des manires suivantes :
En crivant de nouvelles formules dans les cellules AxeLocX et AxeLocY.
En choisissant loption Pos. axe dans la bote de dialogue Taille et position.
Vous pouvez afficher cette bote de dialogue en choisissant Affichage > Fentres >
Taille et position ou Affichage > Taille et position dans le menu contextuel de la
forme (qui apparat lorsque vous cliquez dessus avec le bouton droit).
En faisant glisser laxe avec loutil de rotation dans la fentre de dessin.
Si vous dplacez laxe avec loutil de rotation dans la fentre de dessin, les valeurs AxeX
et AxeY sont modifies pour que la position de la forme sur la page ne change pas.
La section Transformation de la
forme contient les coordonnes
locales et les coordonnes parent
de laxe.
A Coordonnes parent de laxe
B Coordonnes locales de laxe
Les valeurs des cellules AxeX et AxeY correspondent aux valeurs indiques par les
options X et Y de la bote de dialogue Taille et position. Pour modifier les valeurs
AxeX et AxeY, changez les valeurs X et Y dans cette bote de dialogue.
AxeY = 1,S po.
AxeX = LaPage!LageuPage - S po.
B
A
94 CHAP I TRE 5
Mesure visant empcher les ut ilisat eurs de dplacer une
f orme
Lorsquun utilisateur dplace ou tire une forme, lapplication Visio crit de nouvelles
valeurs dans la section Transformation de la forme et crase les formules des cellules
concernes, y compris celles des cellules AxeX et AxeY.
Pour empcher les utilisateurs de dplacer une forme, vous pouvez utiliser la fonction
PROTECTION afin de protger ses formules AxeX et AxeY. Si vous protgez les
formules AxeX, les utilisateurs ne peuvent pas dplacer la forme lhorizontale.
Si vous protgez les formules AxeY, tout dplacement vertical est impossible. (Bien
sr, si vous protgez les formules AxeX et AxeY, tout dplacement est impossible.)
Par exemple, pour protger les formules de lillustration prcdente, procdez ainsi :
CONSEIL : vous pouvez dfinir les cellules VerrPivoter, VerrDplacX et VerrDplacY de
manire empcher les utilisateurs de faire pivoter ou de dplacer la forme, et protger les
autres formules de manire ce quaucune autre action utilisateur ne soit possible. Pour
plus dinformations sur les verrouillages et sur la fonction PROTECTION, reportez-vous
la section Limitation du comportement dune forme laide de verrouillages , la
page 111 de ce chapitre.
Cont rle de lt irement et de la rduct ion des f ormes
Vous pouvez utiliser des formules afin de contrler la rduction ou lagrandissement
dune forme en raction certaines actions des utilisateurs Visio. Gnralement, les
utilisateurs redimensionnent une forme en dplaant ses poignes de slection, mais
ils peuvent galement modifier les sommets dune forme laide de loutil Crayon.
Vous pouvez crer une forme utilisant plusieurs rgles dtirement, selon que
lutilisateur fait glisser une poigne de redimensionnement de largeur ou de hauteur.
Lune des mthodes possibles consiste utiliser une formule calcule sur la base de la
hauteur qui, comme son nom lindique, conserve le rapport hauteur/largeur dune
forme en dfinissant sa largeur par rapport sa hauteur. Pour que cette formule ne
sapplique qu une partie de la forme, vous pouvez placer une formule calcule sur la
base de la hauteur dans les cellules Gomtrie correspondant la partie souhaite.
Pour plus dinformations sur lutilisation de formules calcules sur la base de la
hauteur avec une forme 1D, reportez-vous au chapitre 8, Liaison des formes :
formes 1D et collage .
AxeY = PP0TECTT0h|1,S po.)
AxeX = PP0TECTT0h|LaPage!LageuPage - S po.)
CONTRL E DE L A GOMTRI E DES FORMES L AI DE DE FORMUL ES 95
Exemple de f ormules calcules sur la base de la haut eur
Dans lexemple suivant, une flche est dessine laide de loutil Trait. Cet exemple
illustre lutilisation de formules pour contrler la rduction ou lagrandissement de la
flche. Par dfaut, le programme applique la flche des formules qui dfinissent un
redimensionnement proportionnel en cas dtirement horizontal ou vertical.
Le redimensionnement de la flche
dorigine modifie les proportions de
la forme.
A Flche dorigine utilisant les formules par dfaut
B Flche aprs redimensionnement de la largeur
C Flche aprs redimensionnement de la hauteur
Lorsque vous utilisez les formules par dfaut, les flches de diffrentes longueurs
prsentent des pointes de diffrentes tailles, ce qui entraine un affichage cohrent.
Au moment dutiliser cette flche dans un dessin, vous prfrerez probablement que
le corps de la flche stire et se rduise horizontalement, mais que la taille de la pointe
reste inchange. En revanche, si la forme est tire la verticale, vous prfrerez
probablement que la pointe de la flche soit redimensionne en consquence.
Comme la largeur de la pointe de flche est proportionnelle sa hauteur, une formule
calcule sur base de la hauteur peut dcrire la base de la pointe de flche (trait
connectant les sommets 3, 4, 6 et 7 dans la figure suivante) sous la forme dune
fraction de la hauteur de la forme.
Chaque sommet correspond une
ligne de la section Gomtrie.
A Toutes les ordonnes (y) sont par dfaut des multiples de la hauteur.
B Toutes les abscisses (x) sont par dfaut des multiples de la largeur.
C Hauteur * 0,5
D Hauteur * 0,5
A B C
96 CHAP I TRE 5
Le sommet 5 se place exactement gale distance du haut et du bas de la forme.
Sa coordonne y peut donc tre calcule par la formule Hauteur * 0,5. Si la distance
sur laxe x sparant le sommet 5 de la base de la pointe de flche est dfinie par
rapport la hauteur, la pointe de flche est redimensionne proportionnellement
lorsque la forme est tire la verticale, mais ne change pas lorsque cet tirement est
effectu lhorizontale.
La formule qui produit ce comportement permet de conserver la taille de la base de la
pointe de flche, qui est gale la largeur de la forme moins la distance sparant le
sommet 5 de la base, soit :
La coordonne x de chaque sommet de la base de la pointe de flche (sommets 3, 4, 6
et 7) doit tre calcule laide de cette formule. Pour des raisons defficacit, la
formule peut tre place uniquement dans la cellule du sommet 3 : les autres cellules
font ensuite rfrence cette valeur. La coordonne y du sommet 3 correspond la
cellule X3 de la section Gomtrie1.
Sommets et formules dcrivant la
gomtrie de la flche
A Tous les points de la base de la pointe de flche prsentent la mme coordonne x :
Largeur - Hauteur * 0,5.
B La base de la pointe de flche est dfinie par une fraction de la hauteur.
C Hauteur
D Hauteur * 0,75
E Hauteur * 0,5
F Hauteur * 0,25
G Largeur
= Lageu - haufeu " 0,S
CONTRL E DE L A GOMTRI E DES FORMES L AI DE DE FORMUL ES 97
Lillustration suivante prsente la nouvelle gomtrie de la flche aprs
redimensionnement.
Nouvelle gomtrie de la flche
Opt imisat ion de lexemple de f lche
Les formules calcules sur la base de la hauteur de la section Exemple de formules
calcules sur la base de la hauteur , page 95, produisent le comportement souhait et
fonctionnent correctement. Toutefois, comme la flche est symtrique, vous pouvez
ensuite affiner les formules personnalises laide de rfrences de cellule afin de
rduire le nombre de calculs. La forme est ainsi plus facile personnaliser.
Par exemple, les cellules Gomtrie1.Y1 et Gomtrie1.Y7 contiennent toutes les deux la
mme formule :
Cette formule peut galement prendre la forme suivante :
La cellule Gomtrie1.Y2 contient dj la formule = Hauteur * 0,25. Il vous suffit donc
de faire rfrence cette cellule dans une partie de la formule au lieu de rpter
lensemble de la formule. La formule de Gomtrie1.Y1 et de Gomtrie1.Y7
devient donc :
Dsormais, la flche ncessite uniquement deux formules personnalises
(= Hauteur * 0,5 et = Hauteur * 0,25) pour calculer les sommets. Vous pouvez
galement modifier lapparence de la flche en ne changeant quune formule
(= Hauteur * 0,25).
= haufeu " 0,7S
= haufeu - haufeu " 0,2S
= haufeu - Comf1e1.Y2
98 CHAP I TRE 5
Cont rle du ret ournement et de la rot at ion des f ormes
Lors de la cration des formes, vous pouvez dcider de laisser aux utilisateurs la
possibilit de les retourner ou de les faire pivoter.
Lorsque vous crez une forme, vous devez connatre ds le dpart la manire dont les
utilisateurs vont la retourner ou la faire pivoter, puis crer le comportement
correspondant. La section Transformation de la forme enregistre lorientation dune
forme par rapport son parent. Lorsquun utilisateur retourne ou fait pivoter une
forme, sa section Transformation de la forme prend en compte la transformation qui
a rellement lieu.
Consquences du ret ournement dune f orme
Lorsquune forme est retourne, la valeur de la cellule RetournementX ou
RetournementY devient TRUE. Les coordonnes parent de lorigine de la forme
changent, mais lemplacement de laxe de la forme ne change pas par rapport aux
coordonnes locales ou aux coordonnes parent. Dans la figure suivante, la forme est
pivote afin que vous puissiez constater linteraction qui existe entre les cellules
RetournementX et RetournementY.
Les coordonnes locales dune
forme aprs retournement (valeurs
RetournementX et RetournementY)
ont chang.
A RetournementX = FALSE, RetournementY = FALSE, Angle = 30 deg.
B RetournementX = FALSE, RetournementY = TRUE, Angle = 30 deg.
C RetournementX = TRUE, RetournementY = FALSE, Angle = 30 deg.
D RetournementX = TRUE, RetournementY = TRUE, Angle = 30 deg.
CONTRL E DE L A GOMTRI E DES FORMES L AI DE DE FORMUL ES 99
Si vous crez des formes pouvant tre retournes, vous devez connatre les diffrents
comportements rsultant de chaque mthode employe. Pour retourner une forme,
les utilisateurs peuvent effectuer les oprations suivantes :
Choisir la commande Retournement vertical ou Retournement horizontal dans la
barre doutils Action ou dans le menu Forme.
Dfinir la valeur de la cellule RetournementX ou RetournementY dans la section
Transformation de la forme.
Selon la mthode employe par lutilisateur pour retourner une forme, deux
transformations peuvent avoir lieu :
Lorsque lutilisateur choisit la commande Retournement horizontal de la barre
doutils Action ou du menu Forme, la forme est retourne autour dun trait
vertical sur la page qui passe par laxe de la forme du systme de coordonnes.
La valeur de la cellule RetournementX bascule entre TRUE et FALSE. Si la forme
subit une rotation, la valeur de la cellule Angle devient angle, ce qui entrane une
transformation de la forme, comme le montre la figure suivante.
Lorsque lutilisateur modifie les valeurs de la cellule RetournementX dans la
section Transformation de la forme, et que la valeur de la cellule RetournementX
est paramtre sur TRUE, la forme est retourne lhorizontale par une inversion
de la direction de laxe de la coordonne locale x. La valeur de la cellule Angle nest
pas modifie.
La commande Retournement
horizontal retourne et fait pivoter la
forme.
A Forme dorigine
B Consquence de lutilisation de la commande Retournement horizontal
C Consquence du paramtrage de RetournementX sur TRUE
D Systme de coordonnes sur la page
Lutilisation de la commande Retournement vertical de la barre doutils Action ou du
menu Forme permet dactiver/de dsactiver la valeur de la cellule RetournementY et
de paramtrer la valeur de la cellule Angle sur angle.
100 CHAP I TRE 5
Consquence de la rot at ion dune f orme
Pour faire pivoter une forme, lutilisateur peut faire glisser une poigne de forme avec
loutil Rotation ou utiliser la fentre Taille et position qui comporte un champ Angle
modifiable. (Pour afficher la fentre Taille et position, choisissez Affichage >
Fentres > Taille et position.) Lorsquune forme est pivote, la valeur de sa cellule
Angle dcrit la rotation du systme de coordonnes locales de la forme par rapport au
systme de coordonnes parent.
Une forme pivote autour de son axe : les coordonnes parent de lorigine dune forme
changent paralllement la rotation, mais lemplacement de laxe ne change pas par
rapport aux coordonnes locales ou parent.
REMARQUE : si loption de rotation de page est active, lutilisateur peut faire pivoter la
page de dessin en faisant glisser son angle avec loutil Rotation. Les formes existantes et les
repres peuvent apparatre pivots : en ralit, ils conservent leur position et leur angle par
rapport lorigine de la page. La rotation dune page na aucune incidence sur la page lors
de limpression. Elle ne modifie pas non plus lapparence des rgles et de la grille de la
fentre de dessin.
Loption de rotation de page est active par dfaut dans certains produits Visio. Pour
activer (ou dsactiver) loption de rotation de page, choisissez Outils > Options, cliquez
sur longlet Dessin, puis slectionnez (ou dslectionnez) la case cocher Activer la
rotation des pages.
Une page naffiche pas de section de transformation dans la fentre ShapeSheet

. Vous ne
pouvez donc ni afficher, ni modifier sa cellule Angle comme vous le feriez sil sagissait
dune forme. Toutefois, vous pouvez y accder laide de la proprit PageSheet
dAutomation. Pour plus dinformations sur laccs aux formules par le biais
dAutomation, reportez-vous au chapitre 17, Automatisation des formules .
CONTRL E DE L A GOMTRI E DES FORMES L AI DE DE FORMUL ES 101
Crat ion de f ormes pouvant t re ret ournes et pivot es
Pour que les utilisateurs puissent retourner et faire pivoter une forme, vous devez
la concevoir de manire ce quelle puisse avoir plusieurs angles et orientations. Par
exemple, vous pouvez modifier la manire dont une forme est retourne ou pivote
en dplaant son axe local. Dans la figure suivante, lorsquun utilisateur retourne le
symbole du transistor la verticale, la position de la broche horizontale reste
identique. Lorsque la forme est retourne lhorizontale, la position de la broche
verticale reste identique. Ce comportement permet de positionner correctement les
diffrents transistors dun schma lectrique.
Forme de transistor sans
retournement, aprs retournement
vertical et aprs retournement
horizontal
A Laxe local est align sur les broches verticales et horizontale.
B La broche horizontale ne bouge pas.
C La broche verticale ne bouge pas.
Vous pouvez utiliser loutil Rotation pour dplacer laxe de la forme. Les valeurs AxeX
et AxeY changent. Les formules AxeLocX et AxeLocY changent galement pour
compenser le mouvement de laxe de manire ce que la forme ne bouge pas sur la
page. Vous pouvez galement dplacer laxe en ne changeant que les formules des
cellules AxeLocX et AxeLocY. Vous modifiez ainsi la relation existant entre laxe local
et laxe parent, si bien que la forme est galement dplace sur la page de dessin.
Par exemple, la forme de transistor dcale laxe local par le biais des formules
suivantes :
AxeLocX = Lageu " 0,7S
AxeLocY = haufeu " 0,S
A
B
C
102 CHAP I TRE 5
Certaines formes, telles que le symbole du transistor de lillustration suivante, sont
frquemment pivotes selon un angle multiple de 90 degrs. Lorsque vous crez une
forme de ce type, le rectangle de slection concide avec la grille, et son axe et les
points de connexion se trouvent sur les points de la grille ; la forme est aligne plus
rapidement que dans le cas dune rotation ou dun retournement manuel.
Symbole de transistor destin
tre pivot selon un angle multiple
de 90 degrs
A Le rectangle de slection est un multiple de la grille et laxe se trouve galement sur un point de
la grille.
B Lorsque vous faites pivoter la forme, les points de connexion se trouvent toujours sur les lignes
de la grille.
Pour plus dinformations sur lutilisation des rectangles de slection et de la grille,
reportez-vous au chapitre 11, Rorganisation des formes dun dessin .
Mesure permet t ant dempcher t out ret ournement ou t out e
rot at ion des f ormes
Vous pouvez empcher les utilisateurs de faire pivoter une forme en protgeant la
formule de la cellule Angle :
La forme peut toujours tre retourne, mais toute utilisation de loutil Rotation ou
des commandes Forme > Pivoter est impossible moins que les utilisateurs ne
modifient la formule Angle de la fentre ShapeSheet. Cette technique est simple mais
elle nest pas conseille. Elle peut en effet prter confusion car les poignes de
rotation continuent dapparatre tant que loutil Rotation est actif, de mme que les
commandes Pivoter restent accessibles alors quelles ne sont daucune utilit.
Il est donc prfrable de verrouiller la forme afin dempcher toute rotation en
cochant la case Rotation dans la bote de dialogue Protection (choisissez Format >
Protection) ou en paramtrant la cellule VerrPivoter (dans la section Protection) sur
une valeur non nulle. Lorsque loutil Rotation est actif, des cadenas apparaissent sur
les poignes de rotation de la forme et indiquent donc clairement aux utilisateurs
quelles ne sont pas disponibles lorsque vous protgez la valeur de la cellule Angle.
Ahg1e = PP0TECTT0h|0 deg.)
B
A
CONTRL E DE L A GOMTRI E DES FORMES L AI DE DE FORMUL ES 103
Toutefois, malgr ce verrouillage, la forme peut toujours tre pivote par le biais des
commandes Retournement vertical et Retournement horizontal. Pour empcher tout
retournement dune forme, protgez les formules des cellules RetournementX et
RetournementY :
La bote de dialogue Protection ne fournit aucune option quivalente.
Cont rle des courbes des f ormes
Pour crer une forme aux angles arrondis, vous pouvez appliquer le style
correspondant ou crer un arc. Ce choix dtermine la manire dont la forme est
redimensionne. La figure suivante illustre les rsultats obtenus avec chaque mthode.
Mode de redimensionnement des
formes selon le type dangle utilis
A Ltirement du rectangle aux angles arrondis na aucune incidence sur la courbure de ses
angles.
B Les arcs de cercle peuvent dformer la forme lorsque celle-ci est redimensionne.
C Les arcs dellipse sont redimensionns et lisss en mme temps que la forme. Cependant,
les angles obtenus risquent de ne pas rpondre vos attentes.
Si vous dessinez une forme laide de loutil Crayon, Trait, Arc ou Rectangle, vous
pouvez connecter les segments de droite avec un segment darc dellipse. Lorsque
vous tirez une forme, les sommets de dbut et de fin dune courbe sont gnralement
dplacs proportionnellement. Lutilisation de segments darc cet effet permet de
mieux contrler la forme, car les segments darc ne dpendent pas du style de trait ou
dangle, et les arcs peuvent tre contrls par des formules.
PefouhemehfX = PP0TECTT0h|IALSE)
PefouhemehfY = PP0TECTT0h|IALSE)
A
B C
104 CHAP I TRE 5
Vous pouvez modifier lexcentricit dun arc dellipse afin de conserver son aspect
liss. Un arc de cercle tente dinsrer un cercle entre les sommets de dbut et de fin, ce
qui peut entraner lapparition dune dformation entre une courbe et un trait. Pour
viter ce problme, vous pouvez contrler la courbure de larc par le biais de
formules. Si vous utilisez cette mthode pour crer une forme angles arrondis, la
gamme prdfinie des angles permet un redimensionnement liss.
Ut ilisat ion des st yles dangle arrondi
Lorsque vous utilisez la commande Coins du menu Format, vous appliquez un style
arrondi aux angles dun trait. Vous pouvez crer la forme partir de segments de
droite plutt que dutiliser un ensemble de traits et darcs. Le style dangle ne modifie
pas la gomtrie de la forme, mais uniquement son mode daffichage lcran.
Polygone (A) format avec des
coins arrondis (B), puis
redimensionn (C)
Mme si le redimensionnement dune forme prsentant un style dangle arrondi
se droule selon vos attentes, lutilisation dun autre style de trait spcifiant dautres
attributs dangle (ou aucun attribut) peut nanmoins craser le style dangle arrondi.
Vous pouvez donc tre amen protger le formatage dune forme en paramtrant
sa cellule VerrFormat sur TRUE ou en protgeant la formule de la cellule
Arrondissement dans sa section Format. Pour plus dinformations sur les styles,
reportez-vous au chapitre 10, Gestion des styles, des formats et des couleurs .
Prsent at ion des arcs
Un arc de cercle est une partie dun cercle. Un arc dellipse est une partie dune ellipse.
Un arc dellipse peut sembler circulaire, car un cercle nest quun type spcial dellipse.
Les arcs dessins laide de loutil Arc correspondent toujours un quart dellipse, et
ceux dessins par le biais de loutil Crayon sont une partie dun cercle. Toutefois, ces
deux types darc sont reprsents dans la section Gomtrie en tant quarcs dellipse,
dfinis par les lignes ArcElliptiqueVers. Pour obtenir un vritable arc de cercle, vous
devez paramtrer son type de ligne sur ArcVers dans sa section Gomtrie.
A B C
CONTRL E DE L A GOMTRI E DES FORMES L AI DE DE FORMUL ES 105
Arcs de cercle
Dans un arc de cercle, lampleur de larc correspond la distance entre le point central
de la corde et le point central de larc, comme lindique la figure suivante.
Arc de cercle
La valeur de la courbure est positive si larc est dessin dans le sens inverse des
aiguilles dune montre ; dans le cas contraire, elle est ngative. Le point de contrle
dun arc slectionn se trouve au point central, cest--dire le long de la bissectrice
perpendiculaire de la corde. Si vous tentez de dplacer le point de contrle avec loutil
Crayon, le point se dplace librement mais il reprend toujours sa position le long de la
bissectrice perpendiculaire.
Lorsque vous redimensionnez un arc de cercle, vous modifiez le rayon du cercle dont
fait partie larc. Larc peut tre plat ou bomb, ce qui correspond au comportement de
redimensionnement normal dun cercle. Cependant, ce comportement nest peut-tre
pas adapt vos souhaits. (Pour obtenir un redimensionnement proportionnel, vous
devez utiliser un arc dellipse suivant les indications qui figurent plus loin dans
cette section.)
Redimensionnement dun arc de
cercle
A Lorsque le point de contrle est dplac, la valeur de courbure de larc change.
Par dfaut, tous les arcs crs avec les outils de dessin Visio sont des arcs dellipse.
Pour crer un arc de cercle, vous devez modifier le type de ligne dans la section
Gomtrie.
A Cordes
B Points de contrle
C Courbures
A
B
C
A
A
106 CHAP I TRE 5
Pour crer un arc de cercle :
1 Slectionnez une forme et choisissez Fentre > Afficher la feuille ShapeSheet.
2 Dans la section Gomtrie, slectionnez la ligne TraitVers ou ArcElliptiqueVers
convertir en arc de cercle.
3 Choisissez Edition > Modifier le type de ligne.
4 Slectionnez ArcVers, puis cliquez sur OK.
Le tableau suivant indique la signification des cellules dune ligne ArcVers.
* Les cellules X et Y de la ligne prcdente dans la section Gomtrie dterminent le point de dpart de l arc.
Arcs dellipse
Lorsquun arc dellipse est tir, son excentricit change en fonction de ltirement, si
bien que larc conserve une courbe lisse. Lexcentricit contrle le niveau dasymtrie
de larc.
Arc dellipse
A Axe majeur
B Axe mineur
C Point de contrle
D Angle
Lexcentricit dun arc rsulte de la division de son axe majeur par son axe mineur.
Reprsentation dun arc de cercle dans la section Gomtrie
Ligne Cellule Valeur
Ligne prcdant
la ligne ArcVers*
X Coordonne x du point de dpart
Y Coordonne y du point de dpart
ArcVers X Coordonne x du point de fin
Y Coordonne y du point de fin
A Taille de la courbure de l arc
A
B
C
D
CONTRL E DE L A GOMTRI E DES FORMES L AI DE DE FORMUL ES 107
Vous serez probablement plus souvent amen utiliser un arc dellipse quun arc de
cercle. En effet, la nature intrinsque de larc de cercle limite ses possibilits de
redimensionnement.
REMARQUE : dans les versions antrieures de Visio, une ellipse tait reprsente par deux
lignes ArcElliptiqueVers. Dans Microsoft

Visio

2000, une ellipse est reprsente par une


seule ligne Ellipse.
Pour crer un arc dellipse, procdez de lune des manires suivant es :
Dessinez un arc laide de loutil Crayon ou Arc.
Dans la section Gomtrie, paramtrez sur ArcElliptiqueVers le type de la ligne
TraitVers ou ArcVers convertir en arc dellipse.
Dans la page de dessin, utilisez loutil Crayon pour faire glisser le point de contrle
dune droite. Le trait se transforme ainsi en un arc dellipse.
La gomtrie dun arc dellipse est dcrite dans la ligne ArcElliptiqueVers, comme
lindique le tableau suivant.
* Les cellules X et Y de la ligne prcdente dans la section Gomtrie dterminent le point de dpart de l arc
d ellipse.
Vous pouvez dplacer le point de contrle dun arc dellipse afin de modifier son
excentricit. Une excentricit de 1 correspond un arc de cercle, tandis quune valeur
suprieure ou infrieure 1 correspond un arc plus ou moins excentrique. Par
exemple, dans une ellipse dune largeur de 2 cm et dune hauteur d1 cm, chaque arc
dellipse prsente une excentricit de 2. Dans une ellipse dune largeur d1 cm et dune
hauteur de 2 cm, chaque arc dellipse prsente une excentricit de .
Reprsentation dun arc dellipse dans la section Gomtrie
Ligne Cellule Valeur
Ligne prcdant ArcElliptiqueVers* X Coordonne x du point de dpart
Y Coordonne y du point de dpart
ArcElliptiqueVers X Position x du point de fin
Y Position y du point de fin
A Position x du point de contrle
B Position y du point de contrle
C Angle de l arc
D Excentricit de l arc
108 CHAP I TRE 5
Pour modif ier lexcent ricit dun arc dellipse :
Slectionnez loutil Crayon, puis en maintenant la touche Ctrl enfonce, faites
glisser le point de contrle de manire afficher les poignes dexcentricit que
vous pouvez tirer ou faire pivoter.
Lorsque vous dplacez les poignes dexcentricit dun arc, Visio gnre des formules
dans les cellules C et D de la ligne ArcElliptiqueVers ; ces formules enregistrent
lorientation et la forme actuelles de larc dellipse. Si vous tirez une forme prsentant
des arcs dellipse, Visio modifie au besoin lexcentricit et langle des arcs, de manire
ce que le redimensionnement des arcs soit cohrent avec le reste de la forme.
Conversion des segment s de t rait et darc
Vous pouvez convertir un trait ou un arc dellipse en segment darc de cercle en
modifiant le type de la ligne correspondante dans la section Gomtrie. Vous pouvez
galement modifier les segments de trait et darc laide de divers outils de dessin.
Pour changer un t rait ou un arc dellipse en un arc de cercle dans la f ent re
ShapeSheet :
Cliquez avec le bouton droit sur la ligne TraitVers ou ArcElliptiqueVers dans la
section Gomtrie qui correspond au segment modifier. Dans le menu
contextuel, choisissez loption de modification du type de ligne, puis ArcVers.
Vous pouvez galement slectionner la ligne, puis choisir Edition > Modifier le
type de ligne et enfin cliquer sur ArcVers.
Pour changer un t rait en un arc dellipse sur la page de dessin :
Slectionnez loutil Crayon, pointez sur le point de contrle du segment de trait,
puis faites glisser votre souris de manire former un arc.
Pour changer un arc dellipse ou de cercle en une droit e sur la page de
dessin :
Slectionnez loutil Crayon, pointez sur le point de contrle de larc, puis faites
glisser votre souris jusqu ce que larc se prsente sous la forme dune droite.
REMARQUE : le changement de type de ligne peut modifier le plan largeur/hauteur dune
forme et craser les formules de conservation des proportions ou celles calcules sur la base
de la hauteur. Cest pourquoi vous pouvez tre amen paramtrer VerrCalcLH sur
TRUE dans la section Protection avant de modifier le type dune ligne.
CONTRL E DE L A GOMTRI E DES FORMES L AI DE DE FORMUL ES 109
Formules darc ut iles
Vous pouvez contrler le comportement de redimensionnement des arcs de cercle
laide de formules qui calculent la courbure et le rayon de larc.
Calcul de la courbure partir du rayon et de langle
Si vous connaissez le rayon dun arc et langle sous-tendu par ArcVers, vous pouvez
calculer la courbure laide de lquation suivante :
|Arc| = rayon * (1 - COS(angle/2))
Si la courbure est nulle, larc se prsente sous la forme dune droite. Vous pouvez
utiliser cette quation pour nimporte quelle forme, ouverte ou ferme, afin de crer
des angles arrondis prsentant un angle donn, comme lindique la figure suivante.
Lutilisation darcs de cercle prsente lavantage de permettre un redimensionnement
liss des angles. Par exemple, si vous savez que le rayon est de 2 pouces et langle de
45 degrs, sur la ligne ArcVers de la section Gomtrie, saisissez la formule suivante :
Utilisation dun segment darc de
cercle pour un angle arrondi
A Angle de 90
B Rayon
Dans une forme telle quun rectangle, dans laquelle la valeur de langle ne change pas
(90 degrs), vous pouvez rsumer une partie de la formule une constante. Si langle
est toujours de 90 degrs, (1COS(angle/2)) = 0,2929, vous pouvez saisir la formule
suivante :
Lutilisation de cette constante permet dacclrer le traitement mais limite les
possibilits si vous dcidez ensuite de changer langle. Pour plus dinformations sur la
cration dangles arrondis, reportez-vous la section Utilisation des styles dangle
arrondi , page 104.
Comf1eh.Ah = 2 po. " |1 - C0S|4S deg. /2))
Comf1eh.Ah = ayoh " 0,2929
A
B
110 CHAP I TRE 5
Calcul du rayon partir de la courbure
Si vous connaissez la courbure dun arc, vous pouvez calculer son rayon. Pour ce faire,
recherchez lampleur de la corde, cest--dire la distance sparant le point de dpart et
le point de fin de larc. Dans la formule suivante, les coordonnes X1, Y1 reprsentent
le point de dpart de larc, et les coordonnes X2, Y2 le point de fin. La longueur de la
corde est donc la suivante :
LongueurCorde = RACINE( (Y2 Y1) ^2 + (X2 - X1)^2 )
Le rayon est le suivant :
rayon = (4 * Arc
2
+ Corde
2
) / (8 * Arc)
Opt imisat ion de la gomt rie dune f orme
Les formes gomtrie simple donnent de meilleurs rsultats que les formes
gomtrie complexe. Une forme dont la section Gomtrie comporte peu de lignes
permet dobtenir un rendu plus rapide quune forme en comportant un grand
nombre. De mme, une forme comportant une seule section Gomtrie permettra
dobtenir un rendu plus rapide quune forme en comportant plusieurs. Si vous navez
pas besoin de contrler les sommets dune forme laide de formules, pensez
simplifier sa gomtrie. Voici quelques suggestions de simplification.
Plutt que de crer une forme plusieurs chemins, ignorez certains segments dans
un chemin unique en convertissant les lignes TraitVers en DplacerVers. La
section Gomtrie dune forme commence toujours par une ligne DplacerVers,
mais aprs le premier segment, elle peut comporter autant de lignes de ce type que
ncessaire.
Regroupez plusieurs segments de trait dans une seule ligne PolyligneVers. Les
cellules X et Y de cette ligne dfinissent les coordonnes x,y du point de fin ;
toutefois, une seule formule POLYLIGNE dfinit lensemble des sommets entre le
point de dpart et le point de fin de la forme.
Toute forme comportant plus de trois ou quatre segments donne de meilleurs
rsultats quune ligne PolyligneVers. Toutefois, il est plus facile de considrer la
gomtrie dune forme comme une srie de lignes TraitVers dans une section
Gomtrie plutt que comme une srie darguments dans une fonction. Vous
pouvez convertir une ligne PolyligneVers en plusieurs lignes TraitVers en cliquant
avec le bouton droit sur la ligne dans la section Gomtrie et en choisissant
Dvelopper la ligne.
CONTRL E DE L A GOMTRI E DES FORMES L AI DE DE FORMUL ES 111
Une formule POLYLIGNE peut contenir des rfrences de cellule ou des
expressions. Ds quun utilisateur modifie la forme laide de loutil Crayon, Visio
rgnre la formule, en remplaant les rfrences de cellule et les expressions par
des constantes. Pour viter ce remplacement, verrouillez la forme afin de la
protger contre toute modification.
Visio 2000 cre automatiquement des lignes PolyligneVers lors de limportation de
fichiers DWG. Pour plus dinformations sur les lignes PolyligneVers et sur les
formules POLYLIGNE, reportez-vous laide en ligne Rfrence du dveloppeur
(accessible via ? (Aide) > Rfrence du dveloppeur) fournie avec Visio.
REMARQUE : loutil Dessin main leve cre dsormais des NURBS (nonuniform
rational B-splines). Dans les anciennes versions des produits Visio, loutil Dessin main
leve crait des splines. Pour des raisons de compatibilit en amont, Visio 2000 prend
donc en charge les lignes de type spline.
Limit at ion du comport ement dune f orme laide de verrouillages
La plupart des actions de la page de dessin modifient les formules dune forme et
peuvent ainsi avoir une incidence sur son comportement et ses formules
personnalises. Vous pouvez dfinir des contraintes pour le comportement dune
forme, appeles verrous, qui protgent la page de dessin contre certaines actions.
Prenez lexemple dun piano queue. Il existe diffrents formats de pianos.
Cependant, ils ont tous une caractristique commune : les cordes les plus courtes sont
toujours sur votre droite lorsque vous faites face au clavier. Pour prserver cette
caractristique, vous pouvez verrouiller la forme dun piano queue afin dempcher
tout retournement horizontal. Un utilisateur peut toujours faire pivoter la forme du
piano (comme sil poussait un vrai piano travers une pice) mais il ne peut pas la
retourner.
Lune des mthodes les plus simples de protection des formes consiste dfinir les
cellules de verrouillage dans la section Protection de la fentre ShapeSheet

. Certaines
cellules de cette section correspondent aux options de la bote de dialogue accessible
via Format > Protection ; dautres ne peuvent tre dfinies que dans la fentre
ShapeSheet. Pour plus dinformations sur les cellules de la section Protection,
reportez-vous laide en ligne Rfrence du dveloppeur (choisissez ? (Aide) >
Rfrence du dveloppeur) fournie avec Visio.
112 CHAP I TRE 5
La dfinition de verrouillages permet dviter toute modification fortuite dune
forme. Par exemple, si vos formes reprsentent des lments dont les dimensions sont
standard, par exemple du matriel de construction, vous pouvez verrouiller leurs
poignes de redimensionnement car les utilisateurs ne doivent pas tre en mesure
dtirer les formes dans toutes les directions. Lorsquun verrouillage est dfini, un
cadenas apparat la place de certaines poignes de slection sur la forme, ce qui
indique que la fonction correspondante ne peut pas tre modifie.
Le paramtrage de verrouillages se
traduit par des informations
visuelles. Les cadenas (A) indiquent
que vous ne pouvez pas
redimensionner la forme.
Pour verrouiller une fonction, paramtrez sur un nombre non nul la cellule
approprie dans la section Protection. Pour dverrouiller une fonction, saisissez 0
dans la cellule.
Le fait de dfinir des verrouillages na aucune incidence sur les commandes actives et
nempche pas la modification des autres formules. Par exemple, si vous verrouillez la
largeur et la hauteur dune forme appartenant un groupe, puis que vous modifiiez
lchelle du groupe, la largeur et la hauteur de la forme peuvent changer. Si vous
dfinissez un verrouillage, ce verrouillage ne porte que sur la modification de lchelle
de la forme laide de la souris. Pour plus dinformations sur le contrle des actions
autorises sur les groupes, reportez-vous au chapitre 6, Regroupement et fusion de
formes .
REMARQUE : vous pouvez galement utiliser la fonction PROTECTION de vos formules
personnalises afin dempcher leur crasement par un utilisateur ou par le programme
Visio. La fonction PROTECTION et les verrouillages de protection protgent vos formes
de deux manires diffrentes et complmentaires. La fonction PROTECTION empche
toute modification des formules mais autorise lexcution dactions utilisateur. En
revanche, si vous dfinissez des verrouillages dans la section Protection, les actions
utilisateur sont impossibles, mais les formules de cellule ne sont pas protges.
Par exemple, si vous paramtrez la formule Largeur dune forme sur = PROTECTION
(5 picas), les utilisateurs peuvent faire glisser les poignes de slection latrales de la forme
afin de ltirer, mais la forme retrouve sa largeur initiale ds que Visio recalcule sa
formule Largeur. En revanche, si vous paramtrez la cellule VerrLargeur sur TRUE (1),
les utilisateurs ne peuvent pas faire glisser les poignes de slection latrales.
Pour plus dinformations sur la fonction PROTECTION, reportez-vous la section
Conception de formules Visio , page 80.
A
Sommaire
6
Regroupement et f usion de f ormes
Vous pouvez regrouper ou fusionner des formes afin de crer des formes gomtrie
complexe, ou de contrler le comportement de plusieurs formes. La mthode choisie
dtermine le mode dutilisation des formes et les rsultats obtenus.
Ce chapitre prsente les principaux lments qui distinguent les formes regroupes
des formes fusionnes. Il indique galement la manire dont vous pouvez crer des
groupes et des formes fusionnes, ou contrler le comportement de formes
fusionnes ou de groupes par le biais de formules ShapeSheet

.
Diffrences entre formes regroupes et formes fusionnes.............................. 114
Cration et contrle des groupes.......................................................................... 115
Contrle du comportement des groupes............................................................. 118
Protection du formatage des formes figurant dans des groupes ...................... 126
Cration et contrle des formes fusionnes........................................................ 126
114 CHAP I TRE 6
Dif f rences ent re f ormes regroupes et f ormes f usionnes
Les formes regroupes et fusionnes nont pas le mme comportement. Cette
diffrence doit guider votre choix entre formes regroupes et formes fusionnes.
Contexte dutilisation des groupes
Cration dune forme complexe contenant plusieurs blocs de texte, ou prsentant
plusieurs styles ou formats
Conservation des formules personnalises pour chacune des formes composant
le groupe
Mise la disposition des utilisateurs de fonctions de slection et de modification
des formes dans une forme complexe
Contexte dutilisation des formes fusionnes
Regroupement de formes en une seule forme dont la fusion ne peut pas tre
annule par lutilisateur
Cration dune forme rpondant plus rapidement quun groupe aux actions des
utilisateurs
Cration dune forme comportant des sections Gomtrie qui peuvent tre
masques ou affiches selon certains critres
Cration dune forme dont le remplissage peut contenir des zones transparentes
Caractristiques des groupes
Un groupe peut tre dissoci. Vous obtenez ainsi de nouveau des formes
indpendantes.
Un groupe permet de dplacer ou de redimensionner plusieurs formes
simultanment, tout en conservant leurs attributs de formatage propres, y compris
les formules personnalises.
Vous pouvez appliquer divers styles et formats de texte aux formes du groupe.
Les formes dun groupe peuvent tre slectionnes, puis directement dplaces ou
redimensionnes.
Chaque forme conserve sa propre feuille de calcul ShapeSheet, mais le groupe
possde galement sa propre feuille de calcul ShapeSheet.
Caractristiques des formes fusionnes
Une forme fusionne peut tre reprsente par une seule interface ShapeSheet
contenant plusieurs sections Gomtrie.
Une forme fusionne crase les formules personnalises des formes.
Une forme fusionne se limite un seul bloc de texte et un seul jeu dattributs de
formatage.
REGROUP EMENT ET FUSI ON DE FORMES 115
Crat ion et cont rle des groupes
Vous pouvez tre amen crer un groupe lorsque vous disposez de plusieurs formes
que vous souhaitez dplacer et redimensionner simultanment, tout en conservant
leurs attributs de formatage propres et leurs divers blocs de texte. Lorsque vous
regroupez des lments, une nouvelle feuille de calcul ShapeSheet

est cre pour le


groupe. Chaque membre du groupe conserve sa propre feuille de calcul ShapeSheet et
le groupe devient le systme de coordonnes parent de chaque lment initial. En
outre, les formules des formes du groupe, telles que les valeurs Point de fin 1D ou
Transformation de la forme, sont modifies afin de faire rfrence au groupe et non
plus la page.
Les groupes peuvent contenir des
formes prsentant divers attributs
de formatage.
Regroupement et dissociat ion de f ormes
Il peut tre judicieux de regrouper des formes avant dajouter des points de connexion
ou de dfinir des formules personnalises, car ces lments doivent gnralement faire
rfrence au groupe pour fonctionner correctement.
Pour crer un groupe, slectionnez des formes, puis choisissez Forme > Groupes >
Grouper pour regrouper plusieurs formes ou plusieurs groupes dans une nouvelle
forme Microsoft

Visio

dont les composants peuvent nanmoins tre modifis et


formats sparment.
Pour dissocier un groupe, slectionnez-le, puis choisissez Forme > Groupes >
Dissocier.
116 CHAP I TRE 6
Modif icat ion dun groupe
Les utilisateurs peuvent ajouter des formes un groupe ou en supprimer. Dans
certains cas, il est prfrable de pouvoir modifier un groupe. Dans dautres, selon la
solution que vous dveloppez, une modification peut empcher les formes de
fonctionner correctement. Vous pouvez interdire toute modification dun groupe en
paramtrant la cellule VerrGroupe sur TRUE dans la section Protection de la feuille
de calcul ShapeSheet du groupe.
Les utilisateurs peuvent ajouter des lments aux groupes non verrouills de deux
manires :
En dsignant le groupe dans lequel les formes seront insres et en indiquant les
formes ajouter un groupe laide de la souris, puis en faisant glisser la forme et
en linsrant dans le groupe. Pour choisir le groupe dans lequel les formes vont tre
insres, slectionnez Accepter les formes insres dans la section Comportement
des groupes de la bote de dialogue Comportement, ou saisissez TRUE dans la
cellule CibleADposer de la section Proprits de groupe dans la feuille du groupe.
Pour identifier la forme ajouter un groupe laide de la souris, slectionnez
Ajouter la forme aux groupes l'insertion dans la section Divers de la bote de
dialogue Comportement, ou saisissez TRUE dans la cellule SourceDpt de la
section Divers dans la feuille de la forme.
En choisissant Forme > Groupes > Ajouter au groupe lorsque le groupe et les
formes qui vous souhaitez y ajouter sont slectionns.
Pour supprimer une forme dun groupe, les utilisateurs peuvent slectionner la
forme, puis choisir Forme > Groupes > Enlever du groupe. Lorsque vous slectionnez
une forme et que vous la supprimez, elle disparat galement du groupe.
Incidence du regroupement de f ormes sur leurs f ormules
Lorsque vous ajoutez une forme un groupe, le systme de coordonnes parent
correspondant change et passe du systme de coordonnes de la page celui du
groupe. Lorsque vous dissociez des formes ou que vous supprimez la dernire forme
dun groupe, le groupe nest plus le parent. La feuille de calcul ShapeSheet du groupe
est supprime. Les formules faisant rfrence aux coordonnes parent changent
lorsque vous regroupez ou dissociez la forme ; les formules personnalises que vous
dfinissez pour une forme risquent dtre supprimes.
REGROUP EMENT ET FUSI ON DE FORMES 117
Le tableau suivant indique les cellules auxquelles sont appliques de nouvelles
formules lorsque vous regroupez et dissociez des formes.
Lorsque vous regroupez des formes connectes dautres formes, les connexions sont
conserves, sauf si une forme na pas (ou plus, la suite du regroupement) le mme
parent que le repre auquel elle est connecte. Si une forme est colle un repre et
que vous ajoutiez un groupe la forme et non le repre, la connexion de la forme au
repre est interrompue. La situation inverse se vrifie galement : si vous ajoutez un
repre un groupe, sans ajouter les formes colles ce repre, les connexions reliant
ces formes aux repres sont interrompues. Si vous incluez les formes et le repre
auquel elles sont colles, le moteur Visio conserve les connexions.
Type de modification subie par les formules aprs regroupement ou dissociation
dune forme
Section Cellule Consquence
Transformation
de la forme
Largeur, Hauteur Aprs le regroupement, les formules font
rfrence au groupe pour dfinir la taille de la
forme par rapport celle du groupe. Aprs la
dissociation, les formules font rfrence la
largeur et la hauteur du nouveau parent, ou ne
changent pas si le nouveau parent est une page.
Les formules protges par la fonction
PRO TECTI O N ne subissent aucune modification.
Transformation
de la forme
AxeX, AxeY Les formules calculent les coordonnes d axe sur
la base du systme de coordonnes du groupe ou
du nouveau parent. Aprs le regroupement, les
formules dfinissent l emplacement de l axe par
rapport la largeur et la hauteur du groupe.
Points de fin 1D DpartX,
DpartY, FinX,
FinY
Les formules calculent les coordonnes des
points de dpart et de fin sur la base du systme
de coordonnes du parent. Aprs le
regroupement, les formules dfinissent la position
des points de fin par rapport la largeur et la
hauteur du groupe.
Alignement [toutes les
cellules]
Aprs le regroupement, les formules calculent la
position du repre d alignement sur la base des
coordonnes du groupe ou du nouveau parent.
118 CHAP I TRE 6
Cont rle du comport ement des groupes
Si vous crez des formes pour une solution personnalise, vous pouvez contrler avec
prcision les diffrents aspects du comportement dun groupe. Par exemple, vous
pouvez empcher les utilisateurs de slectionner des lments du groupe ou de
redimensionner des formes.
Lorsque vous utilisez des formules dans des formes regroupes, vous pouvez utiliser
des coordonnes locales, des coordonnes parent ou des coordonnes sur la page,
comme lindique lillustration suivante. Pour dfinir plusieurs comportements de
redimensionnement pour une forme appartenant un groupe, vous pouvez tre
amen convertir des coordonnes dun systme un autre.
Forme appartenant un groupe
dans le systme de coordonnes
Visio
A Coordonnes sur la page
B Coordonnes parent
C Coordonnes locales
Cont rle du mode de slect ion des groupes
Le moteur Visio prend en charge trois types de comportement pour la slection
de groupes :
Slection du groupe uniquement (les membres du groupe ne peuvent pas tre
slectionns)
Slection du groupe en premier (en cliquant une seconde fois, vous slectionnez le
membre du groupe)
Slection du membre du groupe en premier (en cliquant une seconde fois, vous
slectionnez lensemble du groupe)
En outre, vous pouvez empcher le dplacement des enfants immdiats dun groupe
en paramtrant sur TRUE la cellule PasDplacEnfants de la section Proprits
de groupe.
REGROUP EMENT ET FUSI ON DE FORMES 119
Vous pouvez dfinir le comportement de slection de vos formes regroupes en
modifiant le paramtrage de la cellule ModeSlection dans la section Proprits de
groupe de la feuille du groupe. Dans le cas de groupes imbriqus, le comportement de
slection appliqu est celui du groupe slectionn.
REMARQUE : si vous cliquez rapidement deux fois de suite sur un lment, cette opration
peut tre considre comme un double-clic et risque douvrir la zone de texte du groupe
plutt que de slectionner la forme suivante selon lordre de slection. Pour viter ce
problme, observez une brve pause entre les deux clics.
Df init ion du comport ement de redimensionnement des
f ormes regroupes
Lorsque vous dfinissez le comportement de redimensionnement dun groupe,
vous ne devez pas oublier que la taille et la position des membres du groupe peuvent
changer dans le groupe. Lorsquun groupe est redimensionn, les formes qui le
composent sont gnralement tires et repositionnes afin de conserver les
proportions du systme de coordonnes du groupe. Toutefois, certaines formes
reprsentent des objets dont les dimensions physiques sont fixes. Lorsque la taille du
groupe change, vous pouvez choisir de changer la position de ces formes, sans que
leur taille ou leurs proportions soient modifies. Vous pouvez souhaiter, lors du
redimensionnement dun groupe, que certaines formes soient redimensionnes et
dautres non. Les cellules ModeRedim des sections Transformation de la forme des
formes appartenant au groupe contrlent leur comportement de
redimensionnement.
Par exemple, dans la figure suivante, le groupe Ilot cuisine contient un plan de travail,
une cuisinire et un vier. La cuisinire et lvier reprsentent des objets physiques
dont les dimensions sont standard. Ils ne peuvent donc pas tre redimensionns avec
llot. En revanche, un plan de travail peut prsenter nimporte quel format et doit tre
redimensionn en mme temps que llot.
Paramtres ModeSlection de la section Proprits de groupe
Valeur Description
0 Cliquez dessus pour slectionner uniquement le groupe. Cliquez de nouveau
dessus pour le dslectionner.
1 Cliquez dessus pour slectionner le groupe en premier. Cliquez de nouveau
dessus pour slectionner les membres du groupe. Pour reslectionner le groupe,
vous devez d abord le dslectionner. (Paramtre par dfaut).
2 Cliquez dessus pour slectionner un membre du groupe en premier. Cliquez de
nouveau dessus pour slectionner le groupe. Si le groupe comporte plusieurs
formes empiles, cliquez de nouveau dessus pour slectionner la forme suivante
dans l ordre de la pile, puis pour slectionner le groupe.
120 CHAP I TRE 6
A Groupe dorigine
B Par dfaut, les formes sont toutes redimensionnes en mme temps que le groupe. Dans le cas
de formes aux dimensions fixes (par exemple, un vier ou une cuisinire), ce comportement pose
problme.
C Pour repositionner lvier et la cuisinire plutt que de les redimensionner, saisissez la valeur 1
dans la cellule ModeRedim dans les feuilles de ces formes.
Vous pouvez contrler le comportement de redimensionnement dune forme ou dun
groupe laide de la cellule ModeRedim (section Transformation de la forme).
Pour contrler le comportement dune forme en cas de redimensionnement du
groupe, dfinissez la valeur ModeRedim de la forme. Pour contrler le mode de
redimensionnement dun groupe imbriqu dans un autre, dfinissez la valeur
ModeRedim du groupe. Dans lexemple prcdent, paramtrez la valeur ModeRedim
sur 1 pour lvier, puis regroupez lvier et le plan de travail. Le tableau suivant
prsente les options de redimensionnement disponibles.
Pour changer de comportement de redimensionnement, vous devez modifier la
forme du plus haut niveau. Par exemple, dfinissez le comportement de
redimensionnement de la cuisinire plutt que de dfinir celui de chaque brleur.
Pour empcher les utilisateurs de redimensionner malencontreusement une forme
appartenant un groupe, paramtrez la valeur ModeRedim sur 1. Paramtrez
galement VerrLargeur et VerrHauteur sur 1 dans la section Protection. Si vous
verrouillez la largeur, la hauteur ou le rapport hauteur/largeur dune forme, puis que
vous ajoutiez la forme un groupe, le comportement de redimensionnement de la
forme est prioritaire par rapport aux ventuels verrouillages dfinis pour le groupe.
Paramtres ModeRedim de la section Transformation de la forme
Valeur Description
0 La forme est redimensionne en fonction du paramtre M odeRedim du groupe.
Correspond l option Utiliser les paramtres du groupe de la bote de dialogue
Comportement. (Paramtre par dfaut)
1 La forme conserve sa taille lorsque le groupe est tir ; seul son emplacement
dans le groupe change. Correspond l option Repositionner seulement de la
bote de dialogue Comportement.
2 La forme est redimensionne proportionnellement lorsque le groupe est tir.
Correspond l option M ettre l' chelle avec le groupe de la bote de dialogue
Comportement.
A
B C
REGROUP EMENT ET FUSI ON DE FORMES 121
Redimensionnement des f ormes dans un seul sens
Lorsque vous voulez contrler le mode de redimensionnement dun groupe, vous
pouvez personnaliser le comportement de redimensionnement des formes laide de
formules. Par exemple, le cube de la figure suivante est un groupe compos de trois
formes : la premire correspond lavant du cube, la deuxime au dessus et la
dernire au ct. Chacune delles prsente un comportement de redimensionnement
diffrent. Lorsque vous redimensionnez lavant, sa largeur et sa hauteur sont tires
proportionnellement. En revanche, seules la hauteur du dessus et la hauteur du ct
stirent. Ainsi, la forme conserve son aspect 3D lors de ltirement.
Le dessus et le ct du cube
stirent uniquement dans un sens
lors du redimensionnement.
Deux techniques principales permettent dobtenir ce type de comportement de
redimensionnement dans un groupe :
Attribuez une valeur constante aux dimensions de la forme non
redimensionnable, et donnez la forme redimensionnable ses dimensions au sein
du groupe.
Dplacez laxe dune forme vers lorigine dans son systme de coordonnes locales
(cest--dire vers langle infrieur gauche des axes x et y locaux). Dfinissez ensuite
laxe parent de la forme par rapport la largeur ou la hauteur du groupe, de
manire ce que lemplacement de la forme soit toujours fixe par rapport au
groupe. Sinon, la forme est dplace sur la base du systme de coordonnes parent
lorsque le groupe est redimensionn.
Dans le cas du cube, la hauteur du dessus et la largeur du ct sont des valeurs
constantes, car elles ne doivent pas tre modifies par le redimensionnement du
groupe. La largeur du dessus est dfinie par rapport la largeur du groupe : le dessus
peut donc tre redimensionn dans le sens de la largeur. De mme, la hauteur du ct
est dfinie par rapport la hauteur du groupe : le ct peut donc tre redimensionn
dans le sens de la hauteur.
La forme de lavant dfinit le rectangle de slection du groupe car sa taille et sa
position dterminent celles du dessus et du ct. Laxe parent dfinit la position de
chaque forme sur le ct correspondant du rectangle de slection du groupe. Pour le
dessus, la coordonne x de laxe parent est de 0 po. et la coordonne y est identique
la hauteur du groupe. Pour le ct, la coordonne x de laxe parent est gale la
largeur du groupe et sa coordonne y est de 0 po.
122 CHAP I TRE 6
La relation existant entre la largeur et la hauteur des formes, et entre la hauteur et la
largeur du groupe est on ne peut plus vidente si vous dessinez la forme sans sommet
avec angle, comme dans la figure suivante.
Vue clate de la forme du cube
A Axe
B <ID la feuille du groupe>!Hauteur
C <ID la feuille du groupe>!Largeur
Exemple de crat ion dun cube
A laide des techniques dcrites dans la section prcdente, vous pouvez attribuer
une forme le comportement de redimensionnement du cube. Une forme dfinit le
rectangle de slection du groupe, et la position de chacune des formes est fixe par
rapport ce rectangle. En outre, les formes ne sont redimensionnes que dans un sens
lors du redimensionnement du groupe.
Pour dessiner le groupe cube, procdez comme suit :
Dfinissez le rectangle de slection personnalis du groupe : dessinez dabord
lavant du cube, regroupez-le, puis verrouillez le rectangle de slection.
Esquissez les formes du dessus et du ct sous la forme de simples rectangles, puis
ajoutez-les au groupe.
Modifiez les sommets du dessus et du ct pour leur donner un aspect 3D.
Personnalisez les formules Largeur, Hauteur et Axe des formes du dessus et du
ct afin de contrler leur comportement de redimensionnement.
REGROUP EMENT ET FUSI ON DE FORMES 123
Comme lindique la figure suivante, le sommet 2 du dessus et le sommet 3 du ct
sont inclins. La position y du sommet 2 du dessus correspond la hauteur de cette
forme. La position x du sommet 3 du ct correspond la largeur de cette forme.
La hauteur du dessus et la largeur des cts sont dfinies par une valeur constante
de 0,125 po. En ajoutant cette constante aux formules de sommet appropries,
les formes sont inclines.
Coordonnes locales
des formes du cube
A Coordonnes locales du groupe
B Hauteur = 0,125 po.
C Largeur + 0,125 po.
D Hauteur + 0,125 po.
E Largeur = 0,125 po.
Pour dessiner le cube en t ant que groupe :
1 Utilisez loutil Rectangle pour dessiner et mettre en place des cases rectangulaires
reprsentant lavant, le dessus et le ct. A ce stade, vous navez pas vous soucier
de donner au dessus et au ct un aspect 3D.
2 Slectionnez uniquement lavant, puis regroupez-le.
3 Slectionnez le groupe, choisissez Fentre > Afficher la feuille ShapeSheet, puis
paramtrez sur 1 la formule de la cellule VerrCalcLH dans la section Protection.
Le rectangle de slection de lavant est protg. Sinon, le rectangle de slection du
groupe sagrandit lorsque vous ajoutez les formes du dessus et du ct.
124 CHAP I TRE 6
4 Slectionnez le groupe. Choisissez Edition > Ouvrir Grouper pour ouvrir la fentre
de groupe. Slectionnez ensuite le dessus et le ct sur la page de dessin, puis
faites-les glisser dans la fentre de groupe afin de les ajouter au groupe.
5 Dans la fentre ShapeSheet

du groupe, choisissez Insertion > Section, puis ajoutez


une section Montage. Dans la section Montage, saisissez les formules suivantes :
Montage.X1 dfinit une constante qui dtermine la largeur du ct. Montage.Y1
dfinit une constante qui dtermine la profondeur du dessus.
6 Dfinissez les formes du dessus et du ct de manire ce quelles fassent rfrence
aux constantes dfinies dans la fentre ShapeSheet du groupe.
Pour ce faire, dans la fentre de groupe, slectionnez la forme du dessus, choisissez
Fentre > Afficher la feuille ShapeSheet, puis ajoutez une section Montage.
Procdez de mme pour la forme du ct. Dans les sections Montage du dessus et
du ct, saisissez les formules suivantes :
Vous devez indiquer dans ces formules lID du groupe. Par exemple, si lID du
groupe est Feuille.4, la formule de la cellule X1 est la suivante :
Feuille.4!Montage.X1.
7 Dfinissez linclinaison des sommets des formes du dessus et du ct.
Pour ce faire, personnalisez les formules dans la section Gomtrie, comme
lindiquent les tableaux suivants.
Mohfage.X1 = 0,S po.
Mohfage.Y1 = 0,S po.
Mohfage.X1 = <T0 de feu111e de goupe>!Mohfage.X1
Mohfage.Y1 = <T0 de feu111e de goupe>!Mohfage.Y1
Formules personnalises dans la section Gomtrie de la forme du dessus
Ligne (DplacerVers) X Y
1 |0paf) = 0 po. = 0 po.
2 |Ta1fves) = Mohfage.X1 = haufeu
3 |Ta1fves) = Lageu + Mohfage.X1 = haufeu
4 |Ta1fves) = Lageu = 0 po.
S |Ta1fves) = Comf1e1.X1 = Comf1e1.Y1
REGROUP EMENT ET FUSI ON DE FORMES 125
8 Dfinissez le comportement de redimensionnement des formes du dessus et
du ct.
Pour ce faire, personnalisez les formules Largeur, Hauteur et Axe dans la section
Transformation de la forme. Pour le dessus, utilisez ces formules :
Dans la section Transformation de la forme du ct, utilisez ces formules :
9 Pour empcher les utilisateurs de slectionner les formes sparment, saisissez 0
dans la cellule ModeSlection de la section Proprits de groupe de la feuille
du cube.
Formules personnalises dans la section Gomtrie de la forme du ct
Ligne
(DplacerVers) X Y
1 |0paf) = 0 po. = 0 po.
2 |Ta1fves) = 0 po. = haufeu
3 |Ta1fves) = Lageu = haufeu + Mohfage.Y1
4 |Ta1fves) = Lageu = Mohfage.Y1
S |Ta1fves) = Comf1e1.X1 = Comf1e1.Y1
Lageu = <T0 de feu111e du goupe>!Lageu
haufeu = Mohfage.Y1
AxeX = 0 po.
AxeY = <T0 de feu111e du goupe>!haufeu
AxeLocX = PP0TECTT0h|0 po.)
AxeLocY = PP0TECTT0h|0 po.)
Lageu = Mohfage.X1
haufeu = <T0 de feu111e du goupe>!haufeu
AxeX = <T0 de feu111e du goupe>!Lageu
AxeY = PP0TECTT0h|0 po.)
AxeLocX = PP0TECTT0h|0 po.)
AxeLocY = 0 po.
126 CHAP I TRE 6
Prot ect ion du f ormat age des f ormes f igurant dans des groupes
Lorsque vous appliquez un formatage local un groupe en choisissant une
commande dans le menu Format, ce mme format est appliqu lensemble des
formes du groupe. Le formatage appliqu au groupe remplace tout formatage local
des formes du groupe ; si vous utilisez des formules pour modifier le formatage des
formes, ces formules sont galement crases. Pour viter cette suppression, vous
pouvez effectuer les oprations suivantes :
Protger certaines cellules de formatage laide de la fonction PROTECTION.
Verrouiller un groupe afin dempcher toute modification de formatage.
Interdire ou autoriser lapplication de styles aux formes dune forme de base.
Pour interdire toute modification de certaines formules lorsquun utilisateur dfinit le
format local dune forme, utilisez la fonction PROTECTION.
Vous pouvez verrouiller un groupe afin dempcher tout formatage laide de la
cellule VerrFormat dans la section Protection de la feuille du groupe. Ce verrouillage
empche tout utilisateur dappliquer un style ou un format local au groupe. Sil fait
une tentative, le message qui apparat indique que laction nest pas autorise.
Lorsque vous verrouillez un groupe afin dempcher tout formatage, vous pouvez
nanmoins slectionner les formes quil contient et changer chaque format moins
que vous nayez dfini la cellule VerrFormat pour chacune des formes du groupe.
Vous pouvez galement verrouiller les formes au cas par cas afin que seules certaines
dentre elles puissent tre reformates par les utilisateurs.
Crat ion et cont rle des f ormes f usionnes
Une forme fusionne prsente toutes les sections ShapeSheet

standard dune forme


classique. En revanche, la forme fusionne contient plusieurs sections Gomtrie (une
par chemin) au lieu dune seule. Comme vous nutilisez quune feuille de calcul
ShapeSheet, la dfinition dattributs dans une forme fusionne comportant plusieurs
gomtries est donc beaucoup plus efficace que dans des formes regroupes, o
chaque forme possde sa propre feuille de calcul ShapeSheet.
Lorsquune forme possde plusieurs sections Gomtrie, vous pouvez dcider de
masquer ou dafficher chacune delles sur la base de certains critres. Par exemple,
vous pouvez masquer un chemin de la forme lorsquun autre est vide, puis le rendre
visible une fois que le second chemin est plein.
REGROUP EMENT ET FUSI ON DE FORMES 127
Une forme fusionne ne comporte quun bloc de texte et un jeu dattributs de
formatage, comme lindique la figure suivante. Si vous fusionnez plusieurs formes
contenant du texte ou un formatage spcial, la forme fusionne utilise le texte et le
formatage de la premire forme slectionne.
Lorsque vous fusionnez des formes
prsentant divers formats et
libells, la forme que vous obtenez
utilise le libell et les attributs de la
premire forme slectionne. Les
poignes de slection du premier
objet slectionn sont vertes, alors
que celles des objets slectionns
par la suite sont bleues.
Fusion de f ormes
Pour crer une forme unique plusieurs sections Gomtrie, fusionnez des formes
laide des commandes Union, Combinaison ou Jonction du sous-menu Oprations
du menu Forme. Contrairement la commande Grouper, ces commandes fusionnent
plusieurs formes et crent une forme unique plusieurs chemins.
Pour combiner plusieurs f ormes slect ionnes en une seule :
Choisissez Forme > Oprations > Union, Combinaison ou Jonction. La forme que
vous obtenez comporte plusieurs sections Gomtrie qui correspondent aux
chemins des formes dorigine.
Lorsque vous fusionnez des formes, les formes dorigine, ainsi que leurs ventuelles
formules personnalises, ne sont pas conserves. Par ailleurs, contrairement aux
formes regroupes, aucune action de dissociation ne permet de les rcuprer.
REMARQUE : vous pouvez annuler une action Union, Combinaison ou Jonction
uniquement sil sagit de la dernire opration effectue sur le document.
A Formes avant fusion
B La commande Union fusionne les formes qui se chevauchent en une seule gomtrie.
C La commande Combinaison fusionne les formes slectionnes en liminant le chevauchement et
en conservant la gomtrie de chaque forme dorigine.
D La commande Jonction fusionne les formes slectionnes en une seule forme vide et conserve la
gomtrie de chaque forme dorigine.
A B C D
128 CHAP I TRE 6
Remplissage des f ormes f usionnes
Une section Gomtrie comprend une cellule NoFill qui dtermine si le chemin
associ peut tre rempli, ainsi quune cellule NoLine qui dtermine si le trac associ
au chemin doit apparatre. Si la cellule NoFill est paramtre sur TRUE, la forme est
vide. Comme un seul jeu dattributs de formatage peut tre appliqu aux formes
fusionnes, vous pouvez utiliser ce paramtre pour contrler au cas par cas
lapparence de chaque section Gomtrie dans les formes fusionnes.
Par exemple, vous pouvez fusionner deux formes pleines avec, entre les deux, une
flche vide reprsentant la relation qui les unit. Une fois que vous avez dessin les
formes et choisi Forme > Oprations > Combinaison pour les fusionner, les trois
formes sont remplies, car les formes fusionnes ne peuvent prsenter quun seul
attribut de formatage. Pour que la flche apparaisse vide, vous pouvez ouvrir la
fentre ShapeSheet de la forme, identifier la section Gomtrie de la flche et
paramtrer sa cellule NoFill sur TRUE.
Lorsque vous paramtrez sur TRUE
la cellule NoFill dans la section
Gomtrie de la forme, vous pouvez
modifier lapparence des formes
fusionnes. Dans cet exemple, la
cellule NoFill de la section
Gomtrie de la forme est
paramtre sur TRUE.
Lorsque les gomtries pleines dune forme fusionne se chevauchent, les
chevauchements occasionns par les chemins fusionns sont considrs comme se
trouvant lextrieur des chemins pleins. Ils ne sont donc pas remplis, comme le
montre lexemple ci-aprs, gauche. Si un chemin se trouve entirement lintrieur
dun autre, comme dans lexemple ci-aprs, droite, il nest pas rempli, mme si sa
cellule NoFill est paramtre sur FALSE. Pour remplir la forme, dfinissez la cellule
NoFill de cette forme sur TRUE.
A Lorsque des formes fusionnes remplies se chevauchent, le moteur Visio considre les zones de
chevauchement comme se trouvant lextrieur des formes. Elles ne sont donc pas remplies.
B Ce mme principe sapplique lorsque les formes se trouvent lintrieur dune autre forme.
Lorsque vous paramtrez sur TRUE la cellule NoFill de la forme de taille infrieure, cette forme
est remplie. Si elle contient une autre forme, celle-ci est vide.
A B
REGROUP EMENT ET FUSI ON DE FORMES 129
Masquage de la gomt rie dune f orme
Une section Gomtrie comporte une cellule AucunAff qui dtermine si la gomtrie
dune forme est visible. Pour masquer une forme dcrite dans une section Gomtrie,
paramtrez sa cellule AucunAff sur TRUE. Vous pouvez utiliser cette cellule pour
crer des formes dont la gomtrie nest pas visible ou visible uniquement dans
certains cas.
Par exemple, vous pouvez crer une forme fusionne reprsentant un sous-systme
comportant plusieurs sections Gomtrie pour chacun des composants. Selon ltat
du sous-systme, vous pouvez masquer des formes en paramtrant leur cellule
AucunAff sur TRUE dans la feuille de calcul ShapeSheet. Si vous prfrez, vous
pouvez apporter vos modifications directement dans la fentre ShapeSheet. Vous
pouvez galement ajouter des commandes contextuelles permettant aux utilisateurs
de masquer ou dafficher les diffrentes parties de la forme. Pour plus dinformations
sur lajout dune commande contextuelle dterminant laffichage de la gomtrie
dune forme, reportez-vous la section Commandes du menu contextuel ,
page 138.
Cette forme fusionne reprsente
une forme qui peut prsenter deux
tats ; lorsque les formes en toile
sont masques, seuls les points
restent visibles.
Sommaire
7
Amliorat ion du comport ement
des f ormes
Vous pouvez crire autant de formules Microsoft

Visio

que vous le souhaitez afin de


contrler lapparence ou la position dune forme sur une page. Le comportement
dune forme ne se limite pas sa gomtrie et son emplacement. Une forme peut
fournir des informations aux utilisateurs sous forme visuelle, comme des poignes de
contrle munies dinfo-bulles ou des commandes personnalises dans un menu
contextuel. En outre, les utilisateurs peuvent associer une forme des informations
sous la forme de donnes de proprits personnalises ou dassociations de calques.
Ces amliorations du comportement permettent une forme dtre plus raliste.
Flexibilit des formes grce aux poignes de contrle...................................... 132
Commandes du menu contextuel......................................................................... 138
Proprits personnalises ..................................................................................... 146
Formules dvnements ........................................................................................ 152
132 CHAP I TRE 7
Flexibilit des f ormes grce aux poignes de cont rle
Le comportement de la forme peut notamment tre contrl en ajoutant des poignes
de contrle une forme. En outre, cette opration fournit aux utilisateurs une plus
grande amplitude daction. A linstar des poignes de slection, les poignes de
contrle se prsentent sous la forme de petits carrs verts que les utilisateurs peuvent
slectionner et dplacer. Les dplacements des poignes de contrle sont rpercuts
sur la forme par le biais de vos formules. Lavantage essentiel des poignes de contrle
rside dans le fait quelles vous permettent de crer une forme en tirant le meilleur
parti des entres utilisateur.
Pour en savoir plus sur lutilisation des poignes de contrle, servez-vous des formes
fournies avec Visio. Chaque forme munie dune poigne de contrle comporte une
info-bulle dcrivant le comportement de la poigne. La figure suivante illustre les
diffrentes fonctions des poignes de contrle dune forme.
Formes de base Visio munies de
poignes de contrle
A Les utilisateurs peuvent faire glisser les traits de dimension et ajuster leur hauteur.
B Les utilisateurs peuvent faire glisser les traits de nimporte quelle longueur afin de connecter
lanneau jeton.
C Les utilisateurs peuvent orienter le fauteuil en fonction dune autre forme.
CONSEIL : lorsque vous faites glisser une poigne de contrle, la barre dtat indique les
coordonnes locales de la poigne.
Ajout dune sect ion Point s de cont rle une f orme
Pour ajouter une poigne de contrle une forme, ajoutez une section Points de
contrle la feuille de calcul ShapeSheet

, puis modifiez les formules de la ligne


approprie dans la section Points de contrle. Cette dernire dfinit les attributs des
poignes de contrle. Chaque ligne de la section Points de contrle dune forme
correspond une poigne de contrle. Les cellules de chaque ligne dterminent les
diffrents aspects du comportement de la poigne de contrle. Par exemple, la cellule
Collage admis dtermine si une poigne de contrle peut tre colle dautres formes.
AML I ORATI ON DU COMP ORTEMENT DES FORMES 133
Vous pouvez utiliser la cellule Conseil afin de dfinir une info-bulle de description qui
apparat lorsquun utilisateur place le pointeur sur une poigne de contrle. Une fois
que vous avez ajout la section Points de contrle, vous pouvez crire des formules
dans dautres cellules ShapeSheet faisant rfrence une ligne de la section Points de
contrle afin de dfinir le comportement de cette poigne.
Pour plus dinformations sur la poigne de contrle dun bloc de texte, reportez-vous
la section Contrle de la position du bloc de texte , page 182.
Df init ion dune poigne de cont rle
Utilisez les cellules de la section Points de contrle afin de dfinir lemplacement et le
comportement des poignes de contrle dune forme. Par exemple, vous pouvez crer
une bulle de texte dont vous pouvez repositionner la pointe en ajoutant une poigne
qui contrle un sommet de la forme, comme le montre la figure suivante. Dans cet
exemple, vous souhaitez que la bulle de texte soit une forme 2D dans laquelle le
rectangle de slection entoure uniquement la partie rectangulaire de manire ce que
la position de la poigne de contrle nait aucune incidence sur le reste de la forme.
Poigne de contrle (A) dfinie
pour un sommet dune bulle de
texte. Utilisez une poigne de
contrle pour redimensionner la
pointe.
Lemplacement de la poigne de
contrle est dfini par la formule
dune cellule Gomtrie. Pour
associer le sixime sommet une
poigne de contrle (A), saisissez
la rfrence de la poigne de
contrle dans cette cellule
Gomtrie (B).
A
1
2
4
3
5 7 8
6
B
A
134 CHAP I TRE 7
Pour dessiner la f orme de la bulle de t ext e :
1 Utilisez loutil Trait afin de dessiner le rectangle en inversant sa pointe, comme
dans lillustration suivante.
2 Interdisez toute modification de la largeur/hauteur de la forme en paramtrant la
cellule VerrCalcLH sur TRUE dans la section Protection de la feuille de la forme.
Vous conservez ainsi le rectangle de slection du rectangle dorigine lorsque la
pointe de la bulle est dplace laide de la poigne de contrle.
Dans la procdure suivante, ajoutez une section Points de contrle et des formules
permettant dassocier la poigne de contrle au sommet de la pointe.
Pour ajout er une poigne de cont rle la f orme de la bulle de t ext e :
1 Ouvrez la fentre ShapeSheet de la forme de bulle de texte, choisissez Insertion >
Section, cochez Points de contrle, puis cliquez sur OK.
REMARQUE : pour ajouter une poigne de contrle une forme qui comporte dj une
section Points de contrle, slectionnez une ligne Points de contrle, cliquez dessus avec
le bouton droit, puis choisissez Insrer une ligne dans le menu contextuel.
Lorsque vous ajoutez la section Points de contrle une forme, une poigne de
contrle prsentant les coordonnes Largeur*0, Hauteur*0 est cre et ajoute la
forme sur la page de dessin. Vous pouvez dplacer la poigne de contrle laide
de la souris, mais cette opration na aucun effet tant que vous ne lui avez pas
associ la gomtrie de la forme. En rgle gnrale, vous lassociez au sommet que
la poigne va contrler.
2 Placez les rfrences la position de la poigne de contrle (cellules Points de
contrle.Xn et Points de contrle.Yn) dans les cellules Gomtrie correspondant
au sommet que la poigne va contrler.
1
2
4
3
5 7 8
6
AML I ORATI ON DU COMP ORTEMENT DES FORMES 135
En rgle gnrale, vous saisissez une formule faisant rfrence la coordonne x
de la poigne de contrle dans une cellule X de la section Gomtrie et une
formule faisant rfrence sa coordonne y dans une cellule Y. Si vous dessinez les
segments de bulles de texte dans lordre indiqu dans la figure prcdente, le
sommet de la pointe est contrl par la ligne 6 de la section Gomtrie. Dans cet
exemple, vous saisissez les formules suivantes :
La pointe semble disparatre car vous avez attribu temporairement son sommet
aux coordonnes locales 0,0 (rsultant des formules par dfaut de la poigne de
contrle, Largeur*0, Hauteur*0).
3 Faites glisser la poigne de contrle dans la fentre de dessin afin de faire
rapparatre la pointe.
Vous pouvez galement dplacer la pointe en modifiant les formules par dfaut de
la poigne de contrle (par exemple, en les transformant en Largeur*0,75,
Hauteur*-0,5).
4 Les cellules DynamiqueX et DynamiqueY dcrivent le point dancrage qui est
connect la poigne de contrle par un trait noir dynamique lorsque les effets
dynamiques sont dsactivs. Pour plus dinformations, reportez-vous la section
Dfinition du point dancrage dune poigne de contrle , page 136. Dans cet
exemple, utilisez les valeurs par dfaut.
5 Dans les cellules ComportementX et ComportementY, saisissez une constante
comprise entre 0 et 9 afin de dterminer la manire dont la poigne de contrle
doit tre repositionne lors du redimensionnement de la forme. Dans cet exemple,
saisissez les constantes suivantes :
Pour plus dinformations, reportez-vous la section Dfinition du
comportement dune poigne de contrle , la page 137 de ce chapitre. Pour
obtenir la liste des constantes, recherchez points de contrle, section dans laide
en ligne Rfrence du dveloppeur (accessible via ? (Aide) > Rfrence du
dveloppeur) fournie avec Visio.
6 La cellule CollageAdmis dune poigne de contrle dtermine si une poigne de
contrle peut tre colle dautres formes. Dans cet exemple, utilisez la valeur
par dfaut.
Comf1e1.X6 = Po1hfs de cohf1e.X1
Comf1e1.Y6 = Po1hfs de cohf1e.Y1
CompofemehfX= 4
CompofemehfY= 2
136 CHAP I TRE 7
7 Dans la cellule Conseil, saisissez une chane pour la bulle daide de la poigne
de contrle.
La chane est automatiquement mise entre guillemets. Dans cet exemple, vous
devez saisir la chane suivante :
Df init ion du point dancrage dune poigne de cont rle
Chaque poigne de contrle dfinie est dessine sur la forme par rapport un point
dancrage. Le point dancrage est dfini par les formules des cellules DynamiqueX et
DynamiqueY du point de contrle. Dans Microsoft

Visio

2000, une nouvelle


fonction appele Activer les effets dynamiques met jour la gomtrie de la forme
lorsque lutilisateur dplace une poigne de contrle. Lorsque les effets dynamiques
sont dsactivs, un trait lastique stire entre le point dancrage et la poigne de
contrle lorsque lutilisateur fait glisser la poigne. Ce trait fournit une aide visuelle
grce laquelle les utilisateurs dterminent lemplacement de destination de la
poigne de contrle et le rsultat obtenu au niveau de la forme. Lemplacement du
point dancrage na aucune incidence sur lapparence de la forme sur la page.
Il dtermine uniquement lapparence du trait lastique en cas de dplacement de la
poigne de contrle. Lorsque les effets dynamiques sont activs, le point dancrage na
aucun effet visible. Pour dsactiver les effets dynamiques dun dessin (ils sont activs
par dfaut), choisissez Outils > Options, cliquez sur longlet Dessin, puis
dslectionnez loption Activer les effets dynamiques.
Lorsque loption Activer les effets dynamiques est dslectionne dans longlet
Options avances de la bote de dialogue Options (Outils > Options) et quun
utilisateur dplace une poigne de contrle, un trait noir apparat entre le point
dancrage et la poigne de contrle. Ce trait stire lorsque lutilisateur fait glisser
la poigne.
Vous pouvez dfinir le point dancrage nimporte quel emplacement par rapport la
forme laide des cellules DynamiqueX et DynamiqueY. Par dfaut, le point
dancrage apparat lemplacement de la poigne de contrle. Toutefois, vous pouvez
positionner le point dancrage un emplacement fixe par rapport la forme. Par
exemple, pour placer le point dancrage dune poigne de contrle au bas dune
forme, saisissez la formule suivante :
Pour placer le point dancrage au centre dune forme, saisissez les formules suivantes :
Cohse11= "Pepos1f1ohhez 1a po1hfe"
0yham1queY = haufeu " 0
0yham1queX = Lageu/2
0yham1queY = haufeu/2
AML I ORATI ON DU COMP ORTEMENT DES FORMES 137
Df init ion du comport ement dune poigne de cont rle
Lorsquun utilisateur tire une forme munie dune poigne de contrle, vous pouvez
dfinir le comportement de la poigne en cas dtirement de la forme (soit elle se
dplace dans les mmes proportions que la forme, soit elle ne bouge pas). Pour que la
position dune poigne de contrle ne change pas, vous pouvez masquer la poigne de
manire ce quaucun utilisateur ne puisse la faire glisser.
Pour modifier les proprits daffichage des poignes de contrle, vous pouvez dfinir
ces valeurs dans la feuille de la forme :
Paramtrez sur TRUE la cellule PasPoignCtl dans la section Divers afin que les
poignes de contrle napparaissent pas lorsquun utilisateur slectionne une
forme. Vous obtenez le mme rsultat que lorsque vous utilisez la cellule
ComportementX ou ComportementY pour masquer une poigne. En revanche,
vous annulez laction des paramtres ComportementX et ComportementY qui
rendent les poignes visibles. Pour plus dinformations, reportez-vous aux cellules
ComportementX et ComportementY du tableau des paramtres suivant.
Paramtrez sur TRUE la cellule MseAJourRectSl dans la section Protection afin
de recalculer le rectangle de slection dune forme lorsquun utilisateur dplace un
sommet. Lorsquun sommet est associ une poigne de contrle, le rectangle de
slection est mis jour quand les points de contrle sont dplacs. Tant que la
cellule VerrCalcLH est paramtre sur TRUE, la cellule MseAJourRectSl na
aucun effet.
Vous pouvez galement utiliser les valeurs des cellules ComportementX et
ComportementY dans la section Points de contrle afin de dfinir la position et le
comportement dune poigne de contrle, comme lindique le tableau suivant. Les
cellules ComportementX et ComportementY fonctionnent indpendamment lune de
lautre.
Paramtres des cellules ComportementX et ComportementY
Visible Masque
Comportement de la poigne de contrle en cas dtirement
de la forme
0 5 Se dplace dans les mmes proportions que la forme lorsque
celle-ci est tire.
1 6 Se dplace dans les mmes proportions que la forme, mais
uniquement l horizontale (ComportementX) ou la verticale
(ComportementY).
2 7 Se dcale d une distance constante partir du ct gauche
(ComportementX) ou du bas (ComportementY) de la forme.
3 8 Se dcale d une distance constante partir du centre de la forme.
4 9 Se dcale d une distance constante partir du ct droit
(ComportementX) ou du haut (ComportementY) de la forme.
138 CHAP I TRE 7
Par exemple, la figure suivante prsente une bulle de texte dote dune poigne de
contrle dont la valeur ComportementX est 4 et dont la valeur ComportementY est 2.
Les cellules ComportementX et
ComportementY dterminent la
position de la poigne de contrle
par rapport au contour de la forme.
A La poigne de contrle est dcale dune distance constante partir du ct droit et du bas de
la forme.
B Si la forme est tire vers la gauche ou vers le haut laide des poignes, la poigne de contrle
reste ancre.
C Si la forme est tire laide des poignes du bas et de droite, la poigne de contrle est
dplace de manire conserver le dcalage de dpart.
Commandes du menu cont ext uel
Lorsquun utilisateur clique avec le bouton droit sur la page de dessin, le menu
contextuel qui apparat prsente les commandes qui sappliquent la slection. Vous
pouvez dfinir les commandes qui apparaissent dans le menu contextuel dune forme
et dans le sous-menu Actions du menu Forme. Les lignes de la section Actions dune
forme ou dune page dfinissent le nom de la commande et laction fournie par cette
forme ou par cette page.
Par exemple, vous pouvez dfinir une action appele Excuter Programme pour une
forme qui calcule la formule suivante lors de son excution :
Lorsquun utilisateur clique avec le bouton droit sur la forme, laction Excuter
Programme apparat dans le menu contextuel. Si vous la slectionnez, le moteur Visio
value la formule. Dans ce cas, le programme mon_prog.exe est lanc.
REMARQUE : tout comme les cellules Evnements, les cellules Action ne sont calcules que
lorsque laction se produit et non au moment o vous saisissez la formule.
A B C
Acf1oh = PuhA000h|"mohpog.exe")
AML I ORATI ON DU COMP ORTEMENT DES FORMES 139
Cette partie dcrit lutilisation de formules avec des commandes de menu contextuel.
Vous pouvez galement personnaliser linterface utilisateur, notamment les menus
contextuels, laide dAutomation. Pour plus dinformations, reportez-vous au
chapitre 22, Personnalisation de linterface utilisateur Visio
Df init ion dune commande de menu cont ext uel
Vous pouvez crer des commandes de menu contextuel pour la plupart des
comportements de formes contrls par une cellule ShapeSheet

. Par exemple, vous


pouvez crer des commandes de menu contextuel afin dactiver ou de dsactiver
certaines cellules de la section Protection dune forme. Vous pouvez galement dfinir
des commandes qui modifient les cellules de formatage dune forme.
Pour df inir une commande de menu cont ext uel pour une f orme ou une
page :
1 Slectionnez une forme, puis choisissez Fentre > Afficher la feuille ShapeSheet.
Pour afficher la feuille de la page, vrifiez quaucun lment nest slectionn, puis
choisissez Fentre > Afficher la feuille ShapeSheet.
2 Si la section Actions nexiste pas, choisissez Insertion > Section. Dans la bote de
dialogue Insrer une section, slectionnez Actions, puis cliquez sur OK.
Si la section Actions existe mais quelle napparat pas, choisissez Affichage >
Sections. Dans la bote de dialogue Afficher les sections, choisissez Actions, puis
cliquez sur OK.
Pour ajouter dautres actions, slectionnez une cellule dans la section Actions,
cliquez avec le bouton droit et choisissez Insrer une ligne dans le menu contextuel.
3 Dans la cellule Action, saisissez la formule devant tre calcule lorsque lutilisateur
choisit la commande Action.
Par exemple, vous pouvez crer deux actions parallles utilisant la fonction DEFF
pour verrouiller et dverrouiller le texte de la forme laide des formules suivantes :
4 Dans la cellule Menu, saisissez le nom de la commande afficher dans le menu
contextuel.
Par exemple, saisissez le texte Verrouiller le texte pour laction 1 de manire
ce que la commande Verrouiller le texte apparaisse dans le menu contextuel, et le
texte Dverrouiller le texte pour laction 2 de manire ce que la commande
Dverrouiller le texte apparaisse au-dessous.
Acf1oh 1 = 0EII|CefPef|veMod1fTexfe) fue)
Acf1oh 2 = 0EII|CefPef|veMod1fTexfe) fa1se)
140 CHAP I TRE 7
Vous pouvez utiliser la cellule Coch afin dajouter une coche la commande
slectionne. La cellule Dsactiv permet de faire apparatre une commande en
gris. Pour plus dinformations sur lutilisation de ces cellules, reportez-vous la
section Contrle de lapparence dune commande de menu contextuel ,
page 140.
5 Facultatif : dans la cellule Message, saisissez le message descriptif qui apparat dans
la barre dtat lorsque la commande Action est slectionne dans le menu.
Pour tester la nouvelle commande, cliquez avec le bouton droit sur la forme ou sur la
page pour afficher le menu contextuel correspondant, puis choisissez la commande
Action dfinie.
CONSEIL : une fois que vous avez ajout une section Actions une forme ou une page,
vous pouvez dfinir rapidement les actions standard laide de la commande Action du
menu Edition dans la fentre ShapeSheet. La commande apparat en gris jusqu ce que
vous slectionniez une cellule dans une section Actions. Dans la bote de dialogue Action,
dfinissez les options Menu et Message, slectionnez une action, puis cliquez sur OK.
Les cellules correspondantes de la section Actions sont mises jour. Si vous choisissez une
action dans la bote de dialogue, par exemple Aller la page, la cellule Action contient la
formule correspondante.
Cont rle de lapparence dune commande de menu
cont ext uel
Les actions ajoutes apparaissent par dfaut en haut du menu contextuel dans lordre
dans lequel elles sont rpertories dans la section Actions. Pour contrler lapparence
et la position de votre commande Action dans le menu contextuel, vous pouvez placer
un prfixe avant le nom dans la cellule Menu. Pour afficher votre commande au bas
du menu contextuel, utilisez la syntaxe suivante :
Pour faire apparatre une barre de sparation au-dessus de la commande, utilisez la
syntaxe suivante :
Pour associer la commande un raccourci clavier, placez une esperluette (&) avant la
lettre souhaite, comme dans lexemple suivant :
= "xEhfe de mehu"
= "Ehfe de mehu"
= "&Ehfe de mehu"
AML I ORATI ON DU COMP ORTEMENT DES FORMES 141
En outre, vous pouvez crire des formules qui apposent des coches aux commandes
slectionnes, ou qui affichent en gris les options non applicables. Dans le cas de
deux commandes qui sexcluent lune lautre, vous passez de lune lautre en
masquant et en affichant la commande approprie.
Commandes coches dans le menu cont ext uel
Lorsque vous dfinissez plusieurs commandes de menu contextuel pour une forme,
vous pouvez indiquer celle qui sapplique la forme en lui apposant une coche dans le
menu. Pour ce faire, paramtrez sur TRUE la cellule Coch de la ligne Actions
slectionne. Vous pouvez galement utiliser une expression logique afin de
slectionner et de dslectionner la commande en faisant rfrence une cellule
dfinie par lutilisateur.
Par exemple, vous pouvez slectionner les commandes Verrouiller le texte ou
Dverrouiller le texte ajoutes lexemple prcdent. Pour ce faire, saisissez la formule
suivante dans la cellule Coch de laction de verrouillage du texte :
Dans ce cas, lorsque la cellule VerrModifTexte est paramtre sur la valeur TRUE, la
cellule Coch calcule la formule comme tant TRUE. Une coche apparat ct du
nom de la commande afin dindiquer que le texte est verrouill. Vous pouvez
galement saisir une formule identique pour la seconde action afin de slectionner la
commande Dverrouiller le texte :
Dans cet exemple, la commande Dverrouiller le texte est slectionne lorsque la
cellule VerrModifTexte est FALSE.
Vous pouvez placer une coche
ct des commandes dfinies dans
la section Actions.
Coch 1 = veMod1fTexfe=fue
Coch 2 = veMod1fTexfe=fa1se
142 CHAP I TRE 7
Commandes de menu cont ext uel en gris
Pour peaufiner la forme, vous pouvez faire apparatre en gris les commandes qui ne
lui sont pas applicables. Par exemple, lorsquun utilisateur choisit la commande
Verrouiller le texte, le texte est verrouill de manire ce que la commande
Dverrouiller le texte soit la seule tre disponible dans le menu. Pour ce faire, dans
lexemple Verrouiller le texte, saisissez la formule suivante dans la cellule Dsactiv de
la section Actions pour laction Verrouiller le texte :
Vous pouvez saisir une formule identique dans la cellule Dsactiv de laction
Dverrouiller le texte :
Le rsultat de la formule de la cellule Dsactiv est calcul comme tant TRUE ou
FALSE. Lorsque vous slectionnez la commande Verrouiller le texte, la valeur de la
cellule VerrModifTexte est TRUE. Lexpression de la cellule Dsactiv est calcule
comme tant TRUE et la commande Verrouiller le texte apparat en gris. Si vous
slectionnez la commande Dverrouiller le texte, la cellule VerrModifTexte est
paramtre sur FALSE. Lexpression de la cellule Dsactiv 2 est calcule comme tant
TRUE et la commande Dverrouiller le texte apparat en gris.
Masquage et af f ichage de commandes dans le menu
cont ext uel
Lorsquune forme ne prsente que deux tats ou deux attributs dans une situation
conditionnelle, comme dans lexemple Verrouiller le texte et Dverrouiller le texte
utilis prcdemment, vous pouvez faire en sorte que les noms de commande soient
masqus ou affichs alternativement en modifiant, laide de conditions, le texte qui
apparat sur le menu. Par exemple, pour rendre votre interface utilisateur plus lisible,
affichez uniquement une commande de menu la fois : si le texte est verrouill, la
commande du menu contextuel est Dverrouiller le texte. Si le texte est dverrouill,
la commande est Verrouiller le texte.
Pour crer une commande variable dans le menu contextuel, il vous suffit dajouter
une ligne dans la section Actions. Ecrivez deux expressions logiques : la premire,
dans la cellule Action, active ou dsactive la valeur VerrModifTexte, la seconde, dans
la cellule Menu, dtermine la commande afficher sur la base de la valeur
VerrModifTexte :
0sacf1v 1 = veMod1fTexfe=fue
0sacf1v 2 = veMod1fTexfe=fa1se
Acf1oh = 0EII|CefPef|veMod1fTexfe)h0T|veMod1fTexfe))
Mehu = ST|veMod1fTexfe"Texfe dveou111""Texfe veou111")
AML I ORATI ON DU COMP ORTEMENT DES FORMES 143
Si la valeur VerrModifTexte est TRUE, DEFF la paramtre sur FALSE ; dans le cas
contraire, si la valeur VerrModifTexte est FALSE, DEFF la paramtre sur TRUE.
La formule de la cellule Menu fait galement rfrence la cellule VerrModifTexte : si
elle est TRUE, loption Dverrouiller le texte apparat. Si elle est FALSE, la commande
Verrouiller le texte est affiche.
Si la forme prsente plus de deux tats ou commandes de menu, il est prfrable, pour
des raisons de clart, dutiliser la cellule Coch ou Dsactiv afin didentifier les
commandes disponibles.
CONSEIL : vous pouvez utiliser la fonction DEFF dune cellule Evnement ou Action afin
de paramtrer la valeur dune autre cellule sur lune ou sur lautre de ses options, ou pour
incrmenter les valeurs dune autre cellule. Comme la formule dune cellule Evnement
ou Action nest calcule que lorsque lvnement se produit, vous pouvez crire une
formule faisant rfrence elle-mme laide de la fonction DEFF qui ne lance pas de
boucle. Par exemple, pour activer ou dsactiver la valeur de la cellule A en fonction de la
cellule B, utilisez la syntaxe suivante dans une cellule Evnement ou Action :
0EII|CefPef|ce11u1eA), ST|ce11u1e=fa1se, fue, fa1se) )
Pour incrmenter de 1 la valeur de la cellule, utilisez la syntaxe suivante :
0EII|CefPef|ce11u1e), ce11u1e + 1 )
Pour plus dinformations sur la syntaxe de la fonction DEFF, recherchez DEFF,
fonction dans laide en ligne Rfrence du dveloppeur (accessible via ? (Aide) >
Rfrence du dveloppeur) fournie avec Visio.
Exemple dut ilisat ion de commandes de menu cont ext uel
af in de modif ier la gomt rie dune f orme
Les commandes de menu contextuel permettent de contrler la gomtrie dune
forme et, par consquent, de modifier lapparence de la forme. Par exemple, vous
pouvez crer une forme unique reprsentant deux tats : activ ou dsactiv, ouvert
ou ferm, embray ou dsembray. Pour ce faire, crez laide de la commande
Combinaison une forme fusionne contenant plusieurs sections Gomtrie dans la
feuille de calcul ShapeSheet. Dans la section Actions de la forme fusionne, dfinissez
les commandes de menu contextuel contrlant laffichage de la section Gomtrie qui
reprsente un tat. A titre dexemple, la figure suivante indique la manire dont vous
pouvez afficher ou masquer les accoudoirs dune chaise de bureau.
144 CHAP I TRE 7
Vous pouvez dfinir les commandes
de menu contextuel qui
apparaissent lorsque vous cliquez
avec le bouton droit sur la forme
fusionne. Dans cet exemple, le
choix de la commande (A) masque
la gomtrie de lune des formes
composant la forme fusionne.
Pour combiner des f ormes dans une f orme f usionne :
1 Crez les formes utiliser dans votre forme fusionne.
Par exemple, pour crer un fauteuil, dessinez un rectangle ou un ovale pour le
sige, un pour le dossier et un pour chaque accoudoir.
2 Slectionnez les formes du fauteuil. Choisissez Forme > Oprations >
Combinaison.
Vous crez ainsi une forme regroupant les sections Gomtrie de chacune des
formes dorigine. Les sections Gomtrie sont numrotes selon lordre de
slection des formes.
Pour plus dinformations sur la fusion des formes, reportez-vous la section
Cration et contrle des formes fusionnes , page 126.
Pour ajout er une sect ion Act ions la f orme f usionne et df inir des
commandes de menu cont ext uel :
1 Choisissez Fentre > Afficher la feuille ShapeSheet.
2 Choisissez Insertion > Section. Slectionnez Cellules personnalises et Actions,
puis cliquez sur OK.
3 Attribuez un nom la cellule personnalise, par exemple Util.Etat, puis saisissez la
valeur 1.
La valeur initiale TRUE est active : les accoudoirs du fauteuil sont visibles.
4 Slectionnez la premire ligne de la section Actions, puis choisissez Insrer >
Ligne. La section Actions compte ainsi deux lignes.
5 Pour dfinir les noms de commande et les actions correspondantes, saisissez les
formules suivantes :
Acf1oh|1] = 0EII|CefPef|uf11.Efaf)fue)
Mehu|1] = "Aff1che 1es accoudo1s"
Acf1oh|2] = 0EII|CefPef|uf11.Efaf)fa1se)
Mehu|2] = "Masque 1es accoudo1s"
A
AML I ORATI ON DU COMP ORTEMENT DES FORMES 145
6 Dans les deux sections Gomtrie correspondant aux accoudoirs du fauteuil,
saisissez la formule suivante :
Par exemple, si les accoudoirs du fauteuil correspondent aux sections Gomtrie3
et Gomtrie4, saisissez les formules suivantes :
Mode de f onct ionnement des f ormules
La formule de la cellule Action utilise la fonction DEFF pour paramtrer la valeur
Util.Etat sur TRUE lorsque vous slectionnez la commande Afficher les accoudoirs ou
sur FALSE lorsque vous slectionnez la commande Masquer les accoudoirs. La cellule
Menu dfinit ces noms de commande.
Pour masquer ou afficher les chemins, saisissez les formules dans la cellule AucunAff
de la section Gomtrie faisant rfrence la valeur de la cellule Util.Etat. La cellule
AucunAff dtermine si le chemin dfini par cette section Gomtrie est affich ou
masqu. Dans ce cas, les accoudoirs sont tous deux affichs ou masqus. La mme
formule est donc utilise dans les cellules AucunAff des deux sections Gomtrie.
La fonction NON renvoie la valeur TRUE si une expression est FALSE et inversement.
Lorsquun utilisateur choisit Masquer les accoudoirs, Util.Etat est paramtr sur
FALSE. La fonction NON retourne alors TRUE de manire ce que la valeur de la
cellule AucunAff soit TRUE. Le chemin et le remplissage du composant
correspondant sont ainsi masqus.
Comf1eh.hoShoW = h0T|uf11.Efaf)
Comf1e3.hoShoW = h0T|uf11.Efaf)
Comf1e4.hoShoW = h0T|uf11.Efaf)
146 CHAP I TRE 7
Proprit s personnalises
Une forme, quel que soit son degr de complexit, ne reprsente jamais
compltement la ralit. Lobjet rel reprsent par la forme est souvent associ des
donnes essentielles : numros de srie, prix, quantit commande ou quantit en
stock, noms, dates, adresses, numros de tlphone, fabricants, fournisseurs, clients,
dimensions, matriaux, rsistance la tension. Pour amliorer les oprations
danalyse et de communication, il peut tre judicieux de faire figurer ces informations
sur le dessin.
Vous pouvez associer des donnes une forme Visio en dfinissant des proprits
personnalises dans la feuille de calcul ShapeSheet

, ou en utilisant la fentre
Proprits personnalises ou la bote de dialogue Dfinir des proprits
personnalises. Attribuez chaque proprit personnalise un nom unique et
dfinissez au besoin dautres caractristiques, telles que le type de donnes, le format
et la valeur par dfaut.
Cette section traite de lutilisation de formules ShapeSheet pour la dfinition et la
modification de proprits personnalises. Vous pouvez galement utiliser
Automation pour intgrer des informations provenant dautres sources dans vos
dessins Visio. Pour plus dinformations, reportez-vous au chapitre 20, Intgration
de donnes et dune solution Visio .
Ut ilisat ion de proprit s personnalises
Les proprits personnalises vous offrent toute une gamme de possibilits vous
permettant de rendre vos solutions plus labores et plus ralistes. En associant des
donnes votre forme, vous pouvez notamment :
Ajouter des donnes lorsque vous crez une forme. Par exemple, vous pouvez
dfinir des proprits personnalises de rsistance, de tension et dintensit, et
saisir les donnes correspondantes dans des formes de base qui reprsentent les
composants lectroniques. Lorsque lutilisateur insre lune des formes dans un
dessin, les donnes sont galement insres.
Collecter des donnes auprs dun utilisateur. Lapplication Visio peut inviter
lutilisateur dfinir les proprits personnalises dune forme de base chaque
insertion dans un dessin. Lutilisateur fournit ainsi les donnes ncessaires votre
solution. Il peut galement afficher et modifier les proprits personnalises dune
forme partir du menu contextuel.
Afficher des donnes dans le texte dune forme. Vous pouvez insrer un champ
de texte dans le texte dune forme afin dafficher le rsultat dune formule de
proprit personnalise. Un champ de texte peut indiquer une valeur, le rsultat
dune formule ou toute valeur globale fournie par le moteur Visio, par exemple le
rcapitulatif du fichier, ou la date et lheure actuelles.
AML I ORATI ON DU COMP ORTEMENT DES FORMES 147
Parfois les donnes ne sont pas visibles, mais vous prfrerez certainement les afficher
dans un dessin ou modifier le dessin lorsquelles changent. Vous pouvez utiliser les
proprits personnalises dune forme afin deffectuer les oprations suivantes :
Contrler le comportement dune forme. Les proprits personnalises sont
stockes dans des cellules ShapeSheet et peuvent donc entrer en ligne de compte
dans dautres formules. Ainsi, la gomtrie dune forme peut tre lie ses
proprits personnalises, et volue alors selon des donnes saisies par lutilisateur.
Extraire des donnes dun dessin. Vous pouvez extraire des donnes des
proprits personnalises dune forme et les transmettre vers une destination
externe, par exemple vers une feuille de calcul ou vers une base de donnes. Pour
plus dinformations, reportez-vous au chapitre 20, Intgration de donnes et
dune solution Visio .
Transfrer des donnes depuis une source externe. Vous pouvez dfinir des
proprits personnalises afin dutiliser les donnes fournies par une source
externe, par exemple par une feuille de calcul ou par une base de donnes. Pour ce
faire, crivez un programme utilisant Automation pour transmettre le flux de
donnes. Pour plus dinformations, reportez-vous au chapitre 20, Intgration de
donnes et dune solution Visio .
Les proprits personnalises peuvent servir de conteneurs pour les donnes qui
proviennent dune source externe. Elles peuvent aussi fournir une interface de saisie de
donnes pour les formes dun dessin. Vous pouvez dcider de placer simplement les
donnes des proprits dans la forme ou de les faire interagir avec une source externe.
Par exemple, vous pouvez utiliser les proprits personnalises pour mettre jour une
liste de contrle de stock. Vous pouvez crer un gabarit contenant les formes de base
qui reprsentent les pices en stock. Pour chaque forme de base, vous pouvez dfinir
les proprits personnalises Nom, Cot unitaire et Quantit. Vous avez galement la
possibilit dindiquer la valeur de ces proprits lorsque vous crez les formes. Vous
pouvez galement laisser les utilisateurs saisir le nom, le cot et la quantit des pices,
et ventuellement dfinir des messages les invitant le faire.
Proprits personnalises dune
liste de contrle de stock
A Forme munie de proprits personnalises
B La valeur saisie dans ce champ est la valeur de la cellule Prop.Cot.
A
B
148 CHAP I TRE 7
Df init ion des proprit s personnalises
Vous pouvez dfinir une proprit personnalise afin de stocker des donnes
(chane, donnes numriques, boolennes, date/heure, dure, devise, liste fixe ou liste
variable) avec un objet reprsent par une feuille, par exemple une forme, un groupe,
une forme de base, un repre, une page ou un document. Une proprit personnalise
est stocke sous la forme dune ligne ShapeSheet, dont vous pouvez dfinir le nom et
les cellules. Vous pouvez afficher et modifier les proprits laide des commandes de
menu Visio, crer des rapports partir de ces informations ou faire rfrence aux
valeurs des autres cellules ShapeSheet. Les proprits personnalises permettent
dassocier des champs de type base de donnes une forme ou une page.
Pour crer une proprit personnalise contenant les donnes, sans que ces donnes
napparaissent dans la fentre Proprits personnalises, vous pouvez crer une
proprit personnalise qui napparatra pas dans la bote de dialogue Proprits
personnalises en paramtrant la cellule Invisible sur TRUE. La fonction
PROTECTION ne protge pas les donnes de la cellule Valeur dune ligne de
proprit personnalise.
Vous pouvez dfinir les proprits personnalises dune seule forme ou dune page en
ajoutant une section Proprits personnalises sa feuille ou en utilisant la fentre
Proprits personnalises. Lorsque vous modifiez un gabarit, la mthode la plus
efficace consiste dfinir les proprits personnalises de la forme de base du gabarit
de manire ce que chaque occurrence contienne les mmes proprits. Lditeur de
proprits personnalises permet de dfinir des proprits pour un gabarit de base, un
gabarit local ou un gabarit autonome.
La fentre Proprits personnalises permet de connatre en un clin doeil les
proprits associes une page ou la forme slectionne, et fournit une interface
permettant de saisir les nouvelles valeurs de ces proprits.
Vous pouvez attribuer de nouvelles
valeurs aux proprits
personnalises dans la fentre
Proprits personnalises.
AML I ORATI ON DU COMP ORTEMENT DES FORMES 149
Pour ajout er des proprit s personnalises une f orme ou une page
laide de la f ent re Proprit s personnalises :
1 Choisissez Affichage > Fentres > Proprits personnalises afin douvrir la fentre
Proprits personnalises.
2 Slectionnez la forme ou cliquez sur la page laquelle vous souhaitez ajouter des
proprits personnalises. Cliquez ensuite avec le bouton droit dans la fentre
Proprits personnalises et choisissez Dfinir les proprits dans le menu
contextuel.
3 Dans la bote de dialogue Proprits, saisissez les valeurs des champs Libell, Nom
(correspondant au nom de la ligne dans la fentre ShapeSheet), Type, Format,
Valeur, Message d'aide et Cl de tri.
4 Cliquez sur Crer pour ajouter des proprits personnalises, ou sur OK pour
fermer la bote de dialogue et ajouter les proprits personnalises la forme ou
la page.
Pour ajout er des proprit s une f orme ou une page laide de la f ent re
ShapeSheet :
1 Slectionnez une forme ou cliquez dans la page de dessin, puis choisissez Fentre >
Afficher la feuille ShapeSheet.
2 Si la section Proprits personnalises nexiste pas, choisissez Insertion > Section.
Dans la bote de dialogue Insrer une section, slectionnez Proprits
personnalises, puis cliquez sur OK.
3 Dans la section Proprits personnalises de la fentre ShapeSheet, slectionnez le
libell de ligne Prop.Ligne_1 qui apparat en rouge. Dans la barre de formule,
saisissez un nom vocateur.
Par exemple, saisissez Cot_Unitaire pour crer la proprit personnalise
Prop.Cot_Unitaire. Le libell de la ligne correspond au nom de la cellule Valeur
de cette ligne. Utilisez ce nom (par exemple, Prop.Cot_Unitaire) dans les
rfrences de cellule.
4 Dans la cellule Libell, saisissez le libell qui apparat dans la bote de dialogue
Proprits personnalises pour cette proprit.
Par exemple, saisissez Cot par unit. Le moteur Visio place automatiquement
cette chane entre guillemets.
5 Dans la cellule Message, saisissez le texte vocateur ou explicatif qui apparat dans
la bote de dialogue Proprits personnalises lorsque la proprit est slectionne.
Par exemple, saisissez Entrez le cot unitaire de cette pice. Le moteur Visio place
automatiquement cette chane entre guillemets.
150 CHAP I TRE 7
6 Dans les cellules Type et Format, saisissez le type et le format de donnes pour la
valeur de votre proprit personnalise.
Pour plus dinformations, reportez-vous au tableau suivant.
7 Facultatif : paramtrez la cellule Invisible sur un nombre non nul (TRUE) afin
dempcher lapparition de la proprit personnalise dans la bote de dialogue
Proprits personnalises. Paramtrez la cellule Demande sur un nombre non nul
(TRUE) afin dafficher la bote de dialogue Proprits personnalises ds quune
occurrence de la forme est cre.
Pour afficher la proprit personnalise dfinie, slectionnez la forme dans la page
de proprits ou annulez toutes les slections pour afficher les proprits
personnalises de la page. Choisissez ensuite Forme > Proprits personnalises.
Types et formats de proprits personnalises
Type
Formule de la cellule
ShapeSheet Description
Chane Type = 0
Iomaf = "<1mage>"
Paramtre par dfaut. Utilisez un format
image* valide dans la cellule Format (chanes
telles que les paires nombre/unit, les dates,
les heures, etc.).
Liste fixe Type = 1
Iomaf = "E1f 1,E1f Z"
Affiche dans l ordre alphabtique les
lments de liste dans une zone de liste
droulante de la bote de dialogue Proprits
personnalises. I ndiquez les lments de
liste dans la cellule Format. Les utilisateurs
ne peuvent slectionner qu un lment dans
cette liste.
Numrique Type = ?
Iomaf = "<1mage>"
Utilisez un format image* dans la cellule
Format afin d indiquer l unit de mesure et
les autres formats numriques.
Boolen Type = 3 Affiche les lments FALSE et TRUE que les
utilisateurs peuvent slectionner dans une
zone de liste droulante modifiable de la
bote de dialogue Proprits personnalises.
Liste de
variables
Type = 4
Iomaf = "E1f 1,E1f ?"
Affiche les lments de liste dans une zone
de liste droulante modifiable de la bote de
dialogue Proprits personnalises. I ndiquez
les lments de liste dans la cellule Format.
Les utilisateurs peuvent slectionner un
lment de liste ou saisir un nouvel
lment ; les nouveaux lments sont
ajouts la liste.
Date/heure Type = S
Iomaf = "<1mage>"
Utilisez un format image* dans la cellule
Format afin d indiquer les jours, les mois, les
annes, les heures, les minutes, les
secondes, ou tout autre format de date et/ou
d heure.
Dure Type = 6
Iomaf = "<1mage>"
Utilisez un format image* dans la cellule
Format afin d indiquer le temps coul en
heures, jours, semaines, mois, ou dans
d autres formats de dure.
AML I ORATI ON DU COMP ORTEMENT DES FORMES 151
* Par exemple, Format = "# #/10 UU" dfinit le format du nombre 10, 92 cm sous la forme "10 9/10
CENTI M ETRES" ("10" est le dnominateur et l unit apparat sous sa forme dveloppe, en majuscules). Pour
plus de dtails sur les images prsentant un format valide, reportez-vous la section Formatage des chanes
et sortie du texte , page 200. Vous pouvez galement rechercher format, fonction dans l aide en ligne
Rfrence du dveloppeur fournie avec Visio.
Ajout de proprit s personnalises une f orme de base
Vous pouvez ajouter des proprits personnalises des formes de base comme vous
le feriez pour une autre forme. Toutefois, pour modifier simultanment les proprits
personnalises de plusieurs formes, vous pouvez utiliser linterface fournie par
lAssistant de lditeur de proprits personnalises. Vous pouvez choisir de modifier
une partie ou lensemble des formes de base dun gabarit donn, les formes de base de
document du dessin en cours ou celles dun autre dessin.
Pour ajout er des proprit s personnalises une f orme de base :
1 Choisissez Outils > Macros > Editeur de proprits personnalises.
2 Suivez les instructions lcran afin didentifier les formes de base modifier.
Lditeur ajoute la section Proprits personnalises la forme de base
slectionne et utilise les donnes slectionnes comme valeurs des cellules Libell,
Message, etc.
Pour afficher la proprit personnalise dfinie, slectionnez la forme de base dans
le gabarit, puis choisissez Forme > Proprits personnalises.
Et ablissement dune liaison ent re les proprit s
personnalises et une base de donnes
Une fois que vous avez dfini les proprits personnalises dune forme, vous pouvez
tablir une liaison entre ces donnes et une base de donnes. En tablissant des liens
entre des formes et des enregistrements de base de donnes, vous pouvez crer des
dessins Visio qui donnent une reprsentation visuelle des donnes.
Par exemple :
La base de donnes du personnel peut vous permettre de crer des cartes de visite
pour chacun de vos employs.
La base de donnes des spcifications techniques dune pice permet de crer des
formes de base que vos employs pourront utiliser dans leurs dessins.
Vous pouvez lier une base de donnes dinventaire un plan damnagement de
bureau afin deffectuer le suivi du mobilier et des quipements. Si vous supprimez
un fauteuil du plan du bureau, vous supprimez lenregistrement correspondant de
la base de donnes.
Devise Type = 7
Iomaf = "<1mage>"
Utilisez un format image* dans la cellule
Format afin d indiquer des formats de
devise.
Types et formats de proprits personnalises (suite)
Type
Formule de la cellule
ShapeSheet Description
152 CHAP I TRE 7
LAssistant Base de donnes permet dautomatiser ce processus. Dans la section
Proprits personnalises, il lie les valeurs des cellules ShapeSheet une base de
donnes cre dans une application compatible ODBC (Open Database Connectivity)
standard, comme Microsoft

Access 7.0 (ou une version ultrieure), Microsoft

SQL
Server ou Oracle SQL Server. Si vous modifiez la base de donnes, vous pouvez
rafrachir les valeurs des cellules ShapeSheet afin quelles prennent en compte ces
rvisions. Une fois que vous avez li la forme lenregistrement, les informations
peuvent circuler entre votre dessin Visio et la base de donnes. Les deux versions des
donnes sont ainsi synchronises en permanence.
Lorsque lAssistant Base de donnes lie une forme une base de donnes, il ajoute les
sections Proprits personnalises et Cellules personnalises la feuille de la forme.
LAssistant stocke des informations sur la cl primaire de la base de donnes, les
champs de la base de donnes qui sont lis aux cellules ShapeSheet et les dernires
donnes valides extraites de la base de donnes et utilises dans les cellules
personnalises.
Pour excuter cet Assistant, choisissez Outils > Macros > Supplements Visio >
Assistant Bases de donnes. Pour plus dinformations sur les options, cliquez sur le
bouton Plus d'infos dans lAssistant. Vous pouvez galement rechercher Base de
donnes, Assistant dans laide en ligne Rfrence du dveloppeur (accessible via ?
(Aide) > Rfrence du dveloppeur) fournie avec Visio.
Formules dvnement s
De nombreuses mthodes permettent au moteur Visio de dclencher des vnements
ou de rpondre des vnements. Vous pouvez insrer dans les cellules ShapeSheet


des formules qui effectuent une action, par exemple qui excutent une macro ou qui
accdent une autre page de dessin en rponse un vnement. Ces formules peuvent
tre utilises dans la section Evnements qui gre un groupe dvnements
slectionn, ou dans dautres cellules. Vous pouvez galement utiliser la fonction
DEPENDDE afin de simuler dautres vnements dans une section personnalise.
Outre la fonction DEPENDDE, le produit comporte de nombreuses fonctions
intgres de gestion des vnements qui dclenchent des actions.
Le moteur Visio prend galement en charge lutilisation dAutomation pour crire du
code permettant de grer les vnements. A laide dAutomation, vous pouvez
dvelopper des solutions puissantes utilisant des programmes VBA (Microsoft


Visual Basic

pour Applications), des programmes autonomes, ainsi que dautres


approches de gestion des vnements plus avances. Pour plus dinformations,
reportez-vous au chapitre 21, Gestion des vnements dans Visio .
AML I ORATI ON DU COMP ORTEMENT DES FORMES 153
Ut ilisat ion des cellules dans la sect ion Evnement s
Vous pouvez dfinir le mode de rponse dune forme une action utilisateur en
crivant des formules Visio de gestion des vnements. Ds que lutilisateur effectue
lune des quatre actions dcrites dans le tableau ci-dessous, la formule de la cellule
ShapeSheet correspondante est calcule et laction est effectue. La section
Evnements dune fentre ShapeSheet contient les cellules suivantes ; lorsquun
utilisateur effectue lune de ces actions, la formule de la cellule est calcule.
Lorsque vous saisissez des formules dans les cellules de la section Evnements, vous
dterminez la manire dont la forme rpond chaque vnement. Contrairement la
plupart des formules ShapeSheet, les formules dvnement sont calcules au moment
o lvnement intervient, et non lorsque vous saisissez la formule ou que les cellules
auxquelles la formule fait rfrence changent. Par consquent, les cellules Evnements
se comportent quelque peu diffremment des autres cellules ShapeSheet :
La valeur affiche dans une cellule Evnements risque de ne pas tre jour ou de
ne pas correspondre la formule de la cellule. Par exemple, supposons que vous
saisissiez la formule suivante dans la cellule EvnDblClic :
Cette formule renvoie TRUE ou FALSE. Toutefois, la formule est value lorsque
lutilisateur double-clique sur la forme, et non au moment o la forme est
redimensionne. La valeur TRUE de la cellule concerne donc les lments qui
prsentaient cet tat la dernire fois quun utilisateur a double-cliqu sur la forme.
Lordre et le nombre des valuations dun vnement sont imprvisibles. Par
exemple, si une forme est redimensionne, les valeurs LeTexte et EvnXFMod sont
calcules, mais lordre dans lequel ces vnements dclenchent un calcul nest pas
dfini. Toutefois, le moteur Visio calcule chaque cellule au moins une fois dans
lordre de son choix.
Cellules de la section Evnements
Cellule
Evnements Evnement dclenchant la formule
LeTexte
Le texte ou le formatage de la forme a chang, ou le texte doit
tre recr.
EvnXFM od La position, la taille ou l orientation de la forme sur la page a chang.
EvnDblClic Vous avez double-cliqu sur la forme.
CrationEvn Une nouvelle occurrence est cre par collage, duplication ou
glisser-dplacer d une forme, ou par insertion d une forme de base.
LesDonnes Rserv par Visio pour une utilisation ultrieure.
= Lageu > 1 po.
154 CHAP I TRE 7
Simulat ion dvnement s avec la f onct ion DEPENDDE
La fonction DEPENDDE permet de simuler des vnements dans dautres sections
ShapeSheet, par exemple dans la section Montage. Grce elle, vous pouvez rpondre
des vnements qui ne sont pas mentionns dans la section Evnements. Cette fonc-
tion permet galement de mieux contrler la gestion de vos vnements.
Par exemple, si vous insrez la formule suivante dans une cellule Montage, le moteur
Visio ouvre le bloc de texte de la forme ds que la forme est dplace :
Dans cet autre exemple, si vous indiquez la formule suivante dans une cellule Montage,
le programme complmentaire Mon_prog.exe est lanc ds que la forme est retourne :
REMARQUE : la fonction DEPENDDE na aucune incidence lorsquelle est utilise dans
une cellule Evnements ou Action. Pour plus dinformations, recherchez dependde
dans laide en ligne Rfrence du dveloppeur (accessible via ? (Aide) > Rfrence du
dveloppeur) fournie avec Visio.
Fonct ions excut ant des act ions
Le moteur Visio comporte des fonctions intgres qui excutent des actions au lieu de
crer une valeur. Ces fonctions sont particulirement utiles dans les formules
dvnements. La liste de fonctions suivante est incomplte. Pour obtenir la liste
exhaustive des fonctions, ainsi que des dtails sur chacune delles, recherchez
fonctions dans laide en ligne Rfrence du dveloppeur (accessible via ? (Aide) >
Rfrence du dveloppeur) fournie avec Visio.
0uvPTPIEhTEXTE|) + 0EPEh00E|AxeX AxeY)
PuhA000h|"mohpog.exe") + 0EPEh00E|PefouhemehfX PefouhemehfY)
Fonctions utiliser dans les formules dvnements
Nom de la fonction Description
APPELEPCE|"pocdue",
|"poef"],|ag1,ag2,.])
Appelle une procdure dans un projet VBA et
transmet cette procdure une rfrence l objet
Forme qui contient la formule APPELER_CE en
cours de calcul, ainsi que les ventuels arguments
dfinis dans cette formule. Par exemple :
APPELEPCE|"Th1s0ocumehf.maPoc",,haufeu,
Lageu)
Vous pouvez galement insrer un code dans la
chane de fonction APPELER_CE. Toutes les
instructions que vous pouvez saisir dans la fentre
Excution de VBA peuvent tre indiques en tant
qu argument APPELER_CE.
AML I ORATI ON DU COMP ORTEMENT DES FORMES 155
ATTETh0PEPACE|"hom0ePage") Affiche la page indique dans la fentre active. Vous
pouvez galement utiliser une URL :
ATTETh0PEPACE|"Page-2")
0EII|CefPef|ce11u1e),
fomu1e)
Lors du calcul, le rsultat de l expression dans la
formule devient la nouvelle formule de la cellule
indique. Si la formule est entre guillemets,
l expression est transmise la cellule. Par exemple :
0EII |CefPef|Mohfage.A1), Mohfage.A1+1)
calcule la formule = M ontage.A1+ 1 et paramtre la
formule de la cellule M ontage.A1 sur le rsultat
(valeur prcdente incrmente de 1).
EMETTPES0h|"homI1ch"|"a11as",
esfA11as, b1p, syhch)
Si vous utilisez un systme dot d une carte son,
vous pouvez lire le son enregistr dans
N om D uFichierou lire l alias systme d un son si
est_alias est un nombre non nul. Si le son ne peut
pas tre excut, l application Visio met un bip
signalant une erreur. Les sons peuvent tre lus de
manire synchronise ou non synchronise.
Par exemple :
PLAYS0uh0 |"chod.Wav", 0, 0, 0)
lit le fichier audio CHO RD.wav en mode synchrone
sans bip d avertissement.
0uvPTPIEhIEuTLLE O uvre et affiche une fentre ShapeSheet identifiant
la forme qui contient cette formule.
0uvPTPIEhTEXTE|) O uvre le bloc de test de la forme contenant cette
formule. I l s agit de la formule par dfaut de la
cellule EvnDblClic des formes.
0uvPTPITChTEP|"hom0uI1ch1e") O uvre un fichier dans une nouvelle fentre. Si vous
indiquez plusieurs fichiers, les requtes sont mises
en file d attente et excutes selon l ordre de calcul.
Le document actif est le dernier avoir t nomm.
Si le document Visio actuel est activ en vue d une
modification visuelle, une nouvelle occurrence de
Visio est lance et affiche le fichier demand.
uhaddoh|"cha1he") Lance la macro indique ou le programme
complmentaire.
uhaddohWAPCS|"homPogComp1m
ehfa1e", "agumehf")
Lance un programme complmentaire auquel elle
transmet la chane d argument indique.
Fonctions utiliser dans les formules dvnements (suite)
Nom de la fonction Description
156 CHAP I TRE 7
Remarques concernant les perf ormances des f ormules
dvnement
Comme les formules dvnements sont calcules chaque fois que lvnement se
produit, elles ont une incidence sur lutilisation et les performances de vos formes.
Suivez les instructions gnrales ci-dessous.
Utilisez les formules dvnement avec parcimonie. Evitez dutiliser des formules
pour les vnements frquents, tels que le dplacement ou le redimensionnement
de la forme (EvnXFMod), ou la modification de son texte (LeTexte). La gestion
de ces vnements risque dinterrompre le travail de lutilisateur et de rendre les
formes difficilement utilisables.
Faites en sorte que vos formules dvnement soient aussi simples que possible.
Le calcul dune formule complexe est long, ce qui diminue les performances de
la forme.
Noubliez pas que certaines actions peuvent durer plus longtemps que dautres.
Mme une formule dvnement simple peut dclencher une action longue.
Par exemple, le lancement dun programme complmentaire autonome peut
prendre plus de temps que lexcution dune macro ou que laccs une page Web
ou une autre page du mme document Visio.
Sommaire
8
Liaison des f ormes :
f ormes 1D et collage
Une forme doit-elle se comporter comme une bote ou comme un trait ? Cette
question est lune des premires que vous devez vous poser lorsque vous concevez une
forme. Une forme se comportant comme une bote (cest--dire une forme 2D) peut
subir un tirement vertical ou horizontal. Vous pouvez tirer et faire pivoter en une
seule opration une forme qui se comporte comme un trait (cest--dire une forme
1D). Une forme 1D permet en outre de joindre plusieurs formes (elle porte alors
gnralement le nom de lien). Lattribut collage permet au lien de rester connect
une autre forme. Dans Microsoft

Visio

2000, vous pouvez coller les formes 1D et 2D


dautres formes.
Ce chapitre explique la diffrence entre les formes 1D et 2D, et dcrit le mode de
cration des diffrents types de forme 1D. Il explique galement le mode dutilisation
du collage pour maintenir les formes jointes les unes aux autres.
Prsentation des formes 1D et 2D........................................................................ 158
Cration de liens 1D repositionnables et dautres types de lien........................ 161
Contrle du mode de connexion des formes ...................................................... 169
158 CHAP I TRE 8
Prsent at ion des f ormes 1D et 2D
Prfrez une forme 1D si la taille ou la longueur du trait est moins importante que la
liaison opre par la forme. Les formes 1D sont souvent utilises pour lier dautres
formes et sont alors appeles liens. Dans un diagramme de flux, un schma
lectronique ou une illustration de mcanique, par exemple, les formes 1D servent
souvent lier dautres composants. Elles ne constituent cependant pas toutes des
liens. Certaines, comme les lgendes ou les traits de dimension, tiennent lieu de lignes
ou, dans le cas des secteurs dun graphique secteurs, elles sont tout simplement plus
faciles utiliser.
La plupart des formes que vous crez sont initialement en deux dimensions. Leur
cadre largeur/hauteur comporte huit poignes de redimensionnement. Toutefois,
lorsque vous tracez un arc de cercle ou une ligne, vous obtenez une forme 1D dont les
points de dpart et de fin sont reprsents par des poignes permettant dajuster la
hauteur. Les formes 1D et 2D diffrent non seulement par leur apparence, mais aussi
par leur comportement sur la page de dessin.
Poignes de slection sur les
formes 1D et 2D
Lorsquun utilisateur insre une forme 1D dans la page de dessin, le rectangle de
slection correspondant apparat sous la forme dune ligne droite et non dune bote
comme dans le cas des formes 2D. Lalignement des formes, par exemple, une forme
de mur 1D dans un plan damnagement, est ainsi facilit.
Deux des poignes associes aux formes 1D ont une fonction spciale. Le sommet de
dbut correspond au point de dpart et la poigne associe lextrmit du trait
correspond au point de fin.
Vous pouvez coller le point de dpart ou de fin dune forme 1D un repre, un
point de repre, un point de connexion, un sommet ou une poigne. Lorsque
vous collez une extrmit, lautre reste ancre sur la page et la forme 1D stire lorsque
lextrmit colle suit le dplacement de la forme laquelle elle est lie.
A Forme 1D
B Point de dpart
C Point de fin
D Forme 2D convertie 1D E Forme 2D
B C
A D E
L I AI SON DES FORMES : FORMES 1D ET COL L AGE 159
Conversion des f ormes 1D et 2D
Il est possible de convertir une forme 2D en forme 1D et vice versa : une forme ayant
lapparence dune bote peut donc se comporter comme un trait. Une telle conversion
a des rpercussions importantes sur laffichage des sections dans la fentre Feuille
ShapeSheet

de la forme.
Pour crer une forme 1D, il est souvent plus simple de tracer une forme 2D
approximativement, de la convertir en forme 1D, puis dajuster les sommets et de
dfinir des formules personnalises. Pour gagner du temps et limiter les efforts, tracez
la forme initiale horizontalement (cest--dire en faisant glisser le curseur de gauche
droite ou de droite gauche, selon la direction que la ligne doit suivre). Microsoft


Visio

place les points de fin 1D sur les cts gauche et droit de la forme trace. Une
forme trace sur un plan horizontal est plus proche du rsultat recherch aprs la
conversion en forme 1D.
La section Points de fin 1D de la fentre Feuille ShapeSheet constitue une diffrence
essentielle qui caractrise les formes 1D. Une forme 2D ne comporte pas cette section.
La conversion dune forme 2D en forme 1D ajoute cette section la fentre Feuille
ShapeSheet, ainsi que des formules par dfaut. En revanche, la conversion dune
forme 1D en forme 2D provoque la suppression de cette section, quelle que soit la
protection dfinie (y compris les fonctions PROTECTION).
Lorsque vous convertissez une forme 2D en forme 1D, la section Alignement est
supprime, et les formules des cellules Largeur, Angle, AxeX et AxeY de la section
Transformation de la forme sont remplaces par des formules 1D par dfaut. Bien que
la conversion dune forme nait aucune incidence sur les points de connexion, les
liaisons avec dautres formes ou repres sont supprimes.
Pour convert ir une f orme 1D en f orme 2D :
1 Slectionnez une forme.
2 Choisissez Format > Comportement.
3 Dans la zone Style d'interaction, slectionnez Trait (1D) pour dfinir une forme
1D ou Bote (2D) pour dfinir une forme 2D.
4 Cliquez sur OK.
Visio modifie la forme et ajuste le rectangle de slection en fonction du
comportement slectionn.
160 CHAP I TRE 8
Galerie de f ormes 1D
Des formules personnalises permettant de gnrer un comportement intelligent sont
associes aux formes 1D illustres la figure suivante.
Exemples de formes 1D
Par exemple :
Les formules du lien S permettent de garantir la position du lien. Lors du
dplacement des points de fin de la forme, celle-ci est redimensionne par
tirement des segments horizontaux et verticaux de faon rester dans la
mme position.
Les formules de la forme de vanne dformable permettent de la redimensionner en
fonction de la hauteur. Lorsquun utilisateur dplace un point de fin, le trait est
tir alors que les dtails au centre conservent la mme taille. En revanche, si un
utilisateur augmente la hauteur de la forme, les dtails du milieu sont
redimensionns de faon proportionnelle alors que le trait reste inchang.
La forme Flche de la figure prcdente peut aussi correspondre une forme 2D. Pour
dterminer si cette forme doit se comporter comme un trait ou une bote, vous devez
dfinir son utilisation : si la flche a t conue pour pointer vers la gauche ou vers la
droite, ou vers le haut ou vers le bas uniquement, il est plus facile de positionner la
forme 2D verticalement ou horizontalement. Par ailleurs, il est impossible de faire
pivoter les formes 2D sans avoir recours loutil Rotation, alors que langle dune
forme 1D peut facilement tre modifi par inadvertance en dplaant lun des points
de fin. Toutefois, seules les flches 1D ou celles comportant un point de connexion
vers lextrieur peuvent tre lies dautres formes par le biais de linterface utilisateur
de Visio (et non la phase de dveloppement). Pour plus dinformations sur les
points de connexion vers lextrieur, reportez-vous Prsentation des points de
connexion , page 171. Pour plus dinformations sur la liaison de formes lors du
dveloppement, reportez-vous au chapitre 19, Automatisation des connexions
dune solution Visio .
A Trait de dimension vertical
B Lien S
C Flche
D Goutte--goutte
E Vanne dformable
F Mur
G Secteur
H Bus
25%
A B
C
D
E
F G
1

1
/
8
"
H
L I AI SON DES FORMES : FORMES 1D ET COL L AGE 161
Les formes 1D ne ncessitent pas toutes des formules spciales. Pendant son
dplacement, une forme 1D prend lapparence dun trait, ce qui rend son
positionnement plus rapide dans un dessin. Pensez utiliser des formes 1D toutes les
fois que vous souhaitez crer des formes de base que les utilisateurs seront amens
aligner avec prcision dans un dessin. Par exemple, le positionnement prcis dune
lgende ou dune annotation sera facilit si lutilisateur peut visualiser avec exactitude
o pointe le trait.
Crat ion de liens 1D reposit ionnables et daut res t ypes de lien
Lors de la conception de solutions de diagrammes comportant des liaisons, vous
pouvez soit utiliser les outils Lien intgrs dans Visio, soit crer vos propres liens.
Loutil Lien dynamique, la commande Lier les formes et la forme Lien dynamique
gnrent des liens repositionnables entre des formes positionnables. Un lien
repositionnable est une forme 1D qui contourne dautres formes sur la page de dessin
au lieu de les traverser. Une forme positionnable est une forme 2D avec laquelle
fonctionne le lien repositionnable. La faon dont ragit Visio aux changements tels que
lajout, la suppression, le redimensionnement et le repositionnement des formes varie
selon que les formes du dessin sont positionnables ou repositionnables. Pour rpondre
ces modifications, Visio repositionne automatiquement les formes positionnables et
repositionnables.
Les liens repositionnables permettent aux utilisateurs de raliser un important gain de
temps lors de la rvision de diagrammes avec liaisons complexes. Dans certains cas,
vous pouvez cependant prfrer un lien au comportement plus prvisible, qui ne se
repositionne pas de faon automatique. Par exemple, si un type de dessin ncessite
des liens formant toujours un angle de 90 degrs, ou raccordant des formes laide
dun arc de cercle ou dune courbe spline, vous pouvez crer votre propre lien 1D non
repositionnable.
162 CHAP I TRE 8
Crat ion de liens reposit ionnables
Vous pouvez crer un lien repositionnable partir de tous les traits 1D en
paramtrant sur 2 la valeur de la cellule TypObj de la section Divers. Le tableau
suivant rpertorie les valeurs possibles de la cellule TypeObj.
Par dfaut, lorsque vous crez une forme 2D, Visio paramtre TypeObj sur Pas de
formule, ce qui revient 0 et signifie que lapplication dtermine si la forme peut tre
positionnable en fonction de son contexte. Par exemple, si vous tracez un rectangle
simple, la valeur par dfaut de la cellule TypeObj est 0. Si vous raccordez ensuite ce
rectangle une autre forme laide de la commande Lier les formes ou de loutil Lien
dynamique, Visio dcide que ce rectangle peut tre positionnable et attribue la
valeur 1 (positionnable) la cellule TypeObj correspondante. Vous pouvez galement
crer une forme 1D positionnable (via la fentre ShapeSheet

uniquement), utile
lorsquune forme ne constituant pas un lien est utilise dans un dessin avec mise en
page automatique. Le paramtrage dune forme 2D en tant que forme repositionnable
na toutefois aucune incidence sur son comportement.
Si vous crez des formes qui ne doivent pas fonctionner avec des liens
repositionnables, paramtrez la cellule TypeObj sur 4. Les liens peuvent tre colls
aux points de connexion de la forme, mais la forme non positionnable est ignore
dans un diagramme contenant des liens positionnables et repositionnables
(cest--dire que ces derniers se comportent comme si la forme nexistait pas).
Pour contrler le chemin emprunt par un lien repositionnable, dfinissez son
comportement (correspondant la valeur de la cellule StylePositionForme de la
section Mise en page des formes). Par dfaut, la valeur de cette cellule est Pas de
formule, ce qui revient 0 et signifie que le lien utilise le comportement dfini pour
la page.
La commande Outils > Mettre en page les formes permet de dfinir plusieurs types de
comportement pour les formes slectionnes ou pour la page par combinaison de
plusieurs styles de lien avec des directions diverses. Vous pouvez galement
dterminer le comportement dune forme ou de la page en paramtrant les cellules
Feuille ShapeSheet suivantes :
Valeurs de la cellule TypeObj dune forme
Valeur Signification
0 Visio dcide si la forme est positionnable ou repositionnable en fonction du
contexte du dessin.
1 Positionnable
2 Repositionnable
4 Non positionnable, ni repositionnable
L I AI SON DES FORMES : FORMES 1D ET COL L AGE 163
Par exemple, en paramtrant la valeur de la cellule StylePositionForme dun lien
sur 7, vous crez un lien repositionnable qui gnre toujours une arborescence
avec une orientation haut-bas (comme si vous slectionniez Diagramme de flux/
arborescence dans la liste Style et De haut en bas dans la liste Direction, dans la
zone Placement de la bote de dialogue Mettre en page les formes).
Pour que ce comportement soit celui par dfaut de la page, attribuez la valeur 7
la cellule StylePosition de la section Mise en page de la page (ou slectionnez Page
en cours dans la zone Appliquer de la bote de dialogue Mettre en page
les formes).
Pour plus dinformations sur les autres paramtres des cellules StylePositionForme et
StylePosition, recherchez les noms laide de ces cellules dans laide en ligne
Rfrence du dveloppeur (accessible via ? (Aide) > Rfrence du dveloppeur)
fournie avec Visio.
Lorsque vous crez un modle de diagramme liens repositionnables et formes
positionnables, vous pouvez personnaliser les valeurs par dfaut que Visio utilise pour
router et positionner les formes. La commande Outils > Mettre en page les formes
permet de dfinir les valeurs par dfaut de la page. Les utilisateurs peuvent ne pas
prendre en compte les paramtres de la page et modifier les formes qui sy trouvent ;
toutefois, lorsquils crent ou ajoutent des formes positionnables, les paramtres de la
page sont utiliss par dfaut.
Pour plus dinformations sur la cration de diagrammes qui utilisent les liens
repositionnables et des formes positionnables, effectuez une recherche laide des
mots mise en page automatique dans laide en ligne fournie avec Visio.
Aut res exemples de crat ion de liens 1D
Lorsquune solution requiert un lien dont le comportement puisse tre contrl
laide dun programme, vous pouvez crer un lien qui nest pas affect par le routage
automatique. Des formules permettent de contrler le mode dtirement dun lien
entre son point de dpart et celui de fin.
164 CHAP I TRE 8
Crat ion dun lien avec angle
La figure suivante illustre un lien avec angle comportant deux angles droits (pratique
pour crer des diagrammes hirarchiques tels que des organigrammes). Les formules
personnalises pour ce lien sont prsentes ici pour dmontrer le type de formule
ncessaire au contrle des formes 1D. Dautres liens 1D sont disponibles dans le
gabarit Liens (accessible via Fichier > Ouvrir un gabarit > Supplments Visio >
Liens).
Les quatre types de courbure dun
lien avec angle en cas de
dplacement
A DpartY <= FinY
B DpartX > FinX
C DpartX <= FinX
D DpartY > FinY
E Le lien suit toujours une courbure (verticale) de 0,25 po. par rapport au point de dpart.
Avec deux coudes placs en son milieu, le lien avec angle dispose de deux sommets
ncessitant des formules personnalises. Pour calculer les coordonnes du premier
sommet aprs le point de dpart, noubliez pas que la coordonne x est identique la
valeur du point de dpart. La coordonne y est gale 0,25 po. si la forme est trace de
bas en haut. Si, en revanche, elle est trace partir du haut, y se calcule de la manire
suivante :
La valeur x du sommet suivant est identique celle de la dernire ligne TraitVers qui
dfinit le point de fin de la forme, et, par consquent, qui correspond toujours la
valeur Largeur ou 0. Sa valeur y est identique celle du sommet prcdent.
= haufeu - 0,2S po.
A B
C D
E
L I AI SON DES FORMES : FORMES 1D ET COL L AGE 165
Pour crer un lien avec angle :
1 Slectionnez loutil Trait et tracez une ligne droite 1D de la gauche vers la droite.
2 Choisissez Fentre > Afficher la feuille ShapeSheet.
3 Saisissez les formules suivantes dans la section Transformation de la forme :
4 Choisissez Insertion > Section, puis cochez Cellules personnalises.
5 Dans la section Cellules personnalises, saisissez le nom de la cellule, tel que
Dpl_y, puis saisissez 0,25 po. dans la cellule Valeur.
6 Slectionnez la dernire ligne de la section Gomtrie, puis choisissez Insertion >
Ligne aprs. Rptez cette opration pour ajouter deux lignes.
Chaque ligne correspond un sommet de la forme.
7 Dans la section Gomtrie, saisissez les formules rpertories dans le tableau
suivant.
8 Dans la section Protection, paramtrez sur 1 les cellules VerrHauteur et
VerrModifVtx.
Le paramtrage de la cellule VerrModifVtx permet de protger les formules de
gomtrie en empchant les utilisateurs de modifier les sommets de la forme.
Le paramtrage de la cellule VerrHauteur permet de protger la formule relative
la hauteur et supprime les poignes superflues en haut et en bas des liens.
9 Faites glisser le point de dpart ou de fin du lien sur la page de dessin pour voir
langle et le dcalage.
Pour permettre aux utilisateurs de modifier la position du coude du lien avec angle en
dplaant une poigne de contrle, associez Util.Dpl_y la poigne et verrouillez sa
position x de sorte quelle puisse uniquement tre dplace dans la direction y.
Lageu = PP0TECTT0h|AS|I1hX - 0pafX))
haufeu = PP0TECTT0h|AS|I1hY - 0pafY))
Ahg1e = PP0TECTT0h|0 deg.)
Formules personnalises pour un lien avec angle
Ligne X Y
Dpart = ST{0patX <= I1nX, 0,Lageu) = ST{0patY <= I1nY,0,hauteu)
TraitVers = Comt1e1.X1 = ST{0patY <=I1nY,ut1T.0pTy,
hauteu - ut1T.0pTy)
TraitVers = Comt1e1.X4 = Comt1e1.Y2
TraitVers = ST{0patX <= I1nX, Lageu,0) = ST{0patY <= I1nY,hauteu,0)
166 CHAP I TRE 8
CONSEIL : lAssistant SmartShape permet dajouter un lien une forme. Vous obtenez
ainsi un groupe compos de la forme dorigine et dun trait comportant une poigne de
contrle que vous pouvez coller une autre forme. Par exemple, vous pouvez ajouter un
lien une forme ne comportant que du texte, puis le coller une pice que vous souhaitez
annoter dans un dessin.
Lutilisation de cet Assistant permet de crer des liens intgrs qui se connectent de
diffrentes faons, par exemple, du haut vers le bas, ct vers ct, etc. Pour lancer
lAssistant, choisissez Outils > Macros > Supplments Visio > Assistant SmartShape.
LAssistant SmartShape nest pas automatiquement install avec Visio. Sil nest pas
rpertori dans le chemin Outils > Macros > Supplments Visio, installez-le partir du
CD-ROM Visio. Pour installer lAssistant, excutez de nouveau le programme
dinstallation de Visio en vous assurant que vous avez slectionn loption dinstallation
de cet Assistant.
Crat ion dune f orme 1D en f onct ion de la haut eur
Certaines formes, telles que la forme 1D de canalisation et vanne illustre la figure
suivante, peuvent tre tires entre deux points de faon lier dautres formes. Vous
pouvez crer ce type de forme 1D en tant que forme unique compose de plusieurs
lments de gomtrie ayant des comportements de redimensionnement diffrents.
Les points de fin dune forme 1D contrlent sa largeur. Lorsquun utilisateur fait
glisser un point de fin dune forme de canalisation et vanne, ltirement porte
uniquement sur le composant trait. Lorsquil fait glisser une poigne suprieure ou
infrieure, seule la vanne est redimensionne, mais elle conserve ses proportions.
Formules par dfaut et formules en
fonction de la hauteur pour une
forme de canalisation et vanne
A Canalisation
B Vanne
C Si vous utilisez les formules par dfaut, la forme de vanne est dforme, quelle que soit la
direction de ltirement.
D Si vous utilisez les formules en fonction de la hauteur, ltirement horizontal porte uniquement sur
la longueur de la canalisation.
E Si vous utilisez les formules en fonction de la hauteur, la taille de la vanne change de faon
proportionnelle en cas dtirement vertical.
A
B
C D
E
L I AI SON DES FORMES : FORMES 1D ET COL L AGE 167
Pour tirer ou rduire une forme de vanne, dfinissez sa largeur par rapport sa
hauteur laide dune formule reposant sur la hauteur. Pour crer ce lien en tant que
forme unique, dessinez deux segments de droite chaque extrmit de la forme
Vanne, puis slectionnez Forme > Oprations > Combinaison.
Pour conserver les proportions de la vanne lors du redimensionnement de la forme,
dfinissez les coordonnes x de ses sommets en fonction du centre et de la hauteur de
la forme, comme lindique la figure suivante. Cela permet en outre la vanne de rester
centre dans le cadre largeur/hauteur. Cette approche ncessite la dfinition de
formules dans la cellule X de la section Gomtrie.
Formule reposant sur la hauteur
pour une forme 1D compose de
plusieurs lments de gomtrie
A Largeur * 0,5 - Hauteur * 1
B Largeur * 0,5
C Largeur * 0,5 + Hauteur * 1
D Hauteur
E Largeur
Pour crer cet t e f orme de sort e que les lignes Gomt rie correspondent
t oujours aux chif f res et aux t ableaux suivant s :
1 Slectionnez loutil Trait et tracez un trait de gauche droite pour former le
segment gauche de la canalisation.
2 Avec loutil Trait, tracez la vanne, en commenant au point 1 de la figure
prcdente.
3 Avec loutil Trait, tracez le segment droit de la canalisation, de gauche droite.
4 Slectionnez les formes dans lordre suivant : vanne, trait de gauche et segment
de droite.
5 Choisissez Forme > Oprations > Combinaison.
6 Choisissez Format > Comportement.
7 Cochez loption Trait (1D), puis cliquez sur OK.
168 CHAP I TRE 8
Pour contrler le composant vanne de la forme, ouvrez la fentre Feuille ShapeSheet
associe la forme combine et saisissez les formules rpertories ci-dessous dans la
section Gomtrie1.
Pour contrler le point de jonction du segment gauche de la canalisation et de la
vanne (point 6 de la figure prcdente), saisissez la formule suivante :
Pour contrler le point de jonction du segment droit de la canalisation et de la vanne
(point 7 de la figure prcdente), saisissez la formule suivante :
CONSEIL : lorsque vous tracez des formes 1D telles que la forme de canalisation et vanne,
il est souvent ncessaire de dessiner plusieurs formes que, par la suite, vous regroupez ou
combinez. La commande Combinaison permet dobtenir de meilleurs rsultats. Si aucun
des composants ne doit tre slectionn indpendamment, il est inutile de grouper les
lments, ce qui gnre une feuille de groupe. Vous devez toutefois vous assurer que les
points de fin de la forme 1D cre sont positionns correctement.
Visio place toujours le point de dpart gauche de la forme 1D et son point de fin droite.
Si vous dessinez une forme du haut vers le bas et que vous la convertissiez ensuite en forme
1D, les points de fin risquent de ne pas tre correctement positionns. Tracez donc les
diffrents composants de la gauche vers la droite.
Il est dconseill dajouter des formules personnalises aux formes des composants avant
de combiner ces formes car la commande Combinaison les supprime.
Formules personnalises dans la section Gomtrie1 de la forme canalisation
et vanne
Ligne X Y
0p1aceves = Lageu " 0,S - haufeu " 1 = haufeu " 1
Ta1fves = Comf1e1.X1 = haufeu " 0
Ta1fves = Lageu " 0,S + haufeu " 1 = haufeu " 1
Ta1fves = Comf1e1.X3 = haufeu " 0
Ta1fves = Comf1e1.X1 = Comf1e1.Y1
Comf1e2.X2= Comf1e1.X1
Comf1e3.X1= Comf1e1.X3
L I AI SON DES FORMES : FORMES 1D ET COL L AGE 169
Cont rle du mode de connexion des f ormes
Le comportement qui permet la connexion dune partie dune forme une autre
forme est appele collage. La dfinition dun point de connexion permet dindiquer la
partie dune forme laquelle une autre forme peut tre colle.
Vous pouvez coller les points de fin dune forme 1D ou un point de connexion vers
lextrieur sur une forme 2D, un repre, un point de repre, un sommet de forme, une
poigne de slection ou un point de connexion (vers lintrieur ou vers lintrieur/
lextrieur). Visio cre automatiquement un point de connexion vers lintrieur sur
une forme lorsquune autre forme est colle ses sommets ou ses poignes.
Lorsquun point de fin dune forme 1D est coll une autre forme, il reste attach
lorsque vous dplacez cette dernire ; paralllement, la forme 1D dont le point de fin
non coll est ancr sur la page est tire. Lorsquune forme 2D est colle une autre
forme et que vous dplacez cette dernire, la forme 2D suit son mouvement.
Df init ion du comport ement de collage dun lien
Vous pouvez associer un comportement de collage point point ou forme forme un
lien 1D :
Lorsque le point de fin dune forme 1D est fix un point de connexion donn, il
sagit dun collage point point : la liaison sopre toujours entre les deux mmes
points, indpendamment du dplacement de la forme. Par dfaut, les formes
traces ou toutes les formes non positionnables ou repositionnables ont un
comportement de collage point point.
En revanche, si le point de fin de la forme 1D passe dun point de connexion
lautre pour optimiser la visibilit de la liaison lors du dplacement de la dernire
forme, il sagit de collage forme forme. Ce dernier est utilis par les liens
repositionnables colls aux formes positionnables : il permet de lier deux formes
par la voie la plus courte, ce qui simplifie le dessin.
Lorsque vous crez un lien, vous pouvez faire en sorte quil utilise le collage forme
forme pour permettre aux points de fin de se dplacer dun point de connexion
lautre lorsquun utilisateur dplace les formes auxquelles il est coll. Visio redessine le
lien pour quil lie les formes au niveau des deux points de connexion les plus
rapprochs. Toutefois, pour activer le collage forme forme, les utilisateurs doivent
170 CHAP I TRE 8
appuyer sur la touche Ctrl lorsquils font glisser le lien vers une forme non
positionnable. Sinon, le lien utilise le collage point point. Dans ce dernier cas, les
symboles de point de dpart ( ) ou de fin ( ) par dfaut associs la poigne de
slection du lien apparaissent en rouge fonc. Si le point de fin utilise le collage forme
forme, sa poigne de slection est rouge uni.
Un lien dfini pour le collage forme
forme permet dtablir une
connexion par collage point point
ou forme forme.
Pour df inir un collage f orme f orme ou point point pour un lien :
1 Slectionnez une forme, puis choisissez Fentre > Afficher la feuille ShapeSheet.
2 Si la section Infos sur le collage napparat pas, choisissez Affichage > Sections.
Dans la bote de dialogue Sections, cochez loption Infos sur le collage, puis cliquez
sur OK.
3 Dans la section Infos sur le collage, saisissez 0 dans la cellule AttacheType pour
choisir le collage point point, ou 3 pour slectionner le collage forme forme.
Par dfaut, le collage forme forme tablit la connexion suivant la voie la plus courte
entre deux points de connexion ou poignes de slection du milieu de la forme. Vous
pouvez indiquer si vous prfrez quune forme utilisant le collage forme forme passe
par le point de connexion situ en haut, en bas ou sur un ct lorsque le point de fin
coll est dplac. Pour ce faire, paramtrez la cellule LienInscable de la section Infos
sur le collage. Les liens repositionnables passent outre au paramtrage de la cellule
LienInscable ; leur comportement de routage est contrl par la valeur de la cellule
StylePositionForme. Pour plus dinformations sur les paramtres de la cellule
LienInscable, recherchez WalkPreference dans laide en ligne Rfrence du
dveloppeur (accessible via ? (Aide) > Rfrence du dveloppeur) fournie avec Visio.
REMARQUE : lorsquun utilisateur colle un lien 1D une autre forme laide du collage
forme forme, Visio gnre une formule qui fait rfrence la cellule EvnXFMod de
lautre forme. Lorsque cette dernire est modifie, Visio recalcule toutes les formules qui
font rfrence la cellule EvnXFMod, notamment celles des cellules DbAction et
FinAction. Ces deux cellules contiennent des formules gnres par Visio pour une forme
1D colle dautres formes. Dautres formules associes au lien 1D font rfrence aux
cellules DbAction et FinAction, et dplacent les points de dpart ou de fin du lien ou en
changent la forme selon les besoins.
A Faites glisser un point de fin pour tablir une
connexion avec collage point point.
B Appuyez sur la touche Ctrl et faites
glisser un point de fin pour tablir une
connexion avec collage forme forme.
A B
L I AI SON DES FORMES : FORMES 1D ET COL L AGE 171
Prcision des lment s pouvant t re colls
La bote de dialogue Magntisme et collage permet de dfinir les emplacements dune
forme auxquels une autre forme peut tre colle sur une page. Par exemple, la plupart
des modles Visio permettent aux utilisateurs de coller les formes 1D aux repres, aux
points de repre et aux points de connexion uniquement. Choisissez Outils >
Magntisme et collage et cochez les options Coller supplmentaires correspondant
au dessin ou modle.
Les formes 2D sont gnralement lies entre elles par des formes 1D, mais elles
peuvent galement tre lies par les lments suivants :
lintgralit dun ct dune forme un repre ou un point de repre ;
un bord du rectangle de slection un repre ;
une poigne de slection un point de repre ;
une poigne de contrle un point de connexion ;
un point de connexion vers lextrieur ou vers lintrieur/lextrieur un point de
connexion vers lintrieur ou vers lintrieur/lextrieur dune autre forme.
Prsent at ion des point s de connexion
Lors de la conception dune forme, vous devez lui associer des points de connexion
pour dfinir les emplacements permettant le collage. Lorsque vous crez des formes
de base, pensez aux points dont les utilisateurs auront vraisemblablement le plus
besoin pour le collage. Evitez par ailleurs de crer des points supplmentaires qui
pourraient nuire lefficacit du comportement de la forme.
Le type dun point de connexion a une incidence sur le collage dautres formes ce
point ou sur le collage de la forme dote de ce point de connexion dautres formes :
Dautres formes peuvent tre colles un point de connexion vers lintrieur. Les
points de connexion vers lintrieur se comportent comme les points de connexion
des versions Visio antrieures Visio 2000. Un point de connexion vers lintrieur
attire, dune part, les points de fin des formes 1D et, dautre part, les points de
connexion vers lextrieur ou vers lintrieur/lextrieur des autres formes. Les
diagrammes tels que les diagrammes de flux et les organigrammes, composs de
formes 2D et de liens 1D, ncessitent uniquement des points de connexion vers
lintrieur associs aux formes 2D.
Une forme dote dun point de connexion vers lextrieur peut tre colle une
autre forme. Un point de connexion vers lextrieur est attir par les points de
connexion vers lintrieur et vers lintrieur/lextrieur dautres formes. Les
diagrammes dagencement despace et les diagrammes CAO composs
essentiellement de formes 2D peuvent bnficier des avantages des points de
connexion vers lextrieur.
172 CHAP I TRE 8
Un point de connexion vers lintrieur/lextrieur se comporte comme un point de
connexion vers lintrieur lorsque vous lui collez le point de fin dune forme 1D ou
une forme avec un point de connexion vers lextrieur. Il se comporte comme un
point de connexion vers lextrieur lorsque vous le collez une autre forme. Les
points de connexion vers lintrieur/lextrieur sont pratiques pour les formes qui
peuvent tre colles ensemble sans contrainte dordre. Par exemple, si les formes
de segment de mur possdent un point de connexion vers lintrieur/lextrieur
chaque extrmit, lune ou lautre des extrmits dune des formes de segment
peut tre colle lune ou lautre extrmit dune autre forme de segment de mur,
lordre nayant aucune importance. Si une forme de ce type possde un point de
connexion vers lextrieur une extrmit et un point de connexion vers
lintrieur lautre, vous tes tenu de coller une extrmit vers lextrieur une
extrmit vers lintrieur, ce qui rduit les possibilits.
REMARQUE : Visio 2000 importe les points de connexion crs dans des versions
prcdentes des programmes Visio en tant que points de connexion vers lintrieur sans
direction prtablie. Toutes les formules Montage figurant dans les cellules A, B, C et D de
ces lignes sont importes sans subir de modification.
La figure suivante illustre une forme de carreau de carrelage dote de trois points
de connexion.
Forme de carreau de carrelage
dote de points de connexion vers
lintrieur, vers lextrieur et vers
lintrieur/lextrieur
A Point de connexion vers lextrieur
B Point de connexion vers lintrieur/lextrieur
C Point de connexion vers lintrieur
D Un point de connexion vers lintrieur/lextrieur est attir par le point de connexion vers
lintrieur ou vers lintrieur/lextrieur le plus proche.
Pour coller un point de connexion vers lextrieur un point de connexion vers
lintrieur/lextrieur, cochez loption Points de connexion dans la section Coller de
la bote de dialogue Magntisme et collage sur le systme de lutilisateur. Lorsquun
utilisateur fait glisser une forme dote de points de connexion vers lextrieur ou vers
lintrieur/lextrieur, la forme est attire par le point de connexion vers lintrieur ou
vers lintrieur/lextrieur le plus proche. Si une forme comporte plusieurs points de
connexion vers lextrieur, Visio attire le point de connexion le plus proche du
pointeur de la souris.
A C
B
D
L I AI SON DES FORMES : FORMES 1D ET COL L AGE 173
Un point de connexion peut possder une direction, ou vecteur, qui dtermine si les
formes pivotent lorsquelles sont colles ensemble. A lorigine, si un point de
connexion est plac sur les lments de gomtrie dune forme, son vecteur est
perpendiculaire au segment sur lequel le point de connexion est plac. Sinon, le point
de connexion est dot dun vecteur gal 0 (cest--dire aucune direction). Lorsquun
point de connexion vers lextrieur est coll un point de connexion vers lintrieur
(ou vers lintrieur/lextrieur) et que les deux points de connexion sont dots dun
vecteur diffrent de zro, Visio aligne ces deux vecteurs et fait pivoter la forme selon
les besoins. Si lun ou lautre des points de connexion a un vecteur gal 0, les formes
ne sont pas pivotes.
Le vecteur dun point de connexion
dtermine le mode de rotation
dune forme lorsquelle est colle.
A Vecteur perpendiculaire (par dfaut)
B Vecteur angulaire
C Pour modifier le vecteur dun point de connexion, slectionnez ce point de connexion, et faites
glisser la poigne de direction verte et arrondie jusqu ce que vous obteniez langle souhait.
D Aucun vecteur
E Pour viter quune forme pivote lorsquelle est colle, faites glisser la poigne de direction sur le
point de connexion. Cette poigne devient grise, ce qui signifie que le point de connexion na pas
de vecteur.
A B
C
D
E
174 CHAP I TRE 8
Lorsquune forme dote dun point de connexion vers lextrieur est colle, Visio
gnre des formules dans ses cellules AxeX, AxeY et Angle reprsentant la liaison de
cette forme avec la forme laquelle elle est colle. Par exemple, les formules suivantes
sont celles gnres pour lune des formes colles le long du vecteur perpendiculaire.
Cercle1 est le nom de la forme laquelle elle est colle ; les rfrences la cellule
EvnXFMod de la forme de cercle et la page garantissent que la forme colle sera
dplace ou pivote selon les besoins pour conserver la liaison. Les formules
LOCVERSPAR et ANGLEVERSPAR convertissent les coordonnes locales de la
forme colle en systme de coordonnes de la forme laquelle elle est colle (Cercle1).
Comparez les formules AxeX et AxeY dune forme dote dun vecteur gal 0.
Comme la forme na fait lobjet daucune rotation, Visio ne gnre pas de
formule Angle.
Ajout de point s de connexion une f orme
Visio cre automatiquement un point de connexion vers lintrieur au niveau du
sommet ou de la poigne de slection dune forme lorsquun lien est coll cet
emplacement ; najoutez des points de connexion manuellement que lorsque vous
avez besoin dun point de connexion vers lintrieur un emplacement inhabituel,
ou dun point de connexion vers lextrieur ou vers lintrieur/lextrieur.
Pour ajouter un point de connexion une forme, utilisez loutil Point de connexion
de la barre doutils. Pour ajouter des points de connexion vers lextrieur ou changer
le type dun point de connexion, choisissez Outils > Options, cliquez sur longlet
Options avances, puis vrifiez que loption Excuter sous le mode dveloppeur de la
section Paramtres dveloppeurs est coche.
AxeX = L0CvEPSPAP|PhT|Cec1e1!Cohhecf1ohs.X2+-0,3S36 po.
Cec1e1!Cohhecf1ohs.Y2+0,3S36 po.)
Cec1e1!EvhXIModLaPage!EvhXIMod)
AxeY = L0CvEPSPAP|PhT|Cec1e1!Cohhecf1ohs.X2+-0,3S36 po.
Cec1e1!Cohhecf1ohs.Y2+0,3S36 po.)
Cec1e1!EvhXIModLaPage!EvhXIMod
Ahg1e = AhCLEvEPSPAP|-4S degCec1e1!EvhXIMod,EvhXIMod)
AxeX =
PhTX|L0CvEPSPAP|PhT|Cec1e3!Cohhecf1ohs.X2Cec1e3!Cohhecf1ohs.Y2)
Cec1e3!EvhXIModLaPage!EvhXIMod))+-0,S po.
AxeY =
PhTY|L0CvEPSPAP|PhT|Cec1e3!Cohhecf1ohs.X2Cec1e3!Cohhecf1ohs.Y2)
Cec1e3!EvhXIModLaPage!EvhXIMod))+0 po.
L I AI SON DES FORMES : FORMES 1D ET COL L AGE 175
Pour crer un point de connexion :
1 Slectionnez une forme.
2 Slectionnez loutil Point de connexion.
REMARQUE : loutil Point de connexion permet dajouter un point de connexion la
forme slectionne. Vous devez donc toujours slectionner la forme laquelle vous
souhaitez ajouter le point de connexion avant dutiliser cet outil.
3 Effectuez lune des oprations ci-dessous :
Pour crer un point de connexion vers lintrieur, maintenez la touche Ctrl
enfonce, puis cliquez sur lemplacement o vous souhaitez ajouter ce point.
Pour crer un point de connexion vers lextrieur, maintenez les touches
Ctrl+Alt enfonces, puis cliquez sur lemplacement o vous souhaitez ajouter ce
point.
Pour crer un point de connexion vers lintrieur/lextrieur, slectionnez un
point de connexion, cliquez dessus avec le bouton droit et choisissez Vers
l'intrieur et l'extrieur dans le menu contextuel.
Lorsque vous ajoutez un point de connexion, Visio ajoute la section Points de
connexion dans la fentre Feuille ShapeSheet. Cette section contient une ligne qui
dcrit les coordonnes locales x et y du point, les coordonnes x et y de sa direction, et
son type (vers lintrieur, vers lextrieur ou vers lintrieur/lextrieur). Vous pouvez
contrler le comportement dun point de connexion lors du redimensionnement de
la forme en modifiant les formules de ses coordonnes.
Si vous ajoutez un point de connexion la gomtrie de la forme, Visio oriente le
vecteur de direction perpendiculairement au segment sur lequel le point de
connexion a t ajout (vers lintrieur pour un point de connexion vers lintrieur,
vers lextrieur pour un point de connexion vers lextrieur, ou vers lintrieur et vers
lextrieur pour un point de connexion vers lintrieur/lextrieur).
176 CHAP I TRE 8
CONSEIL : si loption Coller sur Gomtrie des formes est active et que lutilisateur fasse
glisser une forme dote dun point de connexion vers lextrieur vers une autre forme,
Visio cre automatiquement un point de connexion vers lintrieur avec le vecteur
appropri et colle les formes. Si les formes sont spares, rompant ainsi le collage, Visio
supprime automatiquement le point de connexion cr.
Pour empcher dautres formes dtre colles aux lments de gomtrie dune forme,
paramtrez sur TRUE la cellule NoSnap de la section Gomtrie de la forme. Cette
opration dsactive les fonctionnalits de collage et dattraction des formes 2D, et des
lments de gomtrie, de dcalage des formes 1D par rapport ces lments, et
dattraction des extensions de forme. Par exemple, effectuez ce paramtrage pour
empcher une forme de fentre de se connecter un appareil lectrique, ou une chaise
dtre connecte une autre chaise. Le paramtrage de NoSnap implique que les
utilisateurs ne peuvent faire pivoter les formes que dune faon trs limite lorsquils les
approchent dventuels points dattraction, et filtre les extensions gomtriques superflues.
At t ribut ion dun nom aux point s de connexion
Vous pouvez renommer la ligne Points de connexion et faire rfrence de faon plus
explicite aux valeurs contenues dans les cellules X ou Y quelle contient. Le nom de
cellule que vous saisissez doit tre unique au sein de la section. Lorsque vous crez un
nom pour une cellule de cette section, Visio attribue le nom par dfaut
Connections.Ligne_n aux autres cellules de cette section. Si aucune ligne de la section
nest nomme, la cellule du nom est vierge.
Par exemple, pour renommer la cellule de la premire ligne, saisissez Personnalise
dans la barre de formule afin de crer le nom de cellule Connections.Personnalise.
Visio attribue le nom Connections.Ligne_2 la cellule de la deuxime ligne. Pour
faire rfrence la cellule X de la premire ligne, utilisez Connections.Personnalise.X
ou Connections.X1. Pour faire rfrence la cellule Y de la premire ligne, utilisez
Connections.Personnalise.Y1 ou Connections.Y1. Pour faire rfrence la cellule X
de la deuxime ligne, utilisez Connections.Ligne_2.X ou Connections.X2, et
Connections.Ligne_2.Y ou Connections.Y2 pour faire rfrence la cellule Y.
L I AI SON DES FORMES : FORMES 1D ET COL L AGE 177
Concept ion de f ormes de lien dynamique
Dans Visio 2000, un lien dynamique peut tre tir lintrieur de la zone dlimitant
une forme et couper la gomtrie de la forme. (La zone dlimitant une forme est le
plus petit rectangle impossible faire pivoter entourant le rectangle de slection de la
forme.)
Intersection dynamique avec la
gomtrie de la forme
Un lien dynamique peut galement tre tir dans des groupes et couper la gomtrie
dune forme au sein du groupe. Dans les programmes Visio antrieurs Visio 2000, le
lien dynamique ne pouvait pas tre tir dans la zone dlimitant la forme ou au sein
des groupes.
Intersection dynamique avec des
formes incluses dans des groupes
Lintersection dynamique est active par dfaut pour les formes. Elle implique
toutefois que le moteur Visio effectue des calculs complexes qui peuvent avoir une
incidence sur les performances de la forme lorsquun lien est coll dynamiquement,
notamment dans les formes complexes ou composes de plusieurs lments, ou dans
les groupes contenant plusieurs formes.
A Intersection dynamique
active
B Intersection dynamique
dsactive
C Intersection dynamique
active pour une forme
partiellement en dehors
de son rectangle
dalignement. Le lien
dynamique
recherche la
gomtrie la plus
lextrieur sur la bordure
laquelle elle est colle.
A B C
A Intersection dynamique active B Intersection dynamique dsactive
A B
178 CHAP I TRE 8
La cellule CodeFixeForme de la section Mise en page des formes permet de contrler
lintersection dynamique dune forme. CodeFixeForme contient un nombre entier de
huit bits, chaque bit contrlant un comportement de liaison dynamique. Pour
dsactiver lintersection dynamique dune forme, paramtrez la valeur de sa cellule
CodeFixeForme sur sa valeur actuelle laquelle vous ajoutez 128. Pour activer de
nouveau lintersection dynamique pour cette forme, tez 128 de la valeur actuelle de
sa cellule CodeFixeForme. Pour plus dinformations sur lattribution dautres valeurs
CodeFixeForme sur dautres valeurs, reportez-vous laide en ligne Rfrence du
dveloppeur (accessible via ? (Aide) > Rfrence du dveloppeur) fournie avec Visio.
Pour dvelopper des formes ayant de bonnes performances lorsquelles sont utilises
avec un lien dynamique, prenez en compte les suggestions suivantes :
Concevez la forme en veillant ce que tous ses lments de gomtrie soient
lintrieur du rectangle de slection. Vous obtenez ainsi les meilleurs rsultats
lorsquun lien dynamique est coll la forme.
Crez des points de connexion sur la forme si vous souhaitez que le lien
dynamique soit coll des emplacements particuliers. Si une forme est dote dun
point de connexion sur le ct vers lequel le lien dynamique pointe, ce lien sera
coll au point de connexion plutt quaux lments de gomtrie de la forme ; les
longs calculs provoqus par une intersection dynamique sont ainsi vits.
Si vous souhaitez empcher systmatiquement le lien dynamique de couper les
lments de gomtrie dune forme, dsactivez lintersection dynamique en
paramtrant la cellule CodeFixeForme de la forme. Cette dsactivation est tout
spcialement recommande pour les formes incluses dans dautres formes, comme
dans le cas des groupes.
Sommaire
9
Crat ion dun comport ement
de t ext e
Par dfaut, lutilisateur peut ajouter du texte nimporte quelle forme Microsoft


Visio

. Lorsque vous crez des formes, il est important de considrer la position et


laspect du bloc de texte associ cette forme. Le texte doit-il pivoter avec la forme ?
Doit-il tre redimensionn avec la forme ? La forme peut-elle recevoir du texte ?
La varit des comportements possibles dun texte est infinie, mais, en pratique,
quelques comportements seulement savrent utiles. Aprs tout, lobjectif est de crer
du texte lisible ayant un bel aspect. Etant donn quun comportement de texte trs
intelligent implique gnralement des formules trs longues, trs lentes et trs
complexes, vous devez quilibrer la sophistication du bloc de texte par les utilisations
prvues de la forme. Il ny a pas quune rponse simple, mais la cohrence est
importante : des formes semblables doivent avoir un comportement de texte
semblable.
A propos du texte contenu dans les formes et dans les formes de base.......... 180
Redimensionnement de formes contenant du texte........................................... 185
Contrle de la rotation du texte............................................................................ 191
Utilisation des formules de texte.......................................................................... 198
180 CHAP I TRE 9
A propos du t ext e cont enu dans les f ormes et dans les
f ormes de base
Le texte dune forme ou dune forme de base dispose dun systme de coordonnes
dfini par une origine et par des axes relatifs au systme de coordonnes locales de la
forme. Ce systme de coordonnes est appel bloc de texte. Lorsque vous crez une
forme ou une forme de base, le bloc de texte correspondant est, par dfaut,
exactement de la mme taille, en largeur et en hauteur, que la case de la forme ou de la
forme de base : il possde la mme largeur et la mme hauteur, et sa rotation par
rapport la forme est nulle. Par dfaut, son axe correspond son centre.
Les systmes de coordonnes
locales dune forme et son bloc
de texte
A Coordonnes locales de la forme non pivote
B Bloc de texte pivot par rapport au systme de coordonnes locales de la forme
Le tableau suivant rpertorie certains facteurs considrer lors de la cration dun
comportement de texte pour une forme ou une forme de base.
Facteurs considrer lors de la cration dun comportement de texte
Elment Questions se poser
Position du bloc
de texte
Q uel est son emplacement dans la forme ou dans la forme
de base ?
La forme ou la forme de base doit-elle avoir plusieurs blocs
de texte ?
Taille du bloc de texte Y a-t-il une taille minimale ou maximale ?
Le bloc de texte doit-il s agrandir si du texte est ajout ?
Le texte doit-il dterminer la taille de la forme ?
La taille du texte est-elle modifie par le redimensionnement, la
rotation ou le retournement de la forme ?
Apparence du bloc
de texte
Le texte doit-il utiliser un arrire-plan opaque ?
I nteraction utilisateur L utilisateur peut-il ajouter ou modifier le texte dans
une forme ?
L utilisateur peut-il dplacer le bloc de texte par rapport
la forme ?
CRATI ON D UN COMP ORTEMENT DE TEXTE 181
Af f ichage des at t ribut s de t ext e dans la f ent re ShapeSheet
La section Transformation du texte de la forme permet de dfinir la taille,
lemplacement et la rotation du bloc de texte dans le systme de coordonnes locales
de la forme, tandis que la section Transformation de la forme positionne une forme
dans son groupe ou dans la page. Pour afficher la section Transformation du texte,
ouvrez la fentre ShapeSheet

de la forme ou de la forme de base, puis choisissez


Insertion > Section, slectionnez Transformation du texte, puis cliquez sur OK.
Par dfaut, la section Transformation du texte contient les valeurs affiches dans le
tableau suivant.
Les options de la bote de dialogue Texte correspondent aux cellules des sections
Caractres, Paragraphe, Tabulations et Format de bloc de texte de la forme.
Lorsquun utilisateur applique une commande de formatage du menu Format,
le moteur Visio met jour les cellules contenues dans ces sections de la feuille de
la forme.
Les numros de ligne affichs dans ces sections refltent le nombre de caractres (plus
spcialement, le nombre doctets) qui, comme le montre la figure suivante, utilisent le
formatage dfini dans cette ligne. Par exemple, dans une section Caractres avec les
numros de ligne 18, 16 et 13, le format des 18 premiers caractres du bloc de texte est
celui de la premire ligne. Le format des 16 caractres suivants est celui de la seconde
ligne, et ainsi de suite.
Section Caractres dune forme
avec plusieurs formats de police
Valeurs par dfaut de la section Transformation du texte pour une nouvelle forme
Cellule Formule
AngleTexte = 0 deg
HauteurTxt = haufeu " 1
AxeLocXTexte = LageuTxf " 0,S
AxeLocYTexte = haufeuTxf " 0,S
AxeXTexte = Lageu " 0,S
AxeYTexte = haufeu " 0,S
LargeurTxt = Lageu " 1
182 CHAP I TRE 9
En gnral, si vous crivez des formules personnalises dans les sections Caractres,
Paragraphe, Tabulations ou Format de bloc de texte, pensez prendre en compte les
actions utilisateur qui pourraient remplacer votre travail. Par exemple, si un
utilisateur formate localement des caractres dans un bloc de texte, une nouvelle ligne
est ajoute pour dcrire le formatage de ces caractres. Lorsquun utilisateur coupe du
texte, les lignes concernes sont supprimes. Si vous souhaitez crire une formule
personnalise dans une cellule de la section Caractres, copiez la formule dans cette
cellule sur chaque ligne de la section. Ainsi, si des lignes sont ajoutes ou supprimes,
la formule reste intacte.
REMARQUE : si la forme est un groupe, les formules qui renvoient aux cellules Largeur et
Hauteur pourraient avoir besoin dtre modifies afin que vous puissiez accder aux
valeurs du groupe plutt qu celles dune forme de composant.
Cont rle de la posit ion du bloc de t ext e
Lorsque vous dveloppez une forme, il est souvent prfrable de dplacer le bloc de
texte de son emplacement par dfaut pour que le texte sadapte plus facilement. Par
exemple, le bloc de texte de nombreuses formes Visio apparat, par dfaut, au-dessous
des formes ; ainsi, lorsque vous saisissez du texte dans le bloc, vous nobscurcissez pas
la forme. Vous pouvez facilement dplacer manuellement le bloc de texte en
slectionnant la forme laquelle il correspond laide de loutil Bloc de texte ( )
Pour dplacer le bloc de texte
manuellement, slectionnez la
forme avec loutil Bloc de texte,
puis faites-la glisser. Loutil Bloc de
texte se transforme alors en une
case double.
Lorsque vous slectionnez le bloc de texte dune forme laide de loutil Bloc de texte,
vous pouvez rapidement le redimensionner en faisant glisser une poigne de slection
latrale, ou le faire pivoter en faisant glisser une poigne de rotation. Si vous crez des
formes pour les transmettre dautres utilisateurs, assurez-vous que le bloc de texte
est assez grand pour que ces utilisateurs puissent facilement effectuer des slections et
des ajustements. Il arrive, par exemple, que la taille par dfaut du bloc de texte dune
forme 1D soit trop petite pour que lutilisateur puisse effectuer des slections et des
ajustements laide de loutil Bloc de texte.
CRATI ON D UN COMP ORTEMENT DE TEXTE 183
Ajout de poignes de cont rle permet t ant de manipuler un
bloc de t ext e
Si vous souhaitez fournir aux utilisateurs de vos formes une mthode plus pratique
pour ajuster la position du texte, vous pouvez ajouter une poigne de contrle
permettant de dplacer le bloc de texte.
Lajout dune poigne de contrle
au bloc de texte dune forme facilite
son repositionnement.
Bien que vous puissiez crire manuellement des formules qui excutent la mme
opration, il existe un moyen rapide dajouter une poigne de contrle pour dplacer
le bloc de texte : il sagit de lAssistant SmartShape. Cet Assistant contient les options
qui permettent de paramtrer la position du bloc de texte, puis de dfinir une poigne
de contrle pour laxe du bloc.
Pour ajout er une poigne de cont rle laide de lAssist ant Smart Shape :
1 Slectionnez une forme, puis choisissez Outils > Macros > Supplments Visio >
Assistant SmartShape.
2 Dans les options SmartShape, choisissez Personnaliser le texte de la forme, puis
cliquez sur Modifier les options.
3 Dans lcran de positionnement du texte, choisissez la position initiale souhaite
pour le bloc de texte, puis cliquez sur Suivant.
La case Ajouter une poigne de contrle la forme est dj coche.
4 Suivez les instructions lcran pour mettre fin lAssistant.
Apparence des poignes de cont rle du t ext e dans la f ent re
ShapeSheet
En ajoutant une section Points de Contrle la forme et en saisissant des formules sur
cette ligne, lAssistant SmartShape permet de dfinir la poigne de contrle de laxe du
texte ; si vous ajoutez une poigne de contrle manuellement, vous devez saisir des
formules semblables.
184 CHAP I TRE 9
Sur la ligne de la poigne de contrle, les formules peuvent varier en fonction de la
position du bloc de texte choisie. Par exemple, si vous avez centr le bloc de texte
au-dessous de la forme, ces formules sont ajoutes la section Points de Contrle :
En outre, ces formules sont ajoutes la section Transformation du texte :
Sil sagit de la premire poigne de contrle dfinie pour la forme, n est gal 1. Si la
forme contient des poignes de contrle prdfinies, une ligne est ajoute la section
Points de Contrle, et n est gal au numro de cette ligne. Les cellules Xn et Yn
indiquent la position de la poigne de contrle par rapport aux coordonnes locales
de la forme. La poigne de contrle apparat au centre du bloc de texte.
Les formules contenues dans les cellules DynamiqueX et DynamiqueY dfinissent la
position du point dancrage de la poigne de contrle au centre de la forme. Pour plus
dinformations sur les points dancrage dune poigne de contrle, reportez-vous la
section Dfinition du point dancrage dune poigne de contrle , page 136. Les
cellules Comportement X et ComportementY permettent de dfinir le comportement
de la poigne de contrle une fois quelle a t dplace ou que la forme a t
redimensionne.
Cont rle du t ext e dans un groupe
Lorsque vous groupez des formes, un bloc de texte est cr pour le groupe ; vous
pouvez aussi exploiter les blocs de texte de chacune des formes constituant le groupe.
Par dfaut, le bloc de texte du groupe souvre lorsque lutilisateur appuie sur la touche
F2, slectionne loutil Texte ( ) ou commence saisir des caractres. Pour ajouter
du texte dans toute autre forme du groupe, lutilisateur doit tout dabord slectionner
la forme.
Xh = Lageu " 0,S + LageuTxf " 0
Yh = haufeu " 0 + haufeuTxf " -0,S
0yham1queX h = Lageu/2
0yham1queY h = haufeu/2
CompofemehfX h = |Po1hfs de cohf1e.Xh > Lageu/2) " 2 + 2
CompofemehfY h = |Po1hfs de cohf1e.Yh > haufeu/2) " 2 + 2
AxeXTexfe = Po1hfs de cohf1e.Xh
AxeYTexfe = Po1hfs de cohf1e.Yh
CRATI ON D UN COMP ORTEMENT DE TEXTE 185
Pour afficher du texte modifiable qui correspond une forme de base reprsentant un
groupe, il est prfrable dutiliser le bloc de texte du groupe. Par exemple, vous
pouvez crer la forme de base dun panneau de signalisation routire indiquant une
limitation de vitesse. Pour permettre lutilisateur de modifier facilement la valeur de
la limitation de vitesse, vous pouvez utiliser le bloc de texte du groupe qui contient le
nombre correspondant la limitation, tandis que la forme contenue dans le groupe
peut contenir le libell Vitesse limite .
Lutilisation du bloc de texte dun
groupe facilite la modification du
texte dans les formes de base
cres. Lorsque la forme de base
est un groupe (A), le bloc de texte
de ce groupe (B) peut contenir le
texte que lutilisateur souhaitera
vraisemblablement modifier.
Vous pouvez empcher la modification du bloc de texte dun groupe en
dslectionnant loption Modifier le texte du groupe dans la bote de dialogue
Comportement du groupe (choisissez Format > Comportement) ou en changeant la
valeur TRUE de la cellule CibleModifTexte du groupe en FALSE.
Si le bloc de texte du groupe ne peut pas tre modifi, le bloc de texte qui souvre
lorsque lutilisateur appuie sur la touche F2, slectionne loutil Texte ( ) ou
commence saisir des caractres est celui de la forme de plus haut niveau. Si le bloc de
texte dun groupe ne peut pas tre modifi et si la forme de plus haut niveau est elle-
mme un groupe, les paramtres du bloc de texte de ce groupe permettent de
dterminer si le bloc de texte du groupe ou de la forme de plus haut niveau est ouvert.
Pour plus dinformations sur le groupement des formes, reportez-vous au chapitre 6,
Regroupement et fusion de formes .
Redimensionnement de f ormes cont enant du t ext e
Une fois le texte modifi ou la forme redimensionne, le texte associ aux formes doit
apparatre correctement. Vous pouvez contrler le comportement et lapparence du
texte avec des formules qui mettent en corrlation la gomtrie de la forme et le texte.
Le moyen le plus rapide dajouter des formules de texte communes consiste utiliser
lAssistant SmartShape ; vous pouvez par ailleurs ajouter des formules plus avances
en modifiant les cellules de la fentre ShapeSheet

.
186 CHAP I TRE 9
Cette section dcrit le contrle de la taille dun bloc de texte au fur et mesure que
lutilisateur saisit des informations, le redimensionnement dune forme en fonction
de la quantit ou de la valeur de son texte, les modifications proportionnelles de la
police de caractres dune forme au fur et mesure du redimensionnement de
la forme.
Cont rle de la t aille du bloc de t ext e
Lorsque vous utilisez lAssistant SmartShape pour personnaliser le comportement du
bloc de texte, lAssistant suppose que vous souhaitez que le bloc de texte sagrandisse
au fur et mesure que lutilisateur y ajoute du texte ; cest pourquoi il ajoute des
formules pour contrler la taille du bloc de texte. Ces formules permettent de dfinir
les limites initiales du bloc de texte, puis de sassurer que le bloc de texte peut tre
redimensionn pour accueillir lintgralit du texte ajout. Vous pouvez modifier ces
formules ou en crer dautres qui dfinissent un comportement diffrent.
Pour contrler la taille du bloc de texte, lAssistant utilise la fonction MAX pour
dfinir la taille maximale permise, et les fonctions HAUTEURTEXTE et
LARGEURTEXTE, qui permettent de calculer la largeur et la hauteur du texte
compos (leTexte) dans une forme. LAssistant ajoute ces formules la section
Transformation du texte de la forme :
Cont rle de la largeur du bloc de t ext e
Par dfaut, la largeur du bloc de texte est paramtre sur la valeur la plus grande : soit
la valeur de la plus longue ligne de texte termine par un retour chariot, soit la valeur
de huit fois la taille de police (ce qui garantit que le bloc de texte est au moins assez
large pour contenir un mot ou deux). Si le bloc de texte contient du texte format
avec plusieurs tailles de police, cette formule utilise la taille de la premire police
employe dans le bloc de texte lors de la cration de la formule.
Pour associer la largeur dun bloc de texte une variable : vous pouvez saisir des
formules qui associent la largeur dun bloc de texte une variable diffrente, comme
la largeur de la forme ou la taille de police du texte ; vous pouvez galement dfinir
une largeur fixe pour le bloc de texte. Par dfaut, la largeur du bloc de texte est
identique la largeur de la forme. Si vous voulez que le bloc de texte corresponde la
moiti de la largeur de la forme, vous devez entrer la formule suivante dans la section
Transformation du texte de la feuille de la forme :
LageuTxf= MAX|hAuTEuPTEXTE|LeTexfe) " Ca.Ta111e)
haufeuTxf= LAPCEuPTEXTE|LeTexfe LageuTxf)
LageuTxf= Lageu/2
CRATI ON D UN COMP ORTEMENT DE TEXTE 187
Si vous voulez que le bloc de texte corresponde 20 fois la largeur de la taille de la
police, vous devez saisir la formule suivante :
Pour paramtrer la largeur minimale dun bloc de texte : vous pouvez aussi paramtrer la
largeur minimale dun bloc de texte en utilisant la fonction MIN. Par exemple, cette
formule garantit que, lorsquune forme est redimensionne, son bloc de texte ne
stire pas sur une largeur suprieure 4 pouces ou nest pas rduit une largeur
infrieure 0,5 pouce :
Dans ce cas, la valeur de la largeur minimale du bloc de texte est suprieure soit 0,5
pouce, soit la largeur de la forme. La valeur attribu la largeur minimale est la plus
faible valeur de la comparaison valeur maximale/4 pouces.
Pour empcher le redimensionnement dun bloc de texte : si vous voulez empcher le
redimensionnement du bloc de texte en cas de redimensionnement de la forme, vous
pouvez saisir une largeur fixe pour le bloc de texte. Par exemple, pour paramtrer la
largeur dun bloc de texte sur 2 pouces, vous devez saisir la formule suivante :
Cont rle de la haut eur dun bloc de t ext e
Normalement, vous voulez que la hauteur dun bloc sagrandisse lorsque lutilisateur
y ajoute du texte. Lorsque vous crez le comportement des blocs de texte, vous
souhaitez quil soit aussi souple que possible de manire ce que lutilisateur puisse
ajouter tout le texte ncessaire. Par dfaut, HauteurTxt est gal la hauteur de la
forme. Lorsque vous utilisez lAssistant SmartShape, la formule HauteurTxt quil
saisit renvoie la hauteur du texte compos de la forme, aucune ligne de texte ne
dpassant LargeurTxt :
Cette formule renvoie une valeur qui reprsente la hauteur du texte dans la forme, y
compris linterligne et lespace avant et aprs chaque paragraphe du bloc, lhypothse
tant quaucune ligne du bloc nest plus longue que la valeur maximale de
LargeurTxt. Cette formule donne de bons rsultats dans la plupart des cas, car elle
permet au bloc de texte de sagrandir en hauteur lorsque lutilisateur ajoute du texte.
LageuTxf= 20 " Ca.Ta111e
LageuTxf= MTh|4 po. MAX|0,S po. Lageu))
LageuTxf= 2 po.
haufeuTxf= LAPCEuPTEXTE|LeTexfe LageuTxf)
188 CHAP I TRE 9
Choix de la t aille de la f orme daprs la quant it de t ext e
Vous pouvez crer une forme dont la taille dpend de la quantit de texte quelle
contient. Si vous souhaitez une forme juste assez grande pour accueillir le texte saisi,
comme une bulle ou une lgende de texte, utilisez les fonctions HAUTEURTEXTE et
LARGEURTEXTE dans les formules de largeur et de hauteur de la forme.
Par exemple, la formule suivante de la section Transformation de la forme limite la
largeur dune forme la longueur des lignes de texte quelle contient, augmente
dune petite marge :
La fonction renvoie la largeur de tout le texte de la forme (leTexte). La largeur de la
forme est limite cette valeur plus 0,5 pouce ; lorsque le bloc de texte est vide, la
largeur de la forme est de 0,5 pouce. La fonction PROTECTION empche lutilisateur
dtirer la forme en largeur avec les poignes de slection, ce qui provoquerait
lcrasement des valeurs de la cellule Largeur. Pour que lutilisateur comprenne
rapidement que ltirement manuel de la forme est impossible, vous pouvez aussi
paramtrer la cellule VerrLargeur dans la section Protection.
Cette formule associe limite la hauteur dune forme au nombre de lignes de texte
quelle contient :
CONSEIL : les fonctions HAUTEURTEXTE et LARGEURTEXTE dclenchent la
recomposition par le moteur Visio du texte de la forme chaque slection de touche.
Pour maximiser les performances, vous pouvez inclure dans la formule un test de taille
minimale de manire ce que le texte sagrandisse seulement une fois quil atteint une
largeur ou une hauteur donne. Au-del de cette largeur ou de cette hauteur, le moteur
Visio doit recomposer le texte chaque slection de touche. Par exemple, vous pouvez
crer une zone de 2 pouces par 0,5 pouce qui augmente en hauteur pour sadapter au texte
supplmentaire. Pour dcaler les problmes de performances ventuels, la zone ne se
redimensionne pas tant que la hauteur du texte natteint pas 0,5 pouce. Pour crer ce
comportement, ajoutez ces formules dans la section Transformation de la forme :
Lageu = 2 po.
haufeu = PP0TECTT0h|MAX|0,S po. LAPCEuPTEXTE|LeTexfe Lageu)))
Lageu = PP0TECTT0h|hAuTEuPTEXTE|LeTexfe) + 0,S po.)
haufeu = PP0TECTT0h|LAPCEuPTEXTE|LeTexfeLageu))
CRATI ON D UN COMP ORTEMENT DE TEXTE 189
Choix de la t aille de la f orme daprs la valeur du t ext e
Vous pouvez crer une forme dont la taille est contrle par la valeur du texte quelle
contient. Par exemple, dans un histogramme, vous pouvez faire en sorte que la taille
dune barre dpend de la valeur quelle reprsente. Avec la fonction EVALTEXT, vous
pouvez crer des formes dorganigramme simples, ou dautres formes dans lesquelles
lutilisateur saisit une valeur qui dtermine la largeur ou la hauteur de la forme.
Par exemple, pour associer la largeur dune forme sa valeur de texte, placez la
formule suivante dans la section Transformation de la forme :
La fonction EVALTEXT calcule le texte prsent dans le bloc de texte de la forme
comme sil sagissait dune formule et renvoie le rsultat. Par exemple, si vous saisissez
10 cm, la largeur de la forme passe 10 cm. Sil ny a pas de texte ou si le texte ne peut
pas tre calcul, en cas, par exemple, de saisie dune valeur non numrique, la largeur
de la forme est gale zro. Vous pouvez affiner davantage la forme en la
redimensionnant seulement dans la direction du redimensionnement, dans le cas par
exemple dune barre qui est redimensionne du ct droit. Pour ce faire, utilisez
loutil de rotation pour dplacer laxe de la forme vers lextrmit stationnaire.
Modif icat ion de la t aille de la police lors du
redimensionnement dune f orme
Par dfaut, lorsquun utilisateur redimensionne une forme, sa gomtrie et le bloc de
texte associ sont modifis, mais pas la taille de la police. Vous pouvez dfinir la taille
de police comme tant une fonction de la gomtrie de la forme en utilisant
lAssistant SmartShape ou en crivant vos propres formules. Les formules traites
dans cette section ajustent uniquement la taille des caractres. Si vous souhaitez
modifier les retraits de texte ou linterligne, vous devez utiliser des formules
semblables dans les cellules qui contrlent ces attributs.
REMARQUE : si une forme doit tre utilise dans des dessins lchelle, prenez en compte
lchelle du dessin lorsque vous dfinissez la taille de la police en tant que fonction de la
hauteur de la forme.
Crat ion de f ormules de redimensionnement du t ext e laide
de lAssist ant Smart Shape
Vous pouvez utiliser lAssistant SmartShape pour dfinir la taille de la police comme
tant une fonction de la taille de la forme. Lorsquun utilisateur redimensionne la
forme, son texte augmente par rapport la valeur de sa hauteur.
Lageu = PP0TECTT0h|EvALTEXT|LeTexfe))
190 CHAP I TRE 9
Pour redimensionner le t ext e laide de lAssist ant Smart Shape :
1 Slectionnez une forme, puis choisissez Outils > Macros > Supplments Visio >
Assistant SmartShape.
2 Dans la zone des options SmartShape, choisissez Personnaliser le texte de la forme,
puis cliquez sur Modifier les options.
3 Cliquez sur Suivant jusqu ce que lcran Taille du texte apparaisse, puis
choisissez Taille de police proportionnelle.
4 Suivez les instructions lcran pour mettre fin lAssistant.
LAssistant paramtre la taille de la police proportionnellement la hauteur de la
forme en ajoutant la formule suivante dans la section Caractres :
La troisime valeur de la formule est un ratio driv de la division de la taille dorigine
du texte par la hauteur de la forme. Par exemple, si vous utilisez la forme Triangle du
gabarit Formes de base sans changer sa taille par dfaut, cette valeur peut tre
comprise entre 0,037 pour le texte qui tait lorigine de 4 points et 1,1852 pour celui
qui tait lorigine de 128 points.
Ecrit ure de f ormules de redimensionnement personnalises
Si vous souhaitez que la taille dune forme et que sa taille de police associe soient
redimensionnes proportionnellement, vous pouvez utiliser cette formule gnrale
dans la section Caractres :
Pour amliorer les performances des formes, vous pouvez stocker la formule
proportionnelle dans une cellule dfinie par lutilisateur. Par exemple, supposons que
la hauteur dorigine de la forme soit de 3 cm et que la taille dorigine de la police soit
de 10 pt. Insrez la section Cellules personnalises dans la fentre ShapeSheet, puis
ajoutez ces formules :
Ta111e = 1 " haufeu " 0,0741
Ta111e = |haufeu/<haufeu o1g1ha1e>) " |<fa111e de 1a po11ce
o1g1ha1e>)
uf11.Ta111ePo11ce = haufeu/3cm " 10pf
Ca.Ta111e = uf11.Ta111ePo11ce
CRATI ON D UN COMP ORTEMENT DE TEXTE 191
Pour que la taille de la police soit toujours lisible, vous pouvez limiter lintervalle des
tailles acceptables. Par exemple, pour limiter la taille de la police aux valeurs
comprises entre 4 et 128 points, vous utilisez les fonctions MIN et MAX, et la formule
proportionnelle prcdente pour obtenir la formule suivante :
Pour plus dinformations sur la syntaxe de la formule MIN et MAX, reportez-vous
laide en ligne Rfrence du dveloppeur (accessible via ? (Aide) > Rfrence du
dveloppeur) fournie avec Visio.
Veillez utiliser des tailles de police minimales et maximales prises en charge par les
imprimantes et les pilotes du systme. Pour garantir la cohrence lorsque la section
Caractres dune forme contient plus dune ligne, les cellules Taille des lignes associes
doivent utiliser les mmes formules.
Cont rle de la rot at ion du t ext e
Pour que lutilisateur nait pas lire le texte lenvers, vous pouvez contrler
lapparence du texte faisant lobjet dune rotation. Par dfaut, lorsquune forme est
pivote, le bloc de texte pivote galement, ce qui provoque des problmes de lisibilit
dans le cas dune rotation de 90 270 degrs. Si vous crez des formes destines tre
utilises dans des dessins o la lisibilit est importante, vous pouvez personnaliser le
comportement de rotation du texte en utilisant lune des mthodes suivantes :
Pour empcher que le texte soit lenvers lorsquune forme fait lobjet dune
rotation, utilisez la fonction PESANTEUR, qui oriente la ligne de base des lettres
vers le ct infrieur ou droit de la page.
Pour empcher systmatiquement le texte de pivoter, utilisez une formule de
rotation inverse pour que le bloc de texte reste droit par rapport au bas de la page
lors de la rotation dune forme.
uf11.Ta111ePo11ce = MTh|12pf MAX|4pf haufeu/3cm " 10pf))
192 CHAP I TRE 9
Cont rle de la rot at ion du t ext e laide de lAssist ant
Smart Shape
Pour accder la fonction PESANTEUR et viter dafficher du texte lenvers, ou
pour garantir que les blocs de texte sont toujours droits par rapport au bas de la page
laide dune formule de rotation lenvers, vous pouvez utiliser lAssistant
SmartShape. Par ailleurs, vous pouvez choisir de centrer ou de dcaler la pesanteur ou
le bloc de texte droit par rapport la forme. Par exemple, un pointeur de texte comme
ceux prsents dans les figures suivantes est format avec un arrire-plan de couleur
unie tout en restant centr sur la forme. En revanche, si vous crez les formes des rues
dun plan, vous avez la possibilit de dcaler les noms des rues par rapport aux lignes
qui reprsentent ces rues.
Le texte peut pivoter ou ne pas
pivoter avec la forme. Le
comportement par dfaut risque
dafficher le texte lenvers (A). Les
formules de pesanteur ajustent
lorientation du bloc de texte pour
plus de lisibilit (B), tandis que les
formules de texte droit font pivoter
le bloc de texte lenvers pour le
maintenir lendroit (C).
La rotation est cumulative. Si vous faites pivoter le bloc de texte dune forme, puis la
forme elle-mme, le pourcentage de rotation de la forme est ajout celui du bloc
de texte.
Crat ion dun t ext e droit ou applicat ion dune pesant eur une f orme
laide de lAssist ant Smart Shape :
1 Slectionnez une forme, puis choisissez Outils > Macros > Supplments Visio >
Assistant SmartShape.
2 Dans la zone Options SmartShape, choisissez Personnaliser le texte de la forme,
puis cliquez sur Modifier les options.
3 Cliquez sur Suivant jusqu ce que lcran Rotation de texte apparaisse, puis
choisissez Texte droit ou Pesanteur du texte.
4 Suivez les instructions lcran pour mettre fin lAssistant.
CRATI ON D UN COMP ORTEMENT DE TEXTE 193
Formules de pesant eur
Lorsque vous choisissez le comportement de pesanteur, lAssistant SmartShape ajoute
cette formule la section Transformation du texte :
La formule PESANTEUR calcule la rotation du bloc de texte pour la rotation de la
forme indique. La variable Angle reprsente la rotation courante de la forme. Si la
valeur dAngle figure dans lintervalle dfini par les deux angles suivants, dans ce cas
60 degrs et 120 degrs, la formule renvoie une valeur de 180 degrs et le bloc de texte
fait lobjet dune rotation de 180 degrs pour une lecture correcte. Si la valeur Angle
ne tombe pas dans cet intervalle, la formule renvoie une valeur de 0 degr et le bloc de
texte ne fait lobjet daucune rotation. Par cette formule, le texte reste droit pour la
plupart des angles de rotation. Pour plus dinformations sur la syntaxe de la formule
PESANTEUR, reportez-vous laide en ligne Rfrence du dveloppeur (accessible
via ? (Aide) > Rfrence du dveloppeur) fournie avec Visio.
Sans comportement PESANTEUR,
le texte ayant fait lobjet dune
rotation de 120 300
(ou 60) degrs (A) apparat
lenvers.
Si vous dcalez galement le bloc de texte de la forme, lAssistant ajoute des formules
aux cellules AxeXTexte et AxeYTexte pour dcaler laxe du bloc de texte en fonction
de la taille de la forme et de la quantit de texte quelle contient.
Formules de rot at ion inverse du t ext e droit
Si vous avez utilis lAssistant SmartShape pour crer du texte droit, la formule
suivante sajoute la section Transformation du texte pour faire pivoter dans le sens
inverse le bloc de texte lorsque la forme fait lobjet dune rotation :
Ahg1eTexfe = PESAhTEuP|Ahg1e -60deg. 120deg.)
Ahg1eTexfe = ST|TTX0P|PefouhemehfX PefouhemehfY) Ahg1e -Ahg1e)
194 CHAP I TRE 9
Cette formule permet de vrifier si la forme a t retourne, et dtermine langle
utiliser en fonction de ces informations. Si la forme a t retourne dans les deux
dimensions ou na pas t retourne du tout (si RetournementX et RetournementY
sont soit tous les deux TRUE, soit tous les deux FALSE), la formule BITXOR renvoie
la valeur FALSE et la formule SI renvoie la valeur Angle. Langle dorigine est conserv
si la forme a t retourne dans une dimension seulement (si RetournementX ou
RetournementY est TRUE). Le moteur Visio crit seulement les valeurs FALSE (0) ou
TRUE (1) dans les cellules RetournementX et RetournementY, pour que vous puissiez
partir du principe que ce sont les seules valeurs prsentes.
Si la forme ne doit jamais tre retourne, vous pouvez utiliser une formule plus simple
pour faire pivoter le bloc de texte lenvers :
Si vous faites pivoter le bloc de texte dune forme (de manire ce quAngleTexte >
0 degr), puis faites pivoter la forme, langle de texte apparent correspond alors la
somme des valeurs dAngleTexte et dAngle.
Exemples de cont raint e de t aille du bloc de t ext e
Avec lAssistant SmartShape, vous pouvez crer un comportement de texte droit pour
une varit de cas frquents, mais vous pouvez avoir besoin dun contrle
supplmentaire. Lorsque vous crez du texte droit pour une petite forme, la forme
peut tre obscurcie par le texte sil est volumineux ou si la forme est pivote. A laide
des formules dcrites ci-dessous, vous pouvez contraindre la largeur du bloc de texte
pour ladapter aux formes.
Lorsque vous crez le
comportement de texte dune
forme, vous pouvez empcher le
texte dobscurcir cette forme.
Ahg1eTexfe = -Ahg1e
A Un texte droit centr peut obscurcir la forme
lorsquil fait lobjet dune rotation, et par
dfaut, contraint la largeur du bloc de texte.
B Des formules intelligentes largissent le
bloc de texte si la forme fait lobjet dune
rotation.
CRATI ON D UN COMP ORTEMENT DE TEXTE 195
Cont raint e de largeur dun bloc de t ext e droit
Avec certaines formes, comme les flches 1D ou les formes courtes, il ne suffit pas de
faire pivoter le texte lenvers pour le maintenir droit. Au fur et mesure que la
forme pivote, le texte droit peut obscurcir des parties de la forme, comme dans la
figure prcdente, notamment lorsque le bloc larrire-plan opaque est centr
horizontalement et verticalement sur la forme. Vous pouvez crire des formules qui
maintiennent le bloc de texte droit et ajustent sa largeur lorsquun utilisateur fait
pivoter la forme ou ajoute du texte.
Lorsque vous utilisez la formule de rotation inverse dcrite dans la section Formules
de rotation inverse du texte droit , page 193, le bloc de texte reste droit tandis que la
forme pivote. Les formules Transformation du texte par dfaut adaptent la largeur du
bloc de texte la largeur de la forme, ce qui peut savrer inutile ou non esthtique si
la forme est tire lors de sa rotation. Pour adapter la largeur du bloc de texte la
largeur de la forme seulement si la forme est pivote jusqu 15 degrs par rapport
lhorizontale, utilisez les formules suivantes :
Pour plus de lisibilit, la formule de la cellule LargeurTxt ci-dessus conserve au bloc
de texte une largeur dau moins 0,5 pouce. Si la forme fait lobjet dune rotation
au-del de la limite dfinie dans la cellule B1 de la section Montage, la largeur du bloc
de texte est paramtre sur 2,5 pouces ; sinon, pour empcher le texte dobscurcir la
forme, elle est paramtre sur la largeur de la forme moins 0,25 pouce. La formule
contenue dans la cellule Montage.B1 effectue le test de rotation, et renvoie FALSE si le
bloc de texte est limit par la largeur de la forme ou TRUE si la largeur du texte nest
pas limite. La formule contenue dans la cellule A1 gnre un angle de forme
normalis dune valeur comprise entre 0 et 180 degrs pour dterminer la dflection
par rapport lhorizontale.
Ces formules fonctionnent, mais elles chouent pour les formes courtes qui sont
proches de la limite horizontale et qui ont du texte large. Une solution plus labore
doit prendre en compte la largeur de la forme ainsi que la largeur et la profondeur
composes du texte. Vous devez nanmoins noter que ce comportement amlior
peut tre contrebalanc par des performances moindres.
Mohfage.A1 = 0EC|M00uLuS|Ahg1e 10 deg.))
Mohfage.1 = Ah0|Mohfage.A1 >= 1S deg. Mohfage.A1 <= 16S deg.)
LageuTxf = MAX|0,S po. ST|Mohfage.1 2,S po. Lageu - 0,2S po.))
haufeuTxf = 0,2S po.
Ahg1eTexfe = ST|TTX0P|PefouhemehfX PefouhemehfY) Ahg1e -Ahg1e)
196 CHAP I TRE 9
Cont rle de la largeur dun bloc de t ext e droit dcal
Vous pouvez utiliser lAssistant SmartShape pour personnaliser le bloc de texte dune
forme afin quil reste droit tout en tant dcal par rapport la forme. Par exemple,
dans un plan damnagement de lespace, vous pouvez, comme le montre la figure
suivante, dplacer et faire pivoter les meubles tout en conservant les libells au mme
endroit. Pourtant, en fonction de lalignement du bloc de texte, de la rotation de la
forme et de la quantit de texte, le bloc peut obscurcir la forme. Vous pouvez crire
des formules de manire ce que le bloc de texte reste toujours dcal par rapport la
limite imaginaire qui dfinit les cts de la forme.
Dcalage du texte droit par rapport
une forme
Les formules permettant de crer ce comportement sont les suivantes :
A Langle le plus proche du bloc de texte est
dcal par rapport au ct de la forme.
B Au fur et mesure de lajout du texte, le
dcalage change pour que le bloc de
texte ncrase pas la forme.
LageuTxf= MAX| " Ca.Ta111e hAuTEuPTEXTE|LeTexfe))
haufeuTxf= LAPCEuPTEXTE|LeTexfe LageuTxf)
Ahg1eTexfe= ST|TTX0P|PefouhemehfX PefouhemehfY) Ahg1e -Ahg1e)
AxeXTexfe = Lageu + |LageuTxf/2 " AS|C0S|Ahg1e))
+ haufeuTxf/2 " AS|STh|Ahg1e)))
AxeYTexfe = haufeu/2
CRATI ON D UN COMP ORTEMENT DE TEXTE 197
Les cellules LargeurTxt et HauteurTxt permettent au bloc de texte de sagrandir au fur
et mesure de lajout du texte. Dans la cellule AngleTexte, la formule de rotation
inverse permet de conserver le texte droit. Le dcalage de laxe du bloc de texte
(AxeXTexte) est calcul partir de lhypothse selon laquelle, dans le systme de
coordonnes locales de la forme, le ct du bloc de texte se trouve lextrieur du
bord de la forme. La figure suivante montre que le dcalage correspond la somme
des lignes 1 et 2.
Calcul du dcalage du bloc de texte
La ligne 1 correspond au ct dun triangle rectangle dont lhypotnuse est gale
HauteurTxt/2 ; sa longueur est calcule laide de la cellule Angle de la section
Transformation de la forme dans la formule suivante :
La ligne 2 correspond au ct dun triangle rectangle dont lhypotnuse est gale
LargeurTxt/2 ; sa longueur est calcule laide de la formule suivante :
A Bord de la forme
B LargeurTxt/2
C HauteurTxt/2
D Dcalage AxeXTexte = 1 + 2
L1ghe 1 = |haufeuTxf/2) " AS|STh|Ahg1e))
L1ghe 2 = |LageuTxf/2) " AS|C0S|Ahg1e))
A
B
C
D
1
2
198 CHAP I TRE 9
Le dcalage est toujours une valeur positive, mme lorsque la forme fait lobjet dune
rotation ayant une valeur dangle ngative, car la fonction ABS est toujours utilise
pour renvoyer la valeur absolue des lignes 1 et 2. Ce type de calcul du dcalage ne
ncessite pas de formules supplmentaires pour empcher le bloc de texte dcraser la
forme au moment de sa rotation.
Ut ilisat ion des f ormules de t ext e
La modification des formules de texte dune forme permet de dfinir, dans les
solutions que vous dveloppez, un comportement des formes trs labor. Vous
pouvez afficher les valeurs des formules que vous saisissez et formater ces valeurs pour
quelles refltent davantage le rle de la forme. Cette section traite de certaines des
approches les plus avances que vous pouvez utiliser lors de la modification des
formules de texte dune forme ; elle fournit par ailleurs des informations sur la
protection des formules que vous crez et sur le test des formes permettant de garantir
que leur comportement correspond vos attentes.
Af f ichage et f ormat age des rsult at s dune f ormule
Vous pouvez afficher les rsultats dune formule et formater ses rsultats. Lorsque
vous slectionnez le bloc de texte, puis choisissez Insertion > Champ, le champ de
texte cr correspond rellement la valeur issue de la formule calcule dans une
cellule ShapeSheet

convertie en texte. Vous pouvez utiliser les mmes techniques


pour dvelopper des champs de texte personnaliss comme ceux que vous utilisez
dans la fentre ShapeSheet tout en affichant les rsultats formats dans la forme
mme.
Lorsque vous crez une formule pour un champ de texte, la formule apparat dans la
section Champs de texte de la fentre ShapeSheet de la forme. Les formules
apparaissent dans leur ordre dinsertion dans le texte, pas ncessairement dans leur
ordre daffichage.
Af f ichage de la largeur dune f orme dans dif f rent es unit s
Vous pouvez utiliser des champs de texte pour indiquer la largeur dune forme en
pouces, en centimtres, en points, etc. Pour ce faire, vous pouvez utiliser la fonction
FORMATEX pour indiquer les units que vous souhaitez afficher pour le rsultat.
La fonction FORMATEX utilise la syntaxe suivante :
I0PMATEX|expess1oh "1mage" |"uh1f-ehfe"] |"uh1f-sof1e"])
CRATI ON D UN COMP ORTEMENT DE TEXTE 199
Cette fonction renvoie le rsultat de lexpression calcul en unit-entre sous la forme
dune chane de formatage en fonction de limage exprime en unit-sortie. Le format
image est un code qui indique la manire dont le rsultat doit tre format. Si vous
indiquez une unit-entre et une unit-sortie, utilisez une valeur numrique ou une
unit de mesure correctement orthographie ou abrge (po, po., pouce, etc.). Si vous
ne prcisez pas dunit-entre, les units de lexpression ne seront pas converties.
Si vous ne spcifiez pas dunit-sortie, cest lunit dentre qui sera utilise.
Pour af f icher la largeur de la f orme dans un champ de t ext e laide de la
f onct ion FORMATEX :
1 Slectionnez une forme.
2 Choisissez Insertion > Champ.
3 Dans la section Catgorie de la bote de dialogue Champ, choisissez Formule
Personnalise.
4 Dans la zone Formule Personnalise, saisissez une expression utilisant la fonction
FORMATEX, en spcifiant limage du format souhait ainsi que les units dentre
et de sortie.
Par exemple, si la largeur est en pouces et si vous souhaitez lafficher en
centimtres, saisissez :
5 Cliquez sur OK.
Le moteur Visio formate la valeur de largeur en utilisant deux dcimales, abrge les
units et convertit les pouces en centimtres. Par exemple, si la largeur est de
1,875 pouces, le moteur Visio affiche 4,76 cm.
Pour plus dinformations sur les images de format correctes, recherchez correctes,
images de format dans laide en ligne Rfrence du dveloppeur (accessible via ?
(Aide) > Rfrence du dveloppeur) fournie avec Visio.
Af f ichage des valeurs dangle normalises
Vous pouvez crer une forme qui affiche son angle de rotation dans le texte qui lui est
associ. Par exemple, les formes qui reprsentent des lignes de roulement sur une
carte maritime ou des indicateurs de pente dans un diagramme de cadastre affichent
langle courant. Par dfaut, le moteur Visio renvoie des valeurs dangle de
-180 +180 degrs. Vous pouvez utiliser la fonction ANG360( ) pour convertir la
valeur de langle de la forme en une valeur de 0 360 degrs (ou de 0 2 radians),
puis afficher la valeur dans la forme.
= I0PMATEX|Lageu"0,00 u" "po." "cm.")
200 CHAP I TRE 9
Pour af f icher la valeur dun angle normalis dans un champ de t ext e :
1 Slectionnez une forme.
2 Choisissez Insertion > Champ.
3 Dans la section Catgorie, choisissez Formule Personnalise.
4 Dans la zone Formule Personnalise, saisissez :
5 Dans la section Format, choisissez Degrs.
6 Cliquez sur OK.
Format age des chanes et sort ie du t ext e
Lorsque vous affichez des chanes, comme les rsultats dune formule dans un champ
de texte ou des valeurs de proprit personnalise, sachez quil est possible de dfinir
un format pour la sortie. La sortie de texte peut tre formate sous la forme dune
paire nombre/unit, dune chane, dune date, dune dure ou dune devise.
Le moteur Visio reconnat une srie dimages de format qui formatent le texte tel que
vous souhaitez quil apparaisse. Par exemple, limage de format 0 #/10 uu formate
la paire nombre/unit 10,9 cm sous la forme 10 8/9 centimtres .
Les images de format apparaissent dans la liste des formats lorsque vous choisissez
Insertion > Champ, comme arguments pour les fonctions FORMAT et FORMATEX
et comme formules utilisables dans la cellule Format de la section Proprits
personnalises. Pour plus dinformations sur toutes les images de format que vous
pouvez utiliser comme la date, lheure, la dure, la devise et les notations scientifiques,
recherchez correctes, images de format dans laide en ligne Rfrence du
dveloppeur (accessible via ? (Aide) > Rfrence du dveloppeur) fournie avec Visio.
Ut ilisat ion de la f onct ion FORMAT
Dans toute formule qui se rduit une chane, comme les formules des champs de
texte personnaliss, vous pouvez utiliser la fonction FORMAT pour formater la sortie.
La fonction FORMAT utilise la syntaxe suivante :
Le rsultat de lexpression est format en fonction du style spcifi par limage.
La fonction renvoie une chane de la sortie formate. Limage de format doit tre
compatible avec le type dexpression utilis ; par ailleurs, vous ne pouvez pas
mlanger les types dexpression. Par exemple, si vous combinez le formatage dune
date et dun nombre en utilisant conjointement les images de format nombre et date
(#,## jjmmaa), le moteur Visio ignore la partie jjmmaa et essaie de calculer
lexpression en utilisant la premire partie (#,##) de limage de format.
= AhC360|Ahg1e)
I0PMAT|expess1oh "1mage")
CRATI ON D UN COMP ORTEMENT DE TEXTE 201
Pour utiliser la fonction FORMAT dans un champ de texte, indiquez une formule
personnalise comme le dcrit la section Affichage et formatage des rsultats dune
formule , page 198. Dans la zone Formule Personnalise, intgrez la fonction
FORMAT dans votre formule (pour saisir une formule dans la zone Formule
Personnalise, ouvrez le bloc de texte de la forme, choisissez Insertion > Champ,
slectionnez Formule Personnalise dans la liste Catgorie, puis saisissez la formule
dans le champ de texte Formule Personnalise).
Le tableau suivant contient des exemples de formatage des paires nombre/unit
standard.
Af f ichage des proprit s personnalises f ormat es
Vous pouvez formater la valeur affiche dune proprit personnalise pour que son
affichage corresponde au paramtrage effectu dans la bote de dialogue Proprits
personnalises. Pour ce faire, utilisez une image de format dans la cellule Format de la
section Proprits personnalises situe dans la fentre ShapeSheet de la forme. Par
exemple, une forme de planning peut avoir une proprit personnalise appele Cot
qui mesure le cot dun procd. Pour formater 1 200 en devise, vous pouvez spcifier
limage de format suivant dans la cellule Format de la section Proprits
personnalises de la forme :
Le moteur Visio utilise les Paramtres rgionaux du Panneau de configuration
Windows pour dterminer le symbole de la devise, le sparateur dcimal et le
sparateur des milliers afficher. Dans la version anglaise (Etats-Unis) de Microsoft


Windows

, la valeur est affiche dans la bote de dialogue Proprits personnalises


sous la forme $1,200.00 . Dans la version franaise de Windows, elle apparat sous
la forme 1 200,00 F .
Formats de texte personnaliss pour les paires nombre/unit
Syntaxe Affichage en sortie
I0PMAT| 0 p1. 11,S3 po. "0,## u") 0 p1. 11,S3 po.
I0PMAT| 260,632 cm "0,## u") 260,63 cm.
I0PMAT| 0 p1. 11,S3 po. "# #/# u") 11 S/9 po.
I0PMAT| 260,632 cm "0 #/# uu") 260 S/ cehf1mfes
I0PMAT| 260,632 cm "0 #/S uu") 260 3/S cehf1mfes
I0PMAT| 0p1. 11,S3 po. "0,000 u") 0 p1. 11,S30 po.
Iomaf = "$###,###.00"
202 CHAP I TRE 9
Par ailleurs, vous pouvez afficher la valeur dune proprit personnalise dans un
champ de texte. En choisissant Insertion > Champ lorsque la forme est slectionne,
vous pouvez indiquer une proprit personnalise et une image de format pour la
valeur de cette proprit. Dans la bote de dialogue Champ, vous pouvez spcifier une
proprit personnalise dans Catgorie. Le moteur Visio affiche la liste des images de
format appropries en fonction du type de donnes de la proprit personnalise.
La valeur dune proprit personnalise est alors affiche dans le bloc de texte de la
forme laide de limage de format que vous avez attribue.
Si vous avez lintention deffectuer des calculs avec des proprits personnalises, vous
pouvez dfinir un type de donnes diffrent de la chane pour la valeur de proprit,
comme un nombre, une devise, la date et lheure et la dure. Pour plus
dinformations, reportez-vous la section Proprits personnalises , page 146.
Prot ect ion des f ormules de t ext e
Il est possible de protger des formules de texte personnalises que vous avez cres
pour une forme de faon ce que les actions utilisateur ne puissent pas les craser.
De nombreuses actions utilisateur communes pour une page de dessin, comme
lapplication dune police, la dfinition des marges, lapplication dun style de texte,
ont une incidence sur les valeurs des sections Transformation du texte, Format de
bloc de texte, Caractres, Paragraphe et Tabulations. Si vous crivez des formules
pour personnaliser ces attributs de texte, vous pouvez effectuer les oprations
suivantes :
Protger la formule laide de la fonction PROTECTION.
Empcher les utilisateurs dapporter des modifications laide dun verrou
de protection.
Utilisez la fonction PROTECTION pour protger les formules contenues dans les
cellules qui contrlent la position ou lemplacement du bloc de texte. Par exemple,
protgez les formules qui personnalisent la largeur et la hauteur du texte de manire
ce que le redimensionnement dune forme ncrase pas vos formules. Lorsque vous
utilisez PROTECTION pour protger une formule dans une cellule qui contrle le
formatage du texte, lutilisateur ne peut pas formater le texte localement. Pour plus
dinformations sur les consquences de lapplication des styles sur les formules de la
forme, reportez-vous au chapitre 10, Gestion des styles, des formats et des
couleurs .
Utilisez un verrou de protection pour empcher lutilisateur de formater une forme
ou dy saisir des informations. Paramtrez sur 1 la cellule VerrFormat de la section
Protection pour empcher lutilisateur dappliquer tout formatage ou style.
Paramtrez sur 1 la cellule VerrModifTexte de la section Protection pour empcher
lutilisateur deffectuer des saisies dans une forme (mais pour lui laisser la possibilit
dappliquer un style de texte). Il est prfrable dutiliser VerrModifTexte seulement
dans les cas o la saisie de texte provoquerait des comportements inattendus de la
forme (comme cela peut arriver avec les trs petites formes).
CRATI ON D UN COMP ORTEMENT DE TEXTE 203
Vous pouvez cacher compltement le texte en paramtrant la cellule MasquerTexte
sur TRUE dans la section Divers. Vous pouvez toujours effectuer une saisie dans la
forme : le texte reste visible au fur et mesure que vous le saisissez, mais il napparat
pas dans la forme une fois que lopration de saisie est termine.
Bien entendu, plus vous utiliserez de protections, moins vos utilisateurs pourront
modifier les formes. Vous devez donc chercher prserver les formules de forme
personnalises tout en permettant aux utilisateurs dexcuter correctement
leurs tches.
Test des f ormules de bloc de t ext e
Voici des procdures que vous pouvez utiliser pour tester le positionnement et le
redimensionnement du bloc de texte dune forme. Pour que la position du bloc de
texte reste correcte pendant quun utilisateur manipule la forme, vous devez tester
toutes les combinaisons de retournement, de rotation et dinversion des extrmits.
Pour t est er le posit ionnement du bloc de t ext e dune f orme :
1 Crez une occurrence de la forme de base tester, puis saisissez-y du texte.
2 Reproduisez loccurrence sept fois. Faites pivoter chaque occurrence par
incrments de 45 degrs. Disposez les huit occurrences dans un mdaillon.
Groupez-les pour les manipuler plus facilement.
Il sagit dune srie de tests qui
illustre le comportement normal de
la forme dans des rotations
diverses.
3 Reproduisez la srie de tests deux fois (pour les objets 2D) ou cinq fois (pour les
objets 1D), et disposez les occurrences du test sous forme de lignes avec trois
colonnes.
4 Sil sagit du test dune forme 1D, slectionnez les trois groupes de la ligne
infrieure, puis choisissez Forme > Oprations > Inverser les extrmits.
204 CHAP I TRE 9
5 Slectionnez le ou les groupes de la colonne centrale, puis choisissez Forme >
Retournement vertical.
6 Slectionnez le ou les groupes de la colonne de droite, puis choisissez Forme >
Retournement horizontal.
7 Imprimez les rsultats et examinez-les en dtail. Rglez tous les problmes et testez
de nouveau si ncessaire.
Vous devez ensuite tester les capacits de votre forme manipuler le texte. Pour ce
faire, remplacez dans chaque forme le texte de test, puis vrifiez les rsultats.
Pour t est er le mode de redimensionnement dune f orme au f ur et mesure
que du t ext e est ajout :
1 Slectionnez lune des formes, puis saisissez le nouveau texte.
Tapez suffisamment de caractres pour tirer le bloc de texte de manire
provoquer un comportement correspondant vos attentes.
2 Cliquez lextrieur de la forme, puis appuyez sur Ctrl+A pour slectionner toutes
les formes.
3 Appuyez sur F4 pour rpter le nouveau texte dans toutes les formes slectionnes.
4 Imprimez les rsultats et examinez-les. Rparez tous les problmes et effectuez le
test jusqu ce que vous obteniez les rsultats souhaits.
5 En guise de test final, redimensionnez chaque groupe. Essayez la fois des tailles
raisonnables, et des tailles trs petites ou trs grandes.
Les formes se comportent-elles comme vous lespriez ? Le texte apparat-il
correctement ? Pouvez-vous au moins le lire ? Sinon, vous devez dfinir une largeur
de texte minimale. Pour plus dinformations, reportez-vous la section Exemples de
contrainte de taille du bloc de texte , page 194.
Sommaire
10
Gest ion des st yles, des f ormat s et
des couleurs
Lorsque vous crez des formes, vous appliquez des styles aux formes que vous
dessinez pour garantir une certaine cohrence. Vous dfinissez galement des styles et
des options personnalises, comme les motifs de remplissage qui apparatront dans les
modles que vous crez pour les utilisateurs. Dans Microsoft

Visio

, les styles
fonctionnent un peu diffremment de ceux des autres logiciels, tels que les
programmes de traitement de texte ou les tableurs. En effet, dans Visio, vous pouvez
dfinir des styles qui appliquent simultanment des attributs de formatage au texte,
aux traits et aux remplissages. De mme, vous pouvez dfinir des styles qui appliquent
un formatage au texte seulement, aux traits seulement, aux remplissages seulement ou
une combinaison des trois.
Ce chapitre explique comment appliquer et crer des styles lorsque vous travaillez
avec des formes ; il contient des instructions permettant de crer les styles qui
apparaissent dans vos modles ; il explique comment modifier les attributs de
formatage des formes de base et comment protger les styles de celles que vous crez ;
enfin, il indique comment crer des motifs de trait, de remplissage et des extrmits
de trait que lutilisateur peut appliquer comme dans tout format Visio.
Utilisation des styles dans la page de dessin...................................................... 206
Instructions concernant lapplication de styles aux formes ............................... 209
Utilisation de styles dans les gabarits et les modles ........................................ 213
Protection des formats locaux des formes .......................................................... 215
Gestion de la couleur dans les styles, les formes et les fichiers........................ 216
Motifs personnaliss.............................................................................................. 219
206 CHAP I TRE 10
Ut ilisat ion des st yles dans la page de dessin
Les styles sont des ensembles nomms dattributs de formatage applicables une
forme. Dans Visio, un seul style peut dfinir des attributs de texte, de trait et de
remplissage, lapplication dun style peut donc constituer un moyen efficace dassurer
la cohrence des formes.
Lorsque vous appliquez un style une forme, vous formatez les attributs suivants :
Pour le texte : la police, la taille, le style (par exemple, gras ou italique), la couleur
et lespacement des caractres, lalignement du bloc de texte, les marges et la
couleur darrire-plan, lalignement des paragraphes, les retraits et lespacement,
lespacement des tabulations et le formatage des puces
Pour les traits : lpaisseur de trait, la couleur, le motif, lextrmit, le style de la
pointe de flche et le style de langle
Pour les remplissages : le motif et les couleurs de premier plan et darrire-plan de
lintrieur dune forme (son remplissage) et de son ombre, sil en existe une.
Prsent at ion des st yles
Vous pouvez appliquer un style une forme ou bien lui appliquer un formatage local
en utilisant les commandes du menu Format pour crer le mme effet. Si plusieurs
formes ont le mme format, les styles permettent dutiliser plus efficacement les
ressources de lordinateur que le formatage local. Dans un document Visio, une
dfinition de style est stocke un endroit seulement, et plusieurs formes peuvent y
faire rfrence. Avec le formatage local, toutes les instructions de formatage sont
stockes sparment avec chaque forme. Les formes formates laide de styles
rpondent plus rapidement que les formes formates localement lorsquelles sont
cres, dplaces, mises lchelle et pivotes.
Les attributs de format local sont
stocks avec chaque forme (A).
Lorsque vous appliquez un style
plusieurs formes, la dfinition du
style stocke les informations de
formatage un seul endroit (B).
GESTI ON DES STYL ES, DES FORMATS ET DES COUL EURS 207
Dans les documents que vous crez, vous pouvez dfinir sparment des styles pour
les attributs de texte, de trait et de remplissage, ou bien dfinir des styles qui
appliquent une combinaison dattributs. Visio rpertorie tous les styles qui appliquent
des attributs de texte dans la liste Tous les styles de la barre doutils Format ; les styles
qui concernent uniquement les remplissages et les traits sont rpertoris au-dessous
des attributs quils affectent dans la bote de dialogue Styles (Format > Style). Tous les
styles dun document sont rpertoris dans le dossier Styles de Drawing Explorer


(Affichage > Fentres > Drawing Explorer).
Lorsque lutilisateur applique un style issu de la liste Tous les styles une forme qui
prsente un formatage local, les attributs dfinis dans le style remplacent
automatiquement le formatage local correspondant. Les attributs formats
localement qui napparaissent pas dans le style ne sont pas modifis. Par exemple, si le
trait dune forme est format localement et que vous appliquiez un style qui indique
seulement un formatage de texte et de remplissage, le formatage local du trait restera
intact. En cliquant avec le bouton droit sur une forme et en choisissant Format > Style
dans le menu contextuel, lutilisateur peut aussi appliquer indpendamment des styles
pour chaque attribut. Par exemple, supposons quun formatage local ait t appliqu
au texte dune forme, mais que lutilisateur souhaite utiliser un style qui applique
normalement les trois attributs pour le remplissage et le trait. En choisissant les styles
de remplissage et de trait dans la bote de dialogue Styles, ces attributs sont appliqus,
tandis que le formatage du texte nest pas modifi. Pour plus dinformations,
reportez-vous la section Protection des formats locaux des formes , page 215.
Paramt rage des st yles par df aut dun dessin
Lorsque vous dessinez plusieurs formes, vous pouvez garantir une certaine cohrence
en indiquant les styles que vous utilisez le plus souvent comme styles par dfaut du
document. Le moteur Visio applique les styles de texte, de trait et de remplissage par
dfaut dfinis pour une page de dessin lorsque vous dessinez en utilisant lun des
outils de la barre doutils Standard. Vous pouvez aussi dfinir des styles par dfaut
pour la page de dessin dun modle afin que les utilisateurs dessinent de manire
cohrente ou en fonction de normes spcifiques.
Pour changer les st yles par df aut dun document :
1 Veillez ce quaucun lment ne soit slectionn et que la fentre de la page de
dessin soit active, puis choisissez Format > Style.
2 Dans les zones Style du texte, Style de trait et Style de remplissage, slectionnez de
nouveaux styles par dfaut, puis cliquez sur OK.
Les nouveaux styles par dfaut ont une incidence sur toutes les formes que vous
dessinez avec les outils de dessin. Les occurrences des formes de base insres sur la
page de dessin ne sont pas modifies : elles hritent du style de la forme de base.
Les nouveaux styles par dfaut restent actifs dans une page de dessin jusqu ce que
vous les changiez de nouveau.
208 CHAP I TRE 10
Crat ion dun st yle
Vous pouvez crer un style pour linclure dans votre modle ou pour formater
plusieurs formes rapidement et de manire cohrente. Les styles que vous dfinissez
dans vos modles apparaissent dans la fentre Drawing Explorer, dans les botes de
dialogue Style et Dfinir le style, et, sils appliquent un formatage de texte, dans la liste
Tous les styles de la barre doutils Format.
Vous pouvez crer intgralement un style ou llaborer partir dun style existant.
Par exemple, supposons que vous ayez cr un trait de 3 mm pour lequel vous avez
saisi une formule dans la cellule EpaisseurTrait. Si vous dessinez plusieurs traits de 3
mm, il est plus commode de crer un style que vous pouvez rutiliser. En crant des
styles bass sur des styles existants, vous pouvez dvelopper une hirarchie de styles,
dans laquelle les modifications apportes lun des styles sappliquent, comme le
montre la figure suivante, tous les styles quil a permis dlaborer. Vous devez vous
mfier, toutefois, de ne pas modifier par inadvertance plusieurs styles, ainsi que toutes
les formes formates avec ceux-ci, lorsque vous ne souhaitez en modifier quun seul.
Elaboration dun style partir dun
style de base existant
Lorsque vous crez un style, les paramtres sont hrits en fonction du mode de
cration du style, cest--dire partir de zro ou partir dun style existant :
Un style labor partir dun autre style hrite des attributs du style de base.
Un style entirement nouveau hrite des paramtres par dfaut du document pour
les attributs que vous cochez dans la zone Inclure de la bote de dialogue Dfinir les
styles. Pour dfinir votre style, vous pouvez modifier ces paramtres.
Pour crer un style, choisissez Format > Dfinir les styles. Loption Bas sur permet de
savoir si le style est bas sur un autre style. Pour plus dinformations sur lutilisation
de la bote de dialogue Dfinir les styles, recherchez styles dans laide en ligne
fournie avec Visio.
A Dfinition du style de base
B Dfinition du style driv
C Le style driv hrite du trait et du
remplissage du style de base.
D Toute modification du style de base est
reprsente sur le style driv.
GESTI ON DES STYL ES, DES FORMATS ET DES COUL EURS 209
Si vous dfinissez un style pour un dessin et que vous souhaitiez lutiliser dans un
autre dessin, vous pouvez copier le style. Pour cela, faites glisser une forme formate
avec le style dans le fichier dans lequel vous voulez ajouter le style (vous pouvez aussi
insrer la forme par copier-coller). Supprimez ensuite la forme. La dfinition du style
reste dans le fichier. Si le fichier contient dj un style portant le mme nom,
la dfinition existante est prioritaire et le style nest pas copi dans le fichier.
Modif icat ion dun st yle
Vous pouvez modifier un style de deux manires :
En choisissant Format > Dfinir les styles, puis en slectionnant un style existant
dans la liste Style dans la bote de dialogue Dfinir les styles et en changeant les
attributs Texte, Trait ou Remplissage du style.
En apportant des modifications aux formules du style.
Lapport de modifications dans la bote de dialogue Dfinir les styles est rapide et
conviviale. Toutefois, les options disponibles dans la fentre ShapeSheet

du style ne
sont pas toutes accessibles par lintermdiaire de la bote de dialogue Dfinir les styles.
Par exemple, vous pouvez dfinir des formules associes un style en modifiant les
cellules de la feuille de style.
Pour modif ier les f ormules dun st yle :
1 Choisissez Affichage > Fentres > Drawing Explorer.
2 Ouvrez le dossier Styles dans la fentre Drawing Explorer, cliquez avec le bouton
droit sur le style, puis choisissez Afficher la feuille ShapeSheet dans le menu
contextuel.
3 Apportez des modifications aux formules dans la feuille de style.
Inst ruct ions concernant lapplicat ion de st yles aux f ormes
Lorsque vous crez des formes pour vos propres gabarits ou que vous utilisez des
formes de base existantes, lutilisation des styles est un moyen efficace de formater les
formes. Visio offre plusieurs techniques dapplication et de modification des styles.
La technique utiliser dpend de ce que vous souhaitez faire : reformater toutes les
formes qui utilisent un style particulier, reformater la forme de base elle-mme et, par
extension, toutes les occurrences qui lui sont associes, ou modifier les occurrences
qui figurent sur la page de dessin.
Pour modifier lapparence de toutes les occurrences dune forme de base sur la
page de dessin et de celles que vous ajouterez par la suite, vous pouvez modifier les
styles du fichier de dessin.
210 CHAP I TRE 10
Pour modifier lapparence dune forme de base dans un gabarit, vous pouvez
reformater la forme en appliquant diffrents styles dans le gabarit autonome.
Pour reformater rapidement les occurrences dune forme de base sur la page de
dessin, vous pouvez modifier la copie de la forme de base dans le gabarit du
document.
Lorsque vous dfinissez un style,
vous pouvez modifier chaque
paramtre de texte, de trait et de
remplissage (A).
Ref ormat age des f ormes sur la page de dessin
Vous pouvez modifier un style pour changer lapparence de toutes les formes dun
document qui utilisent ce style. Pour cela, utilisez la commande Dfinir les styles du
menu Format afin de rviser les attributs de texte, de trait ou de remplissage dun style
existant. Toutes les formes formates avec le style modifi seront transformes.
Par exemple, supposons que vous utilisiez le gabarit Formes Diagramme de flux -
Elmentaire, mais que vous vouliez que le texte apparaisse en italique avec une taille
de 10 points et une police Times Roman. Les formes issues de ce gabarit sont
formates avec le style de texte Flow Normal. Vous pouvez utiliser la commande
Dfinir les styles pour modifier la dfinition du style Flow Normal afin de formater le
texte dans la police souhaite. La nouvelle dfinition affecte toutes les formes du
document auxquelles le style est appliqu, ainsi que toutes les formes que vous ajoutez
et qui sont formates dans ce style.
Une nouvelle dfinition de style est enregistre seulement avec le fichier de dessin
actuel. Le gabarit autonome et ses formes de base ne sont pas modifies, car le fichier
de gabarit contient ses propres dfinitions de styles.
GESTI ON DES STYL ES, DES FORMATS ET DES COUL EURS 211
Ref ormat age des f ormes de base dans un gabarit aut onome
Vous pouvez reformater des formes de base dans un gabarit autonome en choisissant
de nouveaux styles et en reformatant toutes les occurrences cres par la suite partir
de ces formes de base. Contrairement lopration de modification dun style pour
reformater les formes qui lutilisent, cette procdure modifie la dfinition de la forme
de base dans un gabarit et enregistre les modifications dans le gabarit. Utilisez cette
procdure pour modifier les formes de base dans les gabarits que vous utilisez dans
plusieurs dessins diffrents.
Pour ref ormat er une f orme de base avec un aut re st yle :
1 Ouvrez le fichier de gabarit contenant la forme de base modifier. Pour rendre le
gabarit modifiable, cliquez sur sa barre de titre avec le bouton droit, puis choisissez
Modifier dans le menu contextuel. Dans la zone Ouvrir de la bote de dialogue
Ouvrir un gabarit, vous pouvez galement choisir Original, puis cliquer sur
Ouvrir.
Lorsquun gabarit est modifiable, un astrisque rouge apparat dans langle
suprieur gauche de licne sur la barre de titre du gabarit.
2 Dans la fentre du gabarit, cliquez avec le bouton droit sur la forme de base
modifier, puis choisissez Modifier la forme de base dans le menu contextuel pour
louvrir dans la fentre de dessin de la forme de base.
3 Choisissez la forme modifier ou slectionnez une forme secondaire si la forme de
base est un groupe, puis reformatez la forme selon vos besoins.
Par exemple, choisissez Format > Style, choisissez un style de texte, de trait ou de
remplissage appliquer, puis cliquez sur OK.
4 Dans la fentre de dessin de la forme de base, cliquez sur la case Fermer.
Lorsquun message vous demande de mettre jour la forme de base, cliquez
sur Oui.
5 Assurez-vous que la fentre de gabarit est active, puis choisissez Fichier >
Enregistrer. Vous pouvez galement cliquer avec le bouton droit sur la barre de
menus du gabarit et choisir Enregistrer dans le menu contextuel.
La forme de base modifie est enregistre dans le gabarit. Si vous devez rtablir la
version prcdente de la forme de base, vous pouvez la modifier de nouveau pour
la reformater en utilisant les styles originaux. Sil sagit dun gabarit Visio, vous
pouvez rinstaller loriginal partir du CD de Visio.
212 CHAP I TRE 10
Ref ormat age de t out es les occurrences dune f orme de base
Vous pouvez rapidement reformater toutes les occurrences dune forme de base dun
document sans modifier celle-ci ni sa dfinition de style. Pour reformater dans un
dessin toutes les occurrences dune forme de base, vous pouvez modifier la copie de la
forme de base dans le gabarit du document.
En modifiant la copie dune forme
de base dans le gabarit du
document (A), vous modifiez toutes
ses occurrences sur la page de
dessin.
Pour ref ormat er t out es les occurrences dune f orme de base :
1 Choisissez Fentre > Afficher le gabarit de document.
2 Cliquez avec le bouton droit sur la forme de base dont vous souhaitez modifier les
occurrences, puis choisissez Modifier la forme de base dans le menu contextuel.
3 Dans la fentre de dessin de la forme de base, effectuez des modifications de
reformatage.
4 Fermez la fentre et, lorsquun message vous le demande, enregistrez vos
modifications pour visualiser les effets sur la page de dessin.
REMARQUE : cette technique fonctionne seulement si les occurrences de la forme de base
conservent leur formatage dorigine. Les formes auxquelles vous avez appliqu un style
diffrent ou un formatage local ne sont pas modifies.
A
GESTI ON DES STYL ES, DES FORMATS ET DES COUL EURS 213
Ut ilisat ion de st yles dans les gabarit s et les modles
Lorsque vous crez des gabarits et des modles destins tre utiliss par dautres, vos
styles doivent tre cohrents et faciles appliquer. Lutilisateur peut croire que les
styles sont les seules options de formatage disponibles. Il est donc prfrable dinclure
dans vos modles davantage de styles que ncessaire.
La liste Tous les styles de la barre
doutils Format permet daccder
facilement aux styles qui appliquent
le formatage du texte.
Maint ien de la cohrence dans les f ichiers
Lorsque vous crez un gabarit qui sera utilis avec un modle, les dfinitions de styles
doivent tre identiques dans les fichiers de gabarit et les fichiers de modle. Lorsquun
utilisateur cre une occurrence de forme de base, loccurrence hrite des styles de la
forme de base, qui sont appliqus comme suit :
Si aucun style du mme nom nexiste dans le fichier de dessin, il est copi depuis le
fichier de gabarit et ajout au fichier de dessin.
Si un style du mme nom existe dj dans le fichier de dessin, le style existant est
utilis.
Si, dans le fichier de dessin, la dfinition du style diffre de celle du fichier de gabarit,
la dfinition du dessin est utilise, et lapparence de la forme dans le dessin est
diffrente de celle de la forme de base. Ce comportement est parfois appel rgle de
lquipe qui reoit qui lemporte car le style sur la page de dessin lemporte sur
les attributs de formatage dun style portant le mme nom dans une forme de base. En
inspectant chaque dfinition de style, vous pouvez vrifier que les styles dun modle
sont cohrents avec ceux dun gabarit, mais cette opration est plutt fastidieuse. Une
technique plus simple consiste enregistrer une copie du fichier de gabarit (.vss) sous
la forme dun fichier de modle (.vst), supprimer toutes les formes de base du fichier
de modle et enregistrer le fichier despace de travail (.vsw) pour obtenir des styles et
des couleurs identiques.
Si vous projetez denregistrer la page de dessin sous la forme dun gabarit ou dun
modle, vous enregistrerez lespace de travail en supprimant tous les styles qui ne sont
pas utiliss par vos formes. Pour cela, utilisez la commande Dfinir les styles du menu
Format et supprimez les styles que vous navez pas utiliss. Une autre mthode
consiste ouvrir un nouveau fichier de dessin contenant seulement les styles par
dfaut, puis faire glisser dans le nouveau fichier les formes formates dotes des
styles copier. Pour plus dinformations sur le nettoyage des gabarits et des modles,
reportez-vous au chapitre 13, Diffusion de gabarits et de modles .
214 CHAP I TRE 10
Si une forme de la page de dessin ou du gabarit du document utilise un style que vous
supprimez, vous vous trouvez dans lune des situations suivantes :
Si le style est bas sur un autre, la forme utilise par dfaut le style de base.
Si le style nest bas sur aucun autre style, la forme utilise par dfaut le style Visio
Sans style, qui ne peut pas tre supprim.
Ut ilisat ion de convent ions de dnominat ion pour les st yles
Les styles que vous crez pour vos gabarits et vos modles sont plus faciles utiliser si
vous suivez de manire cohrente une convention. Des noms de styles explicites
comme Trait noir quart de pouce ou 8pt Arial Left sont plus vocateurs et
comprhensibles que des noms abrgs comme Ligne2 ou T8L . Les styles
apparaissent dans lordre alphabtique dans la liste de la barre doutils, et dans les
botes de dialogue Style et Dfinir les styles.
Lutilisation dune convention de dnomination correcte permet de conserver les
liens qui existent entre les divers styles dans les listes, facilitant ainsi la recherche du
style dsir. Les styles de trait, de remplissage et de texte avec des attributs similaires
doivent avoir des noms similaires. Par exemple, si vous nommez Trait 1 pxl un
style de trait large de 1 pixel, vous devez nommer Ligne 3 pxl plutt que Ligne3
un style de trait large de 3 pixels. Il est prfrable de nommer les styles en fonction de
la manire dont vous souhaitez quils soient utiliss :
Nommer des styles spcifiques une forme ou un gabarit en fonction des formes
auxquelles ils sont appliqus, comme Flux - Texte lien.
Nommer des styles de type gnral en fonction de leurs attributs de formatage,
comme Black Line ou Arial Centered.
CONSEIL : pour faire apparatre un style au dbut de la liste Tous les styles, faites prcder
son nom dun caractre ayant une valeur ASCII faible, comme un tiret (-). Par exemple,
- Standard Line ou - Corporate Blue .
Inst ruct ions concernant la df init ion des st yles
Les dveloppeurs Visio suivent ces instructions lors de la dfinition des styles. Elles
peuvent vous tre utiles pour dfinir des styles destins aux solutions que vous crez.
Les styles de texte doivent utiliser les polices TrueType livres avec
Microsoft

Windows

.
Limitez le choix des polices celles dont disposent tous les utilisateurs de
Windows 95, Windows 98 ou Windows NT

. Si vous savez que vos utilisateurs


disposent dautres polices (surtout celles conues pour les marchs spcialiss
comme les symboles cartographiques), vous pouvez utiliser en toute scurit ces
polices dans les styles que vous dfinissez.
GESTI ON DES STYL ES, DES FORMATS ET DES COUL EURS 215
Les styles de remplissage et de trait doivent utiliser des couleurs prises en charge
par un moniteur VGA 256 couleurs standard .
Limitez le choix des couleurs au systme graphique le plus lmentaire que vos
utilisateurs peuvent avoir. En fonction du public vis par votre solution et de la
configuration matrielle standard de ce public, vous pourrez offrir une slection
plus tendue.
Basez de prfrence vos styles sur le style Normal.
Lorsque vous avez une hirarchie de styles bass les uns sur les autres, la
modification dun style modifie automatiquement tous ceux quil a permis
dlaborer. Ce comportement peut perturber les utilisateurs non expriments.
Par consquent, il convient de dfinir des styles qui ne sont pas bass sur dautres
styles. En revanche, pour un public plus professionnel, vous pouvez, si vous le
souhaitez, tirer pleinement profit de cette puissante fonction dans vos solutions.
Crez des styles appliquant seulement un attribut de formatage (remplissage, trait
ou texte) ou les trois.
Pour les nouveaux utilisateurs, les styles avec plusieurs attributs peuvent prter
confusion. Il se peut toutefois que vos utilisateurs emploient toujours le mme style
de remplissage, de trait et de texte pour une forme donne. Si cest le cas, vous
pouvez mettre au point un style contenant les trois types de formatage.
Prot ect ion des f ormat s locaux des f ormes
Lapplication dun style peut modifier les formules dans les sections Format de trait,
Format de remplissage, Format de bloc de texte, Caractres, Paragraphe et
Tabulations dune forme. Si elles ne sont pas protges, les formules (personnalises)
locales risquent dtre remplaces dans les cellules ShapeSheet

correspondantes. Par
exemple, vous pouvez crire une formule personnalise dans la cellule Taille de la
section Caractres dune forme de base pour modifier de manire dynamique la taille
de la police de cette forme de base, en fonction de la hauteur de son bloc de texte. Si
un utilisateur applique la forme un style de texte diffrent, la formule personnalise
est crase.
Vous pouvez protger les formats locaux des formes en utilisant loption Conserver le
formatage local, en activant la cellule VerrFormat ou en utilisant la fonction
PROTECTION pour protger les formules.
216 CHAP I TRE 10
Ut ilisat ion de lopt ion Conserver le f ormat age local
Vous pouvez protger le formatage local des formes en cochant loption Conserver le
formatage local dans la bote de dialogue Style lors de lapplication dun autre style.
Lorsque vous cochez loption Conserver le formatage local, le style est appliqu, mais
le formatage local est conserv. Si la case Conserver le formatage local nest pas
coche, le nouveau style est appliqu et tout formatage local est cras.
Ut ilisat ion de la cellule VerrFormat et de la f onct ion
PROTECTION
Dans la section Protection de la feuille dune forme, vous pouvez donner la cellule
VerrFormat la valeur 1 afin de protger la forme contre toute modification de
formatage et de style. Lutilisation de la fonction PROTECTION dans une formule
empche cette cellule dtre modifie lorsquun utilisateur applique un formatage ou
des styles. Si vous protgez un groupe en utilisant la cellule VerrFormat, vous
empchez automatiquement les formes et les autres groupes quil contient dhriter
du formatage ; en revanche, lutilisateur peut slectionner des formes secondaires du
groupe qui ne sont pas explicitement verrouilles et modifier leur formatage. Pour
plus dinformations sur la protection du formatage dans un groupe, reportez-vous au
chapitre 6, Regroupement et fusion de formes .
Utilisez la cellule VerrFormat et la fonction PROTECTION avec prcaution.
Lorsquune forme est verrouille contre le formatage, le moteur Visio affiche
automatiquement un message si un utilisateur essaie de formater la forme. Au
contraire, la fonction PROTECTION fonctionne sans aucune notification ni aucun
message utilisateur. Ces comportements risquent de gner lutilisateur qui souhaite
formater une forme protge. Lorsque vous crez des formes, il est ncessaire de
trouver un quilibre convenable entre la limitation du comportement des formes et
lamlioration de la flexibilit de lutilisateur dans votre solution.
Gest ion de la couleur dans les st yles, les f ormes et les f ichiers
Lorsque vous crez des formes de base, vous devez prendre en compte lapparence de
la couleur de la forme de base sur diffrents systmes utilisateur. Vous pouvez
appliquer une couleur une forme en utilisant soit la palette de couleurs Visio soit
une couleur personnalise. La mthode choisie a une incidence sur lapparence de la
forme dans un autre document. Vous pouvez appliquer une couleur une forme en
utilisant les mthodes suivantes :
En appliquant une couleur choisie dans la palette de couleurs Visio. Choisissez
lindice de lune des couleurs de la palette. Le moteur Visio enregistre seulement
lindice sur la palette de couleurs et non la couleur elle-mme.
GESTI ON DES STYL ES, DES FORMATS ET DES COUL EURS 217
En dfinissant, soit dans la bote de dialogue Couleur, soit sous la forme dune
formule, une valeur RVB (rouge, vert, bleu) ou TSL (teinte, saturation,
luminosit). Vous appliquez ainsi une couleur personnalise une forme.
Modif icat ion de la palet t e de couleurs
La palette de couleurs apparat dans la bote de dialogue Palette de couleurs, ainsi que
dans la liste droulante des couleurs dans les botes de dialogue Remplissage, Trait,
Dfinir la police, Bloc de texte et dautres. Pour tout document qui utilise la palette
Visio par dfaut, un indice de couleur renvoie la mme couleur : 0 pour noir, 1 pour
blanc, 2 pour rouge, etc.
En revanche, lutilisateur peut, en modifiant la palette de couleurs, choisir la couleur
quil souhaite voir apparatre nimporte quel indice. Dans ce cas, toute proprit de
couleur associe cet indice peut changer de couleur. Par exemple, si vous appliquez
une couleur de remplissage une forme de base en cliquant sur le rouge dans la
palette, la couleur de remplissage de la forme est enregistre sous le nombre 2. Si un
utilisateur cre une occurrence de la forme de base rouge dans un document dans
lequel le second indice de la palette de couleurs a t modifi, la couleur de
remplissage de la forme passe dans cette couleur.
La plupart des utilisateurs ne modifient pas la palette de couleurs dun document, il
est peu vraisemblable que les couleurs changent. Mais vous pouvez vous assurer
quune couleur de forme ne change jamais, quelle que soit la palette de couleurs du
document, en utilisant une couleur personnalise RVB ou TSL. Pour indiquer une
couleur personnalise sous la forme dune formule, utilisez la fonction RVB ou la
fonction TSL. Pour plus dinformations sur lutilisation de ces fonctions,
reportez-vous la section Utilisation dune formule pour dfinir une couleur
personnalise , page 218.
Normalisat ion des palet t es de couleurs pour t ous les
document s
Lorsque vous crez des gabarits que vous avez lintention douvrir avec un modle,
utilisez la mme palette de couleurs dans tous les documents. Si les palettes de
couleurs ne sont pas identiques, les couleurs dfinies par un indice dans les styles
dune forme de base peuvent changer lorsquune occurrence est dplace dans un
document qui dispose dune valeur de couleur diffrente de cet indice. Pour
normaliser la palette de couleurs utilise dans les documents qui sont censs tre
ouverts ensemble, comme les gabarits et les modles, vous pouvez copier dans un
autre fichier la palette de couleurs utilise dans un fichier.
218 CHAP I TRE 10
Si vous modifiez la palette de couleurs dans un fichier de gabarit, vous pouvez copier
les couleurs dans un modle.
Pour copier la palet t e de couleurs dun gabarit dans un modle :
1 Ouvrez le fichier de modle.
2 Choisissez Outils > Palette de couleurs.
3 Dans Copier les couleurs de, slectionnez le gabarit dont vous souhaitez copier la
palette de couleurs dans le fichier de modle, puis cliquez sur OK.
Veillez enregistrer le document.
Ut ilisat ion dune f ormule pour df inir une couleur
personnalise
Vous pouvez dfinir la couleur des formes en utilisant une fonction qui spcifie une
valeur RVB ou TSL. Par exemple, pour garantir quune forme de panneau stop est
toujours rouge, vous pouvez saisir la formule suivante dans la section Format de
remplissage :
Les trois arguments de la fonction RVB spcifient les composants rouge, vert et bleu
de la couleur. Chacun de ces composants peut avoir une valeur de 0 255. Pour
indiquer une couleur laide dune valeur TSL, vous pouvez la place utiliser la
formule TSL(0,240,120) dans la cellule RemplPremPlan. Pour plus dinformations
sur la syntaxe de la fonction, recherchez fonction TSL ou fonction RVB dans
laide en ligne Rfrence du dveloppeur (choisissez ? (Aide) > Rfrence du
dveloppeur) fournie avec Visio.
Plutt que dindiquer des constantes de couleur en guise dargument de ces fonctions,
vous pouvez utiliser les fonctions ROUGE, VERT et BLEU, ou TEINTE,
SATURATION et LUMINOSITE pour renvoyer la valeur dune constante de couleur
de la palette de couleurs du document ou dune autre cellule. Dans lexemple du
panneau stop, ROUGE(RemplPremPlan) renvoie 255, la valeur du composant de
rouge dans la couleur de remplissage.
Pour dfinir une couleur partir de celle dune autre cellule dans la mme forme ou
dans une autre forme, vous pouvez utiliser la fonction RVB et TSL conjointement
avec les autres fonctions de couleur. Cela est particulirement utile dans un groupe
qui contient des formes de couleurs associes mais non identiques. Vous pouvez
dfinir les couleurs de la forme groupe en tant que couleur de forme pour le groupe.
Par exemple, si la forme au premier plan du groupe est Etoile 7, vous pouvez saisir ce
qui suit dans Etoile 7.2 :
Pemp1PemP1ah = Pv|2SS00)
Pemp1PemP1ah = Pv|P0uCE|Ieu111e.7!Pemp1PemP1ah)00)
GESTI ON DES STYL ES, DES FORMATS ET DES COUL EURS 219
Si un utilisateur applique une nouvelle couleur au groupe, la forme au premier plan
change de couleur, mais Etoile 7.2 modifie seulement la proportion de rouge dans sa
couleur de remplissage.
Lorsque vous indiquez une couleur personnalise laide des fonctions RVB ou TSL,
la couleur est ajoute au bas de la liste des couleurs dans les botes de dialogue
Remplissage, Trait, Dfinir la police, ainsi que dans les autres botes de dialogue dans
lesquelles vous associez une couleur. Si vous crez une forme de base partir dune
forme laquelle une couleur personnalise a t associe, puis que vous dplaciez une
occurrence de cette forme dans un autre document Visio, la couleur personnalise est
ajoute galement aux listes de couleurs du document.
Une couleur personnalise est enregistre seulement avec la forme laquelle elle a t
applique. Si vous supprimez une forme avec une couleur personnalise, puis que
vous enregistriez et fermiez le document, la couleur personnalise napparat plus,
lors de louverture suivante du mme document, dans les listes de couleurs des
diffrentes botes de dialogue, moins quune autre forme utilise aussi cette couleur
dans le document.
Mot if s personnaliss
Vous pouvez crer vos propres motifs de remplissage, motifs de traits et extrmits de
traits. Pour faciliter la prsentation, ces styles sont regroups sous lappellation motifs
personnaliss et apparaissent sous la forme doptions dans les botes de dialogue
Remplissage et Trait. Pour crer un motif personnalis, crez le motif dune forme de
base reprsentant une occurrence du motif, comme un point qui, lorsquil est
appliqu sous la forme dun remplissage, ressemble un motif complet, comme des
points polka. Un motif de forme de base est un type particulier de forme de base qui
apparat seulement sous la forme dun motif de remplissage, dun motif de trait ou
dune extrmit de trait supplmentaire.
Lorsque vous crez un motif de forme de base, vous paramtrez ses proprits pour
indiquer :
Le nom du motif de la forme de base.
Le type de motif personnalis : motif de remplissage, motif de trait ou extrmit de
trait.
Le comportement du motif, cest--dire la manire dont le motif personnalis est
appliqu une forme et la manire dont il volue lorsque la forme est tire ou
formate.
Lutilisation du motif personnalis dans des dessins mis lchelle ou non.
220 CHAP I TRE 10
Un motif personnalis est toujours enregistr sous la forme dun motif de forme de
base, bien quil ne soit pas visible dans le gabarit. Les noms des motifs des formes de
base apparaissent dans lordre alphabtique au bas de la liste doptions, dans la bote
de dialogue Remplissage ou Trait. Lutilisateur peut alors appliquer le motif
personnalis en choisissant Format > Trait ou Format > Remplissage, puis en
slectionnant le nom du motif de la forme de base dans la liste approprie. Les motifs
personnaliss apparaissent dans la fentre Drawing Explorer lorsque le gabarit dans
lequel ils figurent est ouvert et quils ont t appliqus aux formes dans le dessin.
Crat ion dun mot if personnalis
Lorsquun utilisateur applique un motif personnalis, son motif de forme de base est
copi dans le gabarit du document. Le motif personnalis reste alors disponible dans
le document actif, mme si le gabarit autonome contenant le motif de forme de base
dorigine est ferm. Le moteur Visio enregistre le choix en insrant la fonction USE
dans la cellule MotifRempl, MotifTrait, DpartFlche ou FinFlche. Par exemple, si
un utilisateur applique une extrmit de trait personnalise appele Etoile au point de
dpart dun trait, la cellule DpartFlche du trait contiendra la formule USE(Etoile).
Le moteur Visio applique le motif personnalis en fonction de la taille de son
rectangle de slection.
Si un utilisateur napplique pas de motif personnalis particulier partir dun gabarit
lorsque le gabarit est ouvert, il napparat plus dans les botes de dialogue Remplissage
et Trait, une fois que le gabarit dans lequel il figure est ferm.
Si un utilisateur copie dans un autre document une forme formate avec un motif
personnalis, les rgles dhritage habituelles sappliquent. Le motif de la forme de
base est copi dans le nouveau document, moins que le nouveau document
contienne dj un motif de forme de base du mme nom, auquel cas la forme de base
du document de ce nom est applique.
La plupart des techniques utilises pour mettre au point des formes de base
sappliquent galement lors de la cration des motifs des formes de base. Par exemple,
vos utilisateurs et vous obtiendrez des rsultats plus prvisibles si vous utilisez une
forme unique ou un groupe dans votre forme de base (forme ou motif). Vous pouvez
toujours combiner plusieurs gomtries pour crer une forme unique laide des
commandes du sous-menu Oprations du menu Forme. Vous devez, en outre, crer
un motif de forme de base sous la forme dune occurrence unique de llment de
base rpter selon vos besoins.
REMARQUE : nutilisez pas de texte, de bitmaps ou de remplissages graduels dans un
motif de forme de base. Ils napparaissent pas lorsque le motif est appliqu une forme.
GESTI ON DES STYL ES, DES FORMATS ET DES COUL EURS 221
Pour crer un mot if personnalis :
1 Ouvrez un document ou un gabarit.
2 Choisissez Affichage > Fentres > Drawing Explorer. Dans Drawing Explorer

,
cliquez avec le bouton droit sur le dossier Motifs de remplissage, Motifs de ligne ou
Extrmits de trait, puis choisissez Nouveau motif dans le menu contextuel.
3 Dans la zone Nom, saisissez le nom du motif personnalis tel que vous souhaitez
quil apparaisse dans les botes de dialogue Remplissage et Trait.
4 Dans la zone Type, choisissez Motif de trait, Extrmit de trait ou Motif de
remplissage.
5 Dans la zone Comportement, choisissez une option pour indiquer la manire dont
le motif est appliqu une forme.
Pour plus dinformations sur le comportement du motif personnalis,
reportez-vous aux sections suivantes.
6 Cochez la case Mise l'chelle si le motif personnalis reprsente un objet avec des
dimensions relles.
Par exemple, si vous crez un motif de remplissage de carreaux de cuisine de
10 centimtres carrs, cochez la case Mise l'chelle pour conserver les dimensions
du motif lorsque celui-ci est appliqu une forme sur une page de dessin mise
lchelle.
7 Cliquez sur OK pour crer une forme de base vide.
8 Ouvrez le dossier appropri, puis cliquez avec le bouton droit sur le nom du motif
que vous venez dajouter. Choisissez Modifier le motif dans le menu contextuel
pour ouvrir la fentre de dessin de la forme de base, o vous pouvez dessiner un
motif personnalis.
Pour que les utilisateurs puissent modifier la couleur dun motif ou dune
extrmit de trait aprs lavoir applique une forme, crez le motif de la forme de
base en noir et blanc en suivant les indications des rubriques suivantes.
9 Aprs avoir cr le motif, fermez la fentre de dessin de la forme de base et
enregistrez le document en tant que gabarit.
Bien que les icnes des motifs que vous crez ne soient pas visibles lorsque vous
enregistrez un motif dans un gabarit, les motifs que vous avez dfinis apparaissent
au bas des listes dans les botes de dialogue Remplissage et Trait lorsque ce gabarit
est ouvert. Lorsquun motif personnalis est appliqu une forme, le nom du
motif est ajout la liste dans la fentre Drawing Explorer actuelle.
222 CHAP I TRE 10
Crat ion de mot if s de remplissage personnaliss
Vous pouvez crer des motifs de remplissage personnaliss qui remplissent une forme
de trois manires, en fonction du comportement que vous choisissez dans la bote de
dialogue Proprits de la forme de base. La mosaque est le type de comportement le
plus frquent pour les motifs de remplissage. Les occurrences du motif sont rptes
pour remplir la forme partir de langle infrieur gauche vers lextrieur, comme dans
lexemple suivant.
Vous pouvez aussi crer un motif de remplissage centr ou tir. Dans un motif
centr, une seule occurrence du motif remplit la forme. Laxe du motif est align avec
laxe de la forme. Dans un motif tir, une seule occurrence du motif est tire
horizontalement et verticalement pour remplir une forme. La position de laxe du
modle nest pas prise en compte. Lorsque vous redimensionnez la forme, le motif est
galement redimensionn, la diffrence des motifs en mosaque ou intgrs.
Lorsque vous crez un motif de
remplissage personnalis, vous
pouvez aussi indiquer la manire
dont ce modle est appliqu aux
formes. Vous pouvez choisir de
remplir la forme avec des
occurrences du modle partir de
langle infrieur gauche vers
lextrieur (A), centrer une
occurrence du motif sur la forme
(B) ou ltirer pour remplir la
forme (C).
Couleurs du mot if de remplissage
Si vous crez votre motif de remplissage en noir et blanc, lutilisateur peut paramtrer
la couleur du motif lorsquil lapplique une forme comme avec tout motif de Visio.
Les zones blanches (trait ou remplissage) de votre motif hritent de la couleur de
remplissage du premier plan de la forme laquelle le motif est appliqu ; les zones
noires (trait ou remplissage) de votre motif hritent de la couleur de remplissage de
larrire-plan de la forme. Si votre motif contient des couleurs autres que le noir et le
blanc, il conserve ces couleurs lorsquil est appliqu une forme.
A B C
GESTI ON DES STYL ES, DES FORMATS ET DES COUL EURS 223
Crat ion de mot if s en mosaque
La mosaque est le comportement le plus frquent pour les motifs de remplissage : le
motif est mis en mosaque par les bords du rectangle de slection. Vous pouvez
obtenir diffrents effets de mosaque en crant un motif avec un rectangle de slection
plus ou moins grand, comme le montre la figure suivante, ou en dcentrant le motif
lintrieur du rectangle de slection. Pour plus dinformations sur la cration dun
rectangle de slection de taille personnalise, reportez-vous la section Rglage de la
taille du rectangle de slection dune forme , page 240.
Dans cet exemple, le motif de la
forme de base inclut deux formes
triangulaires dcales dans un
grand rectangle de slection (A).
Les motifs de remplissage en
mosaque remplissent la forme
partir de langle infrieur gauche.
Lorsque votre motif en mosaque reprsente un objet rel, cochez la case Mise
l'chelle dans la bote de dialogue Proprits de la forme de base. Par exemple, la
mosaque dun sol en cramique de 30 cm sur 30 cm doit toujours tre de la mme
taille, quelle que soit lchelle du dessin sur lequel elle est utilise. Par dfaut, le motif
de remplissage nest pas mis lchelle, ce qui signifie que le motif se comporte
comme les motifs intgrs Visio : il simprime toujours la mme taille, quelle que
soit lchelle du dessin.
Sur une page de dessin qui utilise
une chelle architecturale, un motif
non mis lchelle (A) est identique
sur une page sans chelle, mais un
motif mis lchelle (B) conserve
ses dimensions.
A
A B
224 CHAP I TRE 10
Crat ion de mot if s de t rait personnaliss
En appliquant un motif de trait personnalis, un utilisateur peut reformater un trait
pour en faire une voie ferre, une alle de jardin pave ou tout autre motif de trait.
Lorsque vous crez un motif de trait, tudiez la faon dont le motif se rpte le long
du trait, dans les courbes et dans les angles. Dterminez si le motif doit tre
redimensionn lorsque lpaisseur du trait est modifie. Ces lments, qui constituent
le comportement du motif, dterminent la manire dont le moteur Visio applique le
motif un trait ; ils peuvent donc affecter de manire significative lapparence du
trait.
Choisissez loption Comportement dans la bote de dialogue Proprits de la forme de
base pour contrler la manire dont un motif de trait est appliqu un trait. Vous
pouvez crer des motifs de trait qui se comportent de quatre faons diffrentes,
comme le montre les illustrations suivantes.
Pour crer une voie ferre, chaque occurrence du motif est incurve pour sadapter
aux courbes au fur et mesure des rptitions sur la longueur du trait.
Le choix de loption de courbure (A)
incurve les occurrences du modle
afin de les adapter au trait courb.
Pour crer une alle de jardin, chaque occurrence du motif est positionne et
pivote au fur et mesure des rptitions sur la longueur dun trait.
Le choix de loption dannotation (B)
rpte les occurrences du modle
afin de les adapter au trait sans les
incurver.
A
B
GESTI ON DES STYL ES, DES FORMATS ET DES COUL EURS 225
Pour crer une ligne incline, une seule occurrence du motif est tire sur la
longueur dune spline.
Le choix de loption dtirement (C)
tire une seule occurrence du motif
sur la longueur dun trait.
Pour crer un trait de flux, le motif est rpt en haut de la ligne, pour recouvrir
lensemble des occurrences du motif entre les angles. Le rectangle de slection est
plus grand que la pointe de flche contrlant lespacement entre les occurrences du
motif.
Le choix de loption de mosaque
(D) rpte les occurrences du motif
en haut du trait et permet dobtenir
un effet collier .
C
D
226 CHAP I TRE 10
Personnalisation du rectangle de slection et de laxe
Pour crer un motif de trait efficace, vous devez prendre en compte la taille du
rectangle de slection et la position de laxe, ainsi que la forme du motif. Pour adapter
un motif un trait, laxe du motif est align sur le trait, et rpte ou tire le motif par
les bords de son rectangle de slection. Si le rectangle de slection est plus grand que le
motif, des espaces apparaissent entre les occurrences du modle au fur et mesure
quils sont rpts sur le trait. Si le rectangle de slection est plus petit que le modle,
vous obtiendrez un effet de superposition lorsque le motif sera appliqu. Pour plus
dinformations sur le rectangle de slection de taille personnalise, reportez-vous la
section Rglage de la taille du rectangle de slection dune forme , page 240.
En changeant le rectangle de
slection dun motif de trait, vous
pouvez contrler la manire dont
les occurrences dun motif se
rptent le long dun trait.
A Le rectangle de slection du motif de trait flche de flux est plus grand que loccurrence du motif.
B Le rectangle de slection du motif de trait flche de superposition est plus petit que loccurrence
du motif.
C Trait avec motif de flche de flux
D Trait avec motif de flche de superposition
Comparaison des motifs de trait mis lchelle et non mis lchelle
Si vous crez un motif de trait non mis lchelle (cest--dire sans cocher la case Mise
l'chelle dans la bote de dialogue Proprits de la forme de base de la forme de
base), lorsquun utilisateur applique un motif de trait, le moteur Visio redimensionne
son rectangle de slection jusqu ce que sa hauteur soit gale lpaisseur du trait. Les
motifs de trait mis lchelle conservent leurs dimensions, quelle que soit lchelle du
dessin ou lpaisseur du trait.
A
C
B
D
GESTI ON DES STYL ES, DES FORMATS ET DES COUL EURS 227
Couleur des motifs de trait
Lorsque vous crez un motif de trait, appliquez du noir aux zones (trait ou
remplissage) que vous souhaitez rendre modifiables par lutilisateur en choisissant
une nouvelle couleur dans la bote de dialogue Trait. Appliquez du blanc ou toute
autre couleur aux zones que vous ne souhaitez pas rendre modifiables par
lutilisateur. Si vous souhaitez que la zone de remplissage soit transparente lors de
lapplication une ligne, paramtrez sur Aucun le remplissage du motif de trait.
Crat ion dext rmit s de t rait s personnalises
Une extrmit de trait personnalise constitue le type de modle personnalis le plus
simple crer. Il sagit simplement dune forme que vous pouvez associer au point de
fin dun trait. Lorsque vous crez une extrmit de trait, vous dterminez si elle peut
tre adapte la direction du trait auquel elle est associe et si elle est redimensionne
lorsque lpaisseur de trait change. Vous pouvez crer une extrmit de ligne qui
adopte les comportements suivants :
Elle est oriente par rapport au trait. Si vous dplacez le trait, lextrmit du trait
sadapte afin dtre oriente dans la mme direction.
Elle est oriente par rapport la page. Si vous dplacez le trait, lextrmit du trait
conserve son orientation sur la page.
Le moteur Visio associe laxe de lextrmit du trait au point de fin dun trait. Si le
comportement de lextrmit du trait est de sorienter par rapport au trait, ce dernier
est coup, entre son point de fin et le rectangle de slection de lextrmit du trait.
Sinon, le trait nest pas coup. Lorsque vous crez une extrmit de trait, dterminez
la position de laxe permettant dobtenir le meilleur effet. Par exemple, pour crer une
tte de flche, vous pouvez dessiner un triangle, puis dplacer laxe vers la pointe.
REMARQUE : une extrmit de trait doit pointer vers la droite ; sinon, elle nest pas
applique correctement.
228 CHAP I TRE 10
A La pointe de flche simple est un triangle droit avec un remplissage noir.
B La pointe de flche raffine est un groupe avec un rectangle de slection lgrement plus troit
que le triangle. Laxe a t dplac vers la pointe de la flche.
C Extrmit de trait Pointe de flche simple applique une ligne de 36 pixels.
D Extrmit de trait Pointe de flche raffine applique une ligne de 36 pixels.
CONSEIL : Pour dplacer laxe dune forme, cliquez avec le bouton droit sur la forme,
choisissez Affichage > Taille et position dans le menu contextuel, puis choisissez une
option du menu dans le champ Pos. axe. Vous pouvez galement slectionner la forme
avec loutil de rotation, puis faire glisser laxe un autre emplacement.
Vous devez galement savoir, lors de la cration dune extrmit de trait, si sa taille
doit dpendre de lpaisseur du trait auquel elle est applique. Si vous crez une
extrmit de trait non mise lchelle (sans cocher la case de mise lchelle dans la
bote de dialogue Proprits de la forme de base de la forme de base), la hauteur du
rectangle de slection de lextrmit du trait est paramtre pour tre gale
lpaisseur du trait, tant que lutilisateur donne au paramtre Taille la valeur Moyen
(la valeur par dfaut) dans la bote de dialogue Trait. En revanche, sur un trait de
1 pixel, lextrmit de trait peut ne pas tre visible. Pour garantir que votre extrmit
de trait fonctionne pour nimporte quelle paisseur de trait, vous pouvez
personnaliser son rectangle de slection. Si un utilisateur donne au paramtre Taille
une valeur autre que Moyen, lextrmit du trait est redimensionne de la mme
manire que nimporte quelle extrmit de ligne est redimensionne. Pour plus
dinformations sur la cration dun rectangle de slection avec une taille
personnalise, reportez-vous la section Rglage de la taille du rectangle de
slection dune forme , page 240.
Si votre extrmit de trait reprsente un objet avec des dimensions relles, comme un
raccord au bout dun tuyau, cochez la case Mise l'chelle dans la bote de dialogue
Proprits de la forme de base de la forme de base. Les paramtres Taille et Epaisseur
de la bote de dialogue Trait nont aucune incidence sur la taille dune extrmit de
trait mise lchelle.
A B
C D
Sommaire
11
Rorganisat ion des f ormes
dun dessin
Lorsque vous crez des modles Microsoft

Visio

, la plus grande attention est


souvent apporte la dfinition du comportement qui dtermine la manire dont les
formes de vos gabarits interagissent entre elles et avec la page de dessin. La mme
attention doit tre apporte leur mode de rorganisation sur la page.
Vous pouvez organiser vos formes sur la page de dessin laide de calques. Vous
disposez pour ce faire de plusieurs outils, notamment des repres de grille et de rgle.
Lalignement des formes sur la page dpend galement des paramtres dattraction du
document et du comportement des rectangles de slection.
En outre, le moteur Visio offre une fonction de mise en page automatique puissante.
Lorsquils sont configurs, les paramtres de cette fonction vous permettent de mieux
contrler la position des formes les unes par rapport aux autres lors de la mise en page
automatique.
Attribution de formes et de formes de base des calques................................ 230
Cration dune grille............................................................................................... 233
Alignement des formes sur des repres et des points de repre...................... 237
Accrochage de formes une grille laide des rectangles de slection........... 240
Cration de formes et mise en page automatique.............................................. 243
230 CHAP I TRE 11
At t ribut ion de f ormes et de f ormes de base des calques
Les calques permettent dorganiser les formes dun dessin. Dans les autres
programmes graphiques, le terme calques fait souvent rfrence lordre (premier
plan/arrire-plan) des objets sur la page. Dans Visio, les calques sont des catgories
regroupant les formes apparentes. Lappartenance dune forme un calque na
aucune incidence sur son ordre daffichage.
Vous pouvez masquer ou afficher des calques, les imprimer ou les paramtrer pour
viter toute modification. Les formes peuvent tre attribues plusieurs calques. Les
informations de calque dune forme ne dpendent pas de son ordre daffichage ni
mme de son appartenance un groupe. En outre, chaque page dun document peut
prsenter son propre jeu de calques. Lorsque vous crez des formes de base, vous
pouvez les associer des calques ; lorsque les utilisateurs crent des occurrences de ces
formes, elles sont automatiquement attribues ces calques.
Les formes peuvent appartenir
plusieurs calques. Dans cet
exemple, les formes du lac et de la
boussole appartiennent aux
calques des rues (A), des lments
gographiques (B) et des routes
(C).
Ut ilisat ion opt imise des calques
Lorsquun utilisateur insre une forme de base dans la page de dessin, loccurrence
hrite des informations de calque de la forme de base. Si la forme de base est attribue
un calque qui nexiste pas sur la page, le moteur Visio le cre automatiquement.
Lorsque les formes sont attribues des calques, les utilisateurs peuvent appliquer une
surbrillance de couleur distincte aux formes de chaque calque afin de pouvoir
imprimer, verrouiller et masquer toutes les formes dun calque. Une forme peut
appartenir plusieurs calques. Vous pouvez par consquent crer des formes
reprsentant une utilisation concrte complexe.
Par exemple, si vous crez des formes pour un gabarit dagencement despace, vous
pouvez attribuer quatre calques distincts aux formes correspondant aux murs et aux
portes, aux fentres, aux prises lectriques et au mobilier. Vous pouvez mettre en
surbrillance toutes les formes du calque des prises lectriques afin de les rendre plus
visibles, ou verrouiller le calque des murs pendant que vous modifiez les formes du
calque des fentres afin dempcher toute modification fortuite.
RORGANI SATI ON DES FORMES D UN DESSI N 231
Les calques appartiennent aux pages ; chaque page est associe une liste de calques.
Les formes peuvent appartenir plusieurs calques. En masquant ou en verrouillant
plusieurs calques sur une page, vous pouvez indiquer les formes qui seront visibles et
celles qui seront modifiables.
Comme les calques appartiennent aux pages, chaque page dun fichier de dessin peut
prsenter un jeu de calques distinct. Les formes des pages de premier plan et
darrire-plan peuvent tre organises grce aux calques. Une forme peut appartenir
plusieurs calques ou lensemble des calques de la page actuelle. Si vous copiez sur
une autre page du dessin une forme appartenant un calque, ce calque est ajout la
page de destination sil nexiste pas encore.
Pour crer des calques et cont rler le comport ement de chacun deux :
Choisissez Affichage > Proprits des calques, puis slectionnez des options.
Pour supprimer des calques :
Choisissez Affichage > Proprits des calques, cochez loption Retirer les calques
non rfrencs dans la bote de dialogue Proprits des calques, puis cliquez sur
OK.
Vous pouvez supprimer de la page de dessin tous les calques qui ne sont associs
aucune forme afin de rduire la taille de fichier du document. Cette prcaution est
particulirement utile lorsque vous crez un gabarit ou un modle destin
dautres utilisateurs.
At t ribut ion de f ormes de base des calques
Lorsque vous crez des calques de page dans la bote de dialogue Proprits des
calques, chaque calque est associ un index numrique qui complte son nom.
Lindex du premier calque cr est 0, lindex du deuxime est 1, etc. Si vous
supprimez le calque 0, les autres calques ne changent pas de numro. Dans la bote de
dialogue, les calques sont rpertoris dans lordre alphabtique. Cet ordre ne
correspond donc pas forcment aux numros dindex des calques.
Lorsque vous attribuez une forme de base un calque, chaque calque cr est associ
un numro. Toutefois, lorsquune occurrence de la forme de base est place sur la
page, les numros dindex des calques correspondants remplacent ceux qui taient
attribus aux formes de base. Par exemple, supposons quune page possde deux
calques, A et B, et que les index correspondants soient 0 et 1. Si vous insrez sur la
page de dessin une occurrence dune forme de base contenant le calque Z, dont le
numro dindex dans la liste des calques de la forme de base est 0, ce calque est ajout
la liste des calques de la page et son numro dindex est remplac. Le calque Z est
dsormais associ au numro dindex 2.
232 CHAP I TRE 11
Lorsque vous attribuez une forme un calque, la section Appartenance au calque de
la feuille de la forme utilise le numro dindex du calque pour indiquer les calques
auxquels est associe la forme de base ou la forme. Si vous envisagez dutiliser la
fentre ShapeSheet

afin dassocier des formes un calque, il est judicieux de faire


figurer dans son nom son numro dindex.
Pour at t ribuer une f orme de base un calque :
1 Cliquez avec le bouton droit sur la forme de base dans la fentre du gabarit, puis
choisissez Modifier la forme de base dans le menu contextuel.
La forme de base apparat dans la fentre de dessin de la forme de base.
REMARQUE : si vous attribuez une forme de base un calque, le gabarit contenant la
forme de base doit tre ouvert en tant quoriginal ou en tant que copie. Si le gabarit est
ouvert en lecture seule, cliquez avec le bouton droit sur sa barre de titre, puis choisissez
Modifier dans le menu contextuel.
2 Slectionnez la forme de base, puis choisissez Format > Calque.
3 Dans la bote de dialogue Nouveau calque, indiquez le nom du calque auquel vous
souhaitez attribuer la forme, puis cliquez sur OK. La bote de dialogue Calque qui
apparat comporte une liste dans laquelle se trouve le nouveau calque.
4 Pour attribuer la forme de base un autre calque, cliquez sur Crer et rptez
ltape 3.
5 Cliquez sur OK afin de fermer la bote de dialogue Calque, puis cliquez sur la case
de fermeture pour fermer la fentre de dessin de la forme de base. Cliquez ensuite
sur Oui afin de mettre jour la forme de base.
REMARQUE : lorsque vous avez fini de modifier les formes de base du gabarit, cliquez
de nouveau avec le bouton droit sur la barre de titre du gabarit,
dslectionnez Modifier, puis enregistrez vos modifications dans le fichier du gabarit.
Pour plus dinformations sur la modification des gabarits, consultez laide en ligne
fournie avec Visio.
Pour at t ribuer une f orme un calque :
1 Cliquez sur la forme avec le bouton droit, puis choisissez Format > Calque.
2 Dans la bote de dialogue Calque, slectionnez le calque auquel la forme de base
doit appartenir, puis cliquez sur OK.
Pour attribuer une forme de base plusieurs calques, appuyez sur la touche Ctrl et
cliquez sur les diffrents calques.
RORGANI SATI ON DES FORMES D UN DESSI N 233
Sil nexiste actuellement aucun calque, la bote de dialogue Nouveau calque
apparat. Saisissez le nom du nouveau calque, puis cliquez sur OK. La bote de
dialogue Calque qui apparat contient une liste dans laquelle figure le nouveau
calque.
3 Cliquez sur OK pour fermer la bote de dialogue Calque.
Pour plus dinformations sur lutilisation de calques sur la page de dessin, recherchez
formes prsentes sur des calques et calques sur les pages dans laide en ligne
fournie avec Visio.
Crat ion dune grille
Par dfaut, la page de dessin Visio affiche une grille. Si vous utilisez la grille au
moment de crer lchelle de vos formes et les pages de dessin, les utilisateurs peuvent
positionner rapidement un dessin par magntisme. Il nest pas ncessaire de
positionner toutes les formes sur une grille par magntisme. De mme, il nest pas
ncessaire de crer une grille personnalise pour tous les modles. Dans les dessins
plus techniques, toutefois, vous devez obligatoirement prendre en compte la grille
pour crer des formes de base.
Pour plus dinformations sur lutilisation des grilles dans les dessins mis lchelle,
reportez-vous au chapitre 12, Formes mises lchelle et dessins cots .
Df init ion de la grille pour la page de dessin dun modle
Lorsque vous configurez la page de dessin dun modle, vous pouvez choisir dutiliser
une grille variable ou fixe. Dans une grille variable, lincrmentation change ds que
vous procdez un zoomavant ou un zoomarrire. En revanche, dans une grille
fixe, le grossissement na aucune incidence sur lincrmentation. Dans les deux cas,
vous pouvez dfinir les graduations de la grille et des rgles. Dans chaque vue, les
utilisateurs doivent pouvoir facilement positionner des lments par magntisme sur
une grille qui utilise le mme espacement que les formes de base.
Les paramtres de grille slectionns dans la bote de dialogue Rgles et grille sont
stocks dans la section Rgles et grille de la ShapeSheet

de la page. Les paramtres des


grilles variables sont stocks dans les cellules DensitGrilleX et DensitGrilleY. Ceux
des grilles fixes sont stocks dans les cellules EspacementGrilleX et
EspacementGrilleY.
Pour df inir lespacement de la grille :
Choisissez Outils > Rgles et grille.
Pour af f icher ou masquer la grille :
Choisissez Affichage > Grille.
234 CHAP I TRE 11
Pour af f icher les f ormules Rgles et grille dune grille :
Lorsquaucun lment de la page de dessin nest slectionn, choisissez Fentres >
Afficher la feuille ShapeSheet, puis passez la section Rgles et grille.
Crat ion de f ormes de base f onct ionnant avec une grille
Si vous crez des formes de base dont les dimensions sont des multiples de
lespacement de grille existant, les utilisateurs peuvent avoir recours la fonction de
grille magntique afin de positionner leurs formes avec prcision. Lorsquun
utilisateur insre une forme de base du gabarit, loccurrence est, une fois insre,
facilement aligne sur les lignes de la grille.
Lorsque la fonction de grille magntique est active, les bords du rectangle de
slection dune forme 2D saccrochent aux lignes de grille visibles. Lutilisateur
connat ainsi la position exacte de la forme. Dans le cas dune forme 2D, la fonction
de grille magntique est plus utile lorsque la largeur et la hauteur de la forme sont des
multiples de lespacement de la grille actuelle, comme lindique la figure suivante. Si
tel nest pas le cas, les cts opposs de lobjet sont positionns par magntisme
sparment. Le comportement de dplacement de la forme est saccad et lutilisateur
doit tenter de dterminer si le bord qui saccroche la grille est le bord gauche ou droit.
Cration dune forme dont la
largeur et la hauteur sont des
multiples des units de la grille
A Largeur = 1 pouce (4 * grille)
B Espacement de la grille = pouce
C Hauteur = pouce (2 * grille)
Pour que la position des formes sur la grille soit correcte, les formes de base doivent
utiliser la mme unit de mesure que la page de dessin. Lorsque vous configurez la
page de dessin pour votre modle, attribuez la grille lunit de mesure des formes de
base qui seront utilises avec ce modle.
Pour df inir lunit de mesure dune f orme de base :
1 Cliquez sur la forme de base avec le bouton droit, puis choisissez Modifier la forme
de base afin douvrir la fentre de dessin correspondante.
REMARQUE : si vous attribuez une forme de base un calque, le gabarit contenant la
forme de base doit tre ouvert en tant quoriginal ou en tant que copie. Si le gabarit est
ouvert en lecture seule, vous pouvez cliquer avec le bouton droit sur sa barre de titre,
puis choisir Modifier dans le menu contextuel.
A
B
C
RORGANI SATI ON DES FORMES D UN DESSI N 235
2 Choisissez Fichier > Mise en page, cliquez sur longlet Proprits de la page, puis
slectionnez une option de la liste Unit de mesure.
REMARQUE : lorsque vous avez termin de modifier les formes de base du gabarit,
cliquez de nouveau sur la barre de titre du gabarit avec le bouton droit, dslectionnez
Modifier, puis enregistrez vos modifications dans le fichier du gabarit. Pour plus
dinformations sur la modification des gabarits, consultez laide en ligne fournie avec
Visio.
Pour df inir les unit s de mesure dun modle :
Choisissez Fichier > Mise en page, cliquez sur longlet Proprits de la page, puis
slectionnez une option Unit de mesure.
Si llment positionner par magntisme nest pas le bord de la forme, vous pouvez
ajuster le rectangle de slection de la forme. Pour plus dinformations sur la
personnalisation du rectangle de slection, reportez-vous la section Accrochage de
formes une grille laide des rectangles de slection , page 240.
CONSEIL : si vous crez deux formes de base devant tre connectes, placez leurs points de
connexion de manire ce que les deux formes de base saccrochent la grille et semblent
tre alignes. Le connecteur circule ainsi directement entre les deux points de connexion
les plus proches. Pour plus dinformations sur les points de connexion, reportez-vous au
chapitre 8, Liaison des formes : formes 1D et collage .
St ockage dinf ormat ions de grille laide de f ormules
Pour crer des formes de base partir dune grille modifiable, vous pouvez stocker
lespacement de grille utilis pour une forme en tant que formule dune forme de
base. En thorie, les informations despacement de grille ne sont pas stockes avec les
formes de base, mais si vous crivez des formules personnalises, vous pouvez
facilement modifier les formes de base dun gabarit afin de pouvoir utiliser diffrentes
grilles.
Cration de formules pour une grille variable
Lorsque vous utilisez un modle, vous pouvez modifier lunit de mesure du
document. Vous modifiez ainsi lunit de la grille du document qui, son tour, a une
incidence sur la grille magntique des formes. Si vous savez quune unit de mesure de
modle risque de changer, vous pouvez dfinir les formes de base du modle de
manire pouvoir utiliser plusieurs systmes.
236 CHAP I TRE 11
Par exemple, vous pouvez tre amen adapter un modle et un gabarit conus pour
une grille au de pouce afin de pouvoir les utiliser avec une autre unit de mesure,
par exemple les centimtres. Si vous dfinissez la largeur et la hauteur des formes de
base du gabarit sous la forme dune variable (dfinie dans une cellule personnalise)
exprime dans lunit de la grille, vous pouvez simplement modifier la variable de
chaque forme de base afin quelle prsente la nouvelle unit de mesure. Dans ce cas,
les formes de base sont redimensionnes automatiquement en fonction de la nouvelle
grille. Vous pouvez attribuer un nom vocateur la cellule personnalise afin
dexpliquer sa fonction.
Par exemple, ces formules crent une forme pour une grille d1 cm.
La formule peut utiliser nimporte quelle unit. La valeur est exprime dans lunit du
dessin, tout comme les cellules de la section Transformation de la forme. Pour que la
forme puisse fonctionner dans une grille en pouces, modifiez simplement la valeur de
la cellule Util.UnitGrille et indiquez 0,25 po. au lieu de 1 cm.
Cration de formules pour une grille fixe
Si la page de dessin de votre modle utilise une grille fixe, vous pouvez dfinir les
formules de la forme en fonction de lespacement de grille stock dans la page ; si
lunit de la grille fixe change dans un nouveau document, les formes du gabarit
rpercutent automatiquement cette modification. Au lieu de stocker lespacement de
grille en tant que variable personnalise, les formules de largeur et de hauteur font
rfrence aux informations de grille de la page :
uf11.uh1fC111e= 1 cm.
Lageu = 6 " uf11.uh1fC111e
haufeu = 4 " uf11.uh1fC111e
Lageu = 6 " LaPage!EspacemehfC111eX
haufeu = 4 " LaPage!EspacemehfC111eY
RORGANI SATI ON DES FORMES D UN DESSI N 237
Alignement des f ormes sur des repres et des point s de repre
Lorsque vous crez un modle, vous facilitez le travail des utilisateurs en insrant des
repres ou des points de repre sur la page de dessin. Les repres sont des lignes non
imprimables qui figurent sur la page de dessin de Visio et sont utilises pour
lalignement, comme lindique la figure suivante. Dfinis comme lignes infinies, les
repres se comportent comme des lignes normales. Ils peuvent donc tre associs du
texte et prennent en charge lutilisation de styles. Un point de repre est un repre en
forme de barre dplac depuis lintersection de deux rgles. Les utilisateurs peuvent
rapidement aligner et dplacer des formes en les collant un repre ou un point de
repre (lorsquun repre est dplac, toutes les formes colles lui le suivent).
Vous pouvez coller sur un repre un
point, un ct ou le centre dune
forme en deux dimensions.
Inst ruct ions concernant lut ilisat ion de repres ou de grilles
Les repres et les grilles permettent daligner des formes sur une page de plusieurs
manires. En rgle gnrale, les repres offrent davantage de flexibilit que les grilles.
Le tableau suivant fournit quelques conseils qui vous aideront dterminer, en
fonction de vos objectifs, si vous devez utiliser des grilles et/ou des repres.
Pour plus dinformations sur lutilisation des grilles pour lalignement de formes,
reportez-vous aux sections Cration dune grille , page 233 et Accrochage de
formes une grille laide des rectangles de slection , page 240.
Comparaison des repres et des grilles
Fonction du
repre ou
de la grille Repres Grilles
O bjets distincts Les repres et les points de repre
sont des objets distincts dont
l apparence et le comportement
peuvent tre contrls par
formule.
Les lignes d une grille ne sont
pas des objets distincts. Vous
ne pouvez donc ni dfinir leurs
proprits, ni crire des
formules les concernant.
Rotation Vous pouvez faire pivoter les
repres par rapport la page en
saisissant une valeur dans le
champ Angle de la fentre
Taille et position (Affichage >
Fentres > Taille et position).
Les lignes d une grille sont
toujours horizontales et
verticales par rapport la
fentre, et non par rapport la
page.
238 CHAP I TRE 11
Manipulat ion des repres et des point s de repre
La gomtrie dun repre se prsente sous la forme dune ligne infinie unique. Vous
pouvez appliquer des styles aux repres comme vous le feriez pour des lignes
normales. Par dfaut, les repres utilisent le style prdfini. Les repres peuvent
facilement tre dplacs sur la page.
Lorsque vous crez un repre, il est parallle la rgle depuis laquelle vous lavez fait
glisser. Les rgles sont toujours verticales et horizontales par rapport la fentre, et
non par rapport la page. Si vous crez un repre sur une page que vous avez fait
pivoter, le repre ne pivotera pas forcment avec la page.
Pour crer un repre :
Pointez vers la rgle horizontale ou vers la rgle verticale. Le pointeur se
transforme en une flche deux pointes. Placez le repre lemplacement souhait
sur la page de dessin en le faisant glisser, puis relchez le bouton de la souris.
Pour crer un point de repre :
Faites glisser votre pointeur depuis lintersection de deux rgles.
Pour slect ionner un repre sur la page de dessin :
Cliquez sur le repre avec loutil Pointeur. Le repre devient vert. Vous pouvez
alors le dplacer, le supprimer ou afficher la fentre Taille et position (choisissez
Affichage > Fentres > Taille et position). Cette fentre permet de faire pivoter le
repre, ou de prciser sa position et son orientation. Vous pouvez galement
ouvrir la fentre ShapeSheet

qui affiche ses proprits.


Pour indiquer prcisment la posit ion dun repre sur la page :
Utilisez des formules. Par exemple, si lchelle de votre dessin au format A5 est
de 1:500, la largeur de la page correspond une distance de 74 mtres. Vous
pouvez placer le repre par rapport la largeur de la page laide dune formule du
type suivant :
I ntervalles de
grille et de repre
Les repres peuvent tre
paramtrs manuellement sur
n importe quel intervalle.
Les lignes de la grille
apparaissent intervalles
rguliers.
I mpression Les repres peuvent tre
imprims : dslectionnez l option
Forme non imprimable dans la
bote de dialogue Comportement.
Les lignes de la grille ne sont
pas imprimes.
AxeX= LaPage!LageuPage-Sm
Comparaison des repres et des grilles (suite)
Fonction du
repre ou
de la grille Repres Grilles
RORGANI SATI ON DES FORMES D UN DESSI N 239
Pour act iver ou dsact iver laf f ichage des repres dun document :
Choisissez Affichage > Repres.
Pour dsact iver le magnt isme des repres dun document :
1 Choisissez Outils > Magntisme et collage.
2 Dans longlet Gnral, dans la zone Activation, dslectionnez Magntisme.
Repres se t rouvant sur une page pivot e
Lorsque vous crez un repre, il est parallle la rgle depuis laquelle vous lavez fait
glisser. Les rgles sont toujours verticales et horizontales par rapport la fentre, et
non par rapport la page. Si vous crez un repre sur une page que vous avez fait
pivoter, le repre ne pivotera pas forcment avec la page.
Pour prciser langle de rot at ion dun repre :
Affichez la fentre Taille et position (choisissez Affichage > Fentres > Taille et
position), puis saisissez une valeur dans le champ Angle. Vous pouvez galement
slectionner un repre, puis le faire pivoter laide de loutil Rotation ( ).
La section Infos sur les repres enregistre le point de rotation du repre dans les
cellules AxeX et AxeY, ainsi que langle de rotation. Une forme colle un repre
possde une section Alignement faisant rfrence au repre par le biais dune formule
qui comprend une fonction IntersectX ou IntersectY.
Regroupement de repres et de f ormes
Vous pouvez utiliser des repres et des points de repre afin daligner des formes et
des groupes lorsque vous crez des formes de base. Par exemple, vous pouvez
regrouper une forme et un repre. Lorsque vous ouvrez la fentre du groupe afin de le
modifier (pour ce faire, slectionnez le groupe, puis choisissez Edition > Ouvrir
Grouper), le repre apparat. Il permet daligner facilement des formes
supplmentaires du groupe.
Si une forme est colle un repre et que vous ajoutiez cette forme (et non le repre)
un groupe, la connexion tablie entre la forme et le repre disparat. De mme, si vous
ajoutez un repre un groupe sans ajouter les formes colles, les connexions de la
forme au repre disparaissent galement. Si vous incluez dans le groupe la fois le
repre et les formes colles, les connexions sont conserves.
240 CHAP I TRE 11
Accrochage de f ormes une grille laide des rect angles
de slect ion
Lorsquun utilisateur fait glisser une forme dans la fentre de dessin, le rectangle de
slection par dfaut de la forme saccroche la ligne la plus proche sur la grille. (Si la
fonction de grille magntique est dsactive pour un document, le moteur Visio laisse la
forme lemplacement o elle a t place.) Toutes les formes comportent un rectangle
de slection dont la taille est par dfaut identique au plan largeur/hauteur de la forme.
Si une forme est asymtrique ou comporte des composants de taille personnalise, les
utilisateurs risquent davoir du mal prvoir son comportement dalignement et de
positionnement par magntisme. Dans certains cas, vous souhaiterez accrocher la
grille dautres lments que les bordures extrieures de la forme. Vous pouvez
personnaliser ce rectangle de slection afin didentifier clairement sa fonction.
Un rectangle de slection peut tre
plus grand ou plus petit que la
forme quil reprsente. Il apparat
lorsquune forme est slectionne
ou dplace.
Si vous faites pivoter une forme selon un angle qui nest pas un multiple de 90 degrs,
le rectangle de slection est le plus petit rectangle suprieur droit pouvant contenir
tous les chemins de la forme comme si leur paisseur de trait tait de zro.
Rglage de la t aille du rect angle de slect ion dune f orme
Vous pouvez personnaliser la taille du rectangle de slection dune forme. Par
exemple, vous pouvez crer un ensemble de formes prsentant le mme rectangle de
slection afin de les positionner et de les aligner correctement, comme ci-dessous.
Formes de base munies de
rectangles de slection
personnaliss
A Comme ils servent tablir des connexions
avec dautres formes, les rectangles de
slection de ces valves 1D prsentent tous la
mme hauteur.
B Pour faciliter lalignement, la
taille du rectangle de slection
de la forme Donnes (en haut)
est identique la forme
Processus (en bas).
RORGANI SATI ON DES FORMES D UN DESSI N 241
Pour crer un rectangle de slection qui ne corresponde pas la gomtrie dune
forme, dessinez dabord le rectangle de slection, puis paramtrez-le de telle manire
que le moteur Visio ne puisse pas le modifier lorsque vous crez et modifiez la
gomtrie de la forme.
Pour df inir un rect angle de slect ion dif f rent du plan largeur/haut eur :
1 Dessinez votre forme.
2 Slectionnez la forme, puis choisissez Fentre > Afficher la feuille ShapeSheet.
3 Dans la section Protection, donnez la valeur TRUE la cellule VerrCalcLH.
Ce paramtre empche le rectangle de slection actuel de changer lorsque vous
modifiez la gomtrie de la forme.
4 Utilisez loutil Crayon, Trait, Arc ou Rectangle pour ajouter des lments la
gomtrie de la forme ou pour la modifier.
Positionnement dune forme lintrieur dun rectangle de slection
de taille suprieure la forme
Vous pouvez insrer une forme dans un rectangle de slection plus grand que son
plan largeur/hauteur. Les utilisateurs peuvent ainsi la positionner plus facilement par
magntisme. Par exemple, le symbole dune prise lectrique est une forme
rectangulaire qui se trouve dans une zone de slection carre plus grande. La forme
peut ainsi tre dplace sans problme.
Pour inclure une f orme dans un rect angle de slect ion de t aille suprieure
la f orme :
1 Dessinez la forme.
2 Dessinez une autre forme de la taille du rectangle de slection souhait.
3 Slectionnez les deux formes, puis appuyez sur Ctrl+G pour les regrouper.
4 Slectionnez le groupe, choisissez Edition > Ouvrir Grouper, puis supprimez le
rectangle de slection du groupe.
242 CHAP I TRE 11
Personnalisation du rectangle de slection dun groupe
Vous pouvez personnaliser la taille du rectangle de slection dun groupe afin que les
utilisateurs puissent facilement positionner la forme de base par magntisme et
laligner. Lorsquune forme de base est un groupe compos dune ou de plusieurs
formes, le groupe fournit le rectangle de slection. Pour certaines formes, le rectangle
par dfaut du groupe nest pas align correctement par rapport la forme. La figure
suivante reprsente un groupe dot dun rectangle de slection personnalis.
Ce rectangle de slection
personnalis (A) est plus petit que
le groupe et ne comprend pas la
forme du libell du groupe.
Pour crer un groupe dot dun rect angle de slect ion de t aille
personnalise :
1 Crez les formes qui composent la forme de base. Ne personnalisez pas encore les
formules de ces formes.
2 Utilisez loutil Rectangle pour crer une forme. Attribuez-lui la taille et la position
souhaites pour le rectangle de slection par rapport aux autres formes de la forme
de base.
3 Slectionnez uniquement le rectangle de slection et regroupez-le avec les formes,
puis choisissez Edition > Ouvrir Grouper pour louvrir dans la fentre de groupe.
4 Slectionnez les autres formes ajouter au groupe, faites-les glisser dans la fentre
du groupe, puis positionnez-les par rapport au rectangle de slection.
5 Supprimez la forme du rectangle de slection, puis fermez la fentre du groupe.
6 Ajoutez aux formes des formules personnalises.
Mise jour dun rect angle de slect ion
Le rectangle de slection dune forme risque de ne plus concider avec son plan
largeur/hauteur une fois que vous avez modifi ses sommets ou, dans le cas dun
groupe, une fois que vous avez ajout ou supprim une forme. Pour raligner
explicitement le rectangle de slection avec le plan largeur/hauteur, choisissez Forme
> Oprations > M. jour rect. slection.
Si vous dfinissez une poigne de contrle sur un sommet dune forme, le
dplacement de cette poigne change galement la gomtrie de la forme. Le rectangle
de slection ne concide donc plus avec le plan largeur/hauteur. Dans ce cas, vous
pouvez donner la valeur TRUE la cellule MseAJourRectSl de la section Divers de
manire ce que le rectangle de slection soit toujours redimensionn lorsque vous
dplacez les poignes de contrle.
RORGANI SATI ON DES FORMES D UN DESSI N 243
Modif icat ion du rect angle de slect ion des f ormes 1D
Par dfaut, les points de fin dune forme 1D sont centrs horizontalement dans le
rectangle de slection. En dplaant les points de dpart et de fin du plan local de la
forme, vous pouvez modifier le rectangle de slection afin que les utilisateurs puissent
aligner votre forme plus facilement. Par exemple, la figure suivante illustre une forme
de mur 1D munie de points de fin sur chaque bord, plutt quau centre. Lorsque les
utilisateurs font glisser la forme, le trait du rectangle de slection suit le bord utilis
pour connecter le mur.
Le rectangle de slection
personnalis dune forme de
mur 1D comporte des points de fin
(A) aligns sur le bord du mur. Son
dplacement est ainsi facilit.
Pour dplacer le rect angle de slect ion dune f orme 1D :
1 A laide de loutil Rectangle, dessinez la forme.
2 Slectionnez la forme, puis choisissez Format > Comportement.
3 Dans longlet Comportement, slectionnez loption Trait (1D), puis cliquez
sur OK.
4 Choisissez Fentre > Afficher la feuille ShapeSheet.
5 Dans la section Transformation de la forme, saisissez 0 po. dans la cellule AxeLocY.
Lorsque vous dplacez la coordonne y de laxe local, vous alignez les points de fin
sur le bord de la forme.
CONSEIL : vous pouvez masquer le rectangle de slection dune forme 1D (par exemple un
connecteur) si son affichage et la fonction dune forme risquent dinterfrer. Choisissez
Format > Comportement, puis dslectionnez loption Afficher la zone d'alignement.
Vous pouvez galement donner la valeur TRUE la cellule PasRectSl dans la section
Divers.
Crat ion de f ormes et mise en page aut omat ique
Le moteur Visio offre des possibilits de mise en page automatique puissantes qui
mettent en place les formes et repositionnent les connecteurs entre les formes sur la
base des options slectionnes par les utilisateurs. Vous pouvez contrler la manire
dont les formes et les connecteurs de vos solutions ragissent lorsquun utilisateur
manipule le dessin ou utilise la commande Mettre en page les formes. Pour ce faire,
personnalisez les paramtres par dfaut des pages dans vos modles. Vous pouvez
galement ne pas prendre en compte le comportement de placement et de
repositionnement de chaque forme de base et de chaque connecteur dans les gabarits
que vous crez.
A A
244 CHAP I TRE 11
Df init ion des opt ions de mise en page de la page
Lorsquun utilisateur dplace un dessin ou choisit Outils > Mettre en page les formes,
le moteur Visio utilise les valeurs des cellules de la section Mise en page figurant sur la
feuille de la page afin de dterminer le comportement de repositionnement et de
placement par dfaut des connecteurs et des formes du dessin. Vous pouvez modifier
directement les valeurs des cellules ou slectionner des options dans longlet
Repositionnement et mise en page de la bote de dialogue Mise en page (choisissez
Fichier > Mise en page).
Vous pouvez galement dfinir le comportement de placement des formes de base et
de chaque forme, et le comportement de repositionnement des connecteurs dans la
section Mise en page des formes. Plusieurs cellules de cette section Mise en page des
formes sont identiques celles de la section Mise en page. Certaines modifications
que vous effectuez localement peuvent donc tre prioritaires par rapport au
paramtrage gnral
En rgle gnrale, lorsque vous indiquez des options de mise en page globales et que
vous limitez le nombre de remplacements locaux, le comportement de
repositionnement est plus cohrent et donc plus prvisible. Par exemple, vous pouvez
indiquer que les formes positionnables disparaissent lorsquune autre forme est
insre sur le dessin par le biais dun paramtre global. Pour interdire le dplacement
de certaines occurrences de la forme, modifiez la section Mise en page des formes
dune forme de base particulire. Vous pouvez galement indiquer que les
occurrences dune forme de connecteur utilisent un style de trait particulier ou une
direction de dviation donne.
RORGANI SATI ON DES FORMES D UN DESSI N 245
Le tableau suivant rpertorie les cellules de la section Mise en page des formes qui
remplacent les paramtres par dfaut de la section Mise en page.
REMARQUE : cette liste nest pas exhaustive et ne prsente pas toutes les cellules que vous
pouvez contrler dans les sections Mise en page et Mise en page des formes. Reportez-vous
laide en ligne Rfrence du dveloppeur fournie avec Visio pour plus dinformations sur
les fonctions de chaque cellule de ces sections ShapeSheet

.
Cellules Mise en page des formes remplaant les paramtres Mise en page
Cellule Mise en
page des formes Sapplique aux Dtermine
CodeTracForme Formes
positionnables
Si les formes positionnables de la page de
dessin disparaissent lorsqu une autre forme
positionnable est insre proximit.
Remplacez les paramtres par dfaut de la
page par Repositionner au besoin (1) ou
Jamais (2).
CodeDvTraitLien Formes
repositionnables
Le moment o le connecteur est dvi.
Remplacez les paramtres par dfaut de la
page par Jamais (1) ou par Toujours (2).
StyleDvTraitLien Formes
repositionnables
Le style d une dviation de connecteur.
Remplacez les paramtres par dfaut de la
page par les dviations Arc (1), I ntervalle (2),
Carr (3) ou plusieurs cts (4-9). Pour plus
d informations, recherchez
ConLineJumpStyle dans l aide en ligne
(choisissez ? (Aide) > Rfrence du
dveloppeur) fournie avec Visio.
DirDvTraitLienX et
DirDvTraitLienY
Formes
repositionnables
La direction horizontale (X) ou verticale (Y)
d une dviation de connecteur. Dans le cas
de dviations horizontales, remplacez les
paramtres par dfaut de la page par Gauche
(1) ou Droite (2). Dans le cas de dviations
verticales, remplacez les paramtres par
dfaut de la page par Haut (1) ou par Bas (2).
StylePositionForme Formes
positionnables et
repositionnables
Le style et la direction d un connecteur sur la
page de dessin. Pour plus d informations sur
les valeurs ce cette cellule, recherchez
StylePositionForme dans l aide en ligne
Rfrence du dveloppeur fournie avec
Visio.
246 CHAP I TRE 11
Df init ion du comport ement des f ormes et des connect eurs
Lorsque vous crez une forme de base, ses paramtres Mise en page des formes
correspondent aux valeurs par dfaut de la page actuelle. Vous pouvez modifier ces
paramtres afin de dfinir la manire dont les occurrences dune forme de base
interagissent avec les autres formes lorsquun utilisateur manipule un dessin ou
choisit la commande Mettre en page les formes. Par exemple, vous pouvez, si vous le
souhaitez, permettre la superposition des formes. Vous pouvez galement faire en
sorte que les connecteurs se repositionnent en passant travers les formes plutt
quen les contournant.
Le mme processus sapplique aux formes de connecteur : vous pouvez modifier le
comportement des connecteurs dynamiques afin de fournir des interactions plus
personnalises lors de la mise en page automatique des formes. Par exemple, vous
pouvez tre amen empcher la dviation de certains connecteurs ou, au contraire,
dfinir une dviation de trait particulire pour les connecteurs qui peuvent tre
dvis.
Lorsque vous crez des formes de base, vous pouvez galement associer aux points de
connexion un comportement personnalis. Les points de connexion sont associs
une direction qui contrle le mode de connexion des connecteurs la forme. En
modifiant la direction dun point de connexion, vous pouvez contrler encore plus
prcisment la manire dont les connecteurs sont associs une forme.
REMARQUE : les options de direction des points de connexion ne sont disponibles que si
vous excutez Visio en mode Dveloppeur. (Pour ce faire, choisissez Outils > Options,
cliquez sur longlet Options avances, slectionnez Excuter sous le mode dveloppeur,
puis cliquez sur OK.)
RORGANI SATI ON DES FORMES D UN DESSI N 247
Pour modif ier la direct ion dun point de connexion :
1 Choisissez loutil de point de connexion ( dans la barre doutils Standard, puis
cliquez dessus pour slectionner un point de connexion.
2 Cliquez avec le bouton droit sur le point, puis choisissez une direction dans le
menu contextuel. La direction vers lextrieur ne peut pas tre utilise pour les
connexions point point.
3 Cliquez sur le triangle gris associ au point de connexion et faites-le glisser afin
dindiquer une direction. Lorsque le point de connexion a t activ, le triangle
devient vert.
Le changement de direction dun
point de connexion dtermine la
manire dont les connecteurs sont
associs cette forme.
A Pour relier le connecteur lextrieur de la forme, faites glisser le cercle du point de connexion
vers lintrieur de la forme.
B Vous ne pouvez tablir aucune connexion avec les points de connexion vers lextrieur. Ils
permettent uniquement de connecter deux formes par magntisme.
C Les points de connexion vers lintrieur et vers lextrieur fournissent de nombreuses options de
connexion.
A
B
C
Sommaire
12
Formes mises lchelle et
dessins cot s
Lorsque les dessins crs par les utilisateurs reprsentent des objets rel, des formes et
modles sont ncessaires pour quils puissent tre lchelle. Vous pouvez concevoir
des formes de base qui adoptent les dimensions adquates lorsque les utilisateurs les
insrent dans une page de dessin dote dune chelle, par exemple pouce = 1 pied.
Si vous concevez galement le modle, vous pouvez avoir la garantie que lchelle de la
page de dessin est compatible avec celle des formes de base fournies et les oprations
de dessin sont ainsi simplifies.
Ce chapitre explique comment choisir lchelle des dessins et des formes ; il indique
galement comment empcher la mise lchelle des formes, y compris dans un
dessin lchelle. Pour plus dinformations sur la conception dune grille pour les
dessins avec ou sans mise lchelle, et sur la cration de formes ajustes une grille,
reportez-vous au Chapter 11, Rorganisation des formes dun dessin. .
Choix dune chelle de dessin approprie........................................................... 250
Choix des chelles des formes de base................................................................ 253
Cration de formes non mises lchelle............................................................ 257
250 CHAP I TRE 12
Choix dune chelle de dessin approprie
Tout dessin reprsentant des objets physiques trop petits ou trop grands pour tre
dessins aisment, ou qui ne tiennent pas sur la feuille de papier, doit tre mis
lchelle. Par exemple, pour le plan dune maison, pouce sur la page de dessin peut
reprsenter 1 pied de la maison en ralit. Les schmas, tels que les diagrammes de
flux et les organigrammes, permettent de dcrire les objets abstraits ; par consquent,
ces types de dessin nont pas dchelle et les formes apparaissent leur taille relle.
Dans Microsoft

Visio

, les units de dessin reprsentent la taille des objets. Dans


lexemple de maison ci-dessus, 1 pied est lunit de dessin. Les units de page
reprsentent la taille des objets sur la page imprime (pouce dans ce mme
exemple). Le rapport des units de page sur les units de dessin constitue lchelle du
dessin.
Les cellules ShapeSheet

dcrivant la taille ou la position de lobjet (cest--dire la


plupart des cellules) sont exprimes en units de dessin. Les cellules reprsentant des
mesures sur la page imprime, par exemple le format et les retraits de texte, sont
exprimes en units de page. Si vous modifiez lchelle du dessin, toutes les cellules
ShapeSheet exprimes en units de dessin restent identiques, mais la forme est
redessine en fonction de la nouvelle chelle.
FORMES MI SES L CHEL L E ET DESSI NS COTS 251
Prsent at ion des chelles de dessin et de page
Pour comprendre le rapport existant entre lchelle du dessin et lchelle de la page,
observez la figure suivante, qui reprsente une piscine. La piscine mesure 40 pieds de
long sur 20 pieds de large ; lpaisseur du trait de dessin est de 1 point et la police du
texte est de 8 points.
Si vous utilisez lchelle de dessin de pouce = 1 pied (1:48), le dessin de la piscine
mesure 10 pouces de long sur 5 de large. Si vous modifiez lchelle du dessin et
choisissez
1
/8 pouce = 1 pied (1:96), la piscine fait toujours 40 pieds sur 20 ;
cependant, le dessin la reprsentant ne mesure plus que 5 pouces sur 2 . Quelle que
soit lchelle utilise, lpaisseur du trait de dessin est toujours de 1 point et la police
est de 8 points.
En units de dessin, la piscine fait
toujours 40 pieds sur 20 quelle que
soit lchelle de dessin utilise.
A Echelle du dessin :
1
/8 po. = 1 pd (1:96)
B En units de page, la piscine mesure 5 po. sur 2 1/2 avec cette chelle de dessin.
C Echelle du dessin : po. = 1 pd (1:48)
D En units de page, la piscine mesure 10 po. sur 5 avec cette chelle de dessin.
252 CHAP I TRE 12
Fact eurs prendre en compt e lors du choix dune chelle de
dessin
Pour choisir lchelle de dessin approprie inclure dans un modle, prenez en
compte les facteurs suivants :
la taille prvue du dessin, en units de dessin ;
la taille du papier sur lequel les utilisateurs impriment leurs dessins ;
les conventions de dessin ou de la profession qui sappliquent au type de dessin
que les utilisateurs crent laide de votre modle, comme les marges ou les blocs
de titre.
Par exemple, un utilisateur peut imprimer le plan dune maison sur une feuille de
8 pouces sur 11 pouces, en orientation paysage. Si lchelle utilise pour le dessin
est pouce = 1 pied, la page de dessin reprsente une surface de 34 pieds sur 44 pieds
(en supposant quaucune marge nait t dfinie pour la page imprime). Ce format
risque dtre insuffisant pour reprsenter la maison et son amnagement extrieur. Il
est donc prfrable de choisir une chelle plus grande, par exemple
1
/8 pouce = 1 pied ou 1 pouce = 10 pieds.
REMARQUE : les units de dessin peuvent mesurer dautres paramtres que la distance.
Vous pouvez utiliser le temps coul plutt que la distance pour une chelle de page. Pour
ce faire, paramtrez les units de dessin sur des heures, des jours, des semaines ou des
mois. Vous pouvez, par exemple, utiliser les semaines coules (portant labrviation
we dans les formules ShapeSheet) comme units de dessin pour le diagramme dun
planning de projet. Pour obtenir la liste complte des units disponibles, recherchez les
mots-cls units de mesure dans laide en ligne Rfrence du dveloppeur fournie avec
Visio.
Pour df inir lchelle de dessin dune page :
1 Slectionnez Fichier > Mise en page, puis cliquez sur longlet Proprits de la page.
2 Dans la zone Unit de mesure, choisissez les units de dessin souhaites, puis
cliquez sur longlet Taille de la page.
3 Dans longlet Taille de la page, slectionnez lorientation et la taille du papier sur
lequel le dessin va tre imprim.
Les valeurs indiques dans longlet Taille de la page reprsentent les units de
mesure de votre page en fonction de lchelle et du format de papier slectionns.
FORMES MI SES L CHEL L E ET DESSI NS COTS 253
4 Cliquez sur longlet Echelle de dessin, puis, dans la section du mme nom,
choisissez une chelle prdfinie dans la liste :
Slectionnez Architecturale, Gnie civil ou Gnie mcanique parmi les chelles
intgres standard pour ces professions.
Choisissez Mtrique pour dfinir un rapport dchelle mtrique standard pour
la page.
Vous pouvez galement cliquer sur Echelle personnalise, puis saisir un autre
rapport dchelle.
Pour plus dinformations sur les options, cliquez sur le bouton daide.
CONSEIL : pour vous assurer que la forme de base que vous crez correspond lchelle de
dessin dune page de modle, modifiez-la, puis rptez la procdure ci-dessus dans la
fentre de dessin de la forme de base. Pour plus dinformations, reportez-vous la section
Dfinition de lchelle dune forme de base , page 256.
Choix des chelles des f ormes de base
Vous pouvez mettre lchelle les formes de base et les pages de dessin. Laspect dune
forme sur la page de dessin dpend de lchelle de la forme de base et de celle de la
page de dessin. Si une forme est mise lchelle, et que la page nait pas dchelle ou ait
une chelle trs diffrente (ou vice-versa), la forme peut avoir un comportement
inattendu lorsque lutilisateur linsre dans la page. Si les utilisateurs ne connaissent
pas ces diffrences dchelle, ils risquent dtre dus sils tentent dutiliser des formes
sur une page avec une chelle incompatible.
Vous ne pouvez pas empcher les utilisateurs de crer un dessin, dy dfinir une
chelle et dy insrer des formes ; cependant, vous pouvez veiller ce que les chelles
des pages de dessin fournies avec vos modles correspondent celles de vos formes de
base. Vous pouvez galement crer des formes de base compatibles avec le plus grand
nombre dchelles de dessin possible.
254 CHAP I TRE 12
Df init ion dune chelle approprie pour une f orme de base
Il est prfrable que lchelle de dessin dune forme de base corresponde celle de la
page dans laquelle cette forme est insre. Comme ce nest pas toujours possible, Visio
gre, dans une certaine mesure, les diffrences dchelle en sassurant que la taille de la
forme, telle quelle est dessine, est identique celle de la forme de base, en units de
dessin :
Si la diffrence entre lchelle de la forme et celle de la page de dessin nexcde pas
le facteur huit (cest--dire si lchelle de dessin de la forme de base est au
maximum huit fois suprieure ou infrieure celle de la page), Visio calcule la
taille de la forme en units de dessin et la met correctement lchelle sur la page
de dessin. Ce comportement permet dviter quune forme ne devienne trop
grande et dissimule entirement la page de dessin, ou trop petite pour tre visible.
Si une chelle est plus de huit fois suprieure ou infrieure lautre, Visio ne
change pas lchelle de la forme ; la taille de la forme est identique, en units de
page, celle de la forme de base. Lutilisateur peut redimensionner cette forme
aprs son insertion. Par exemple, dans la figure suivante, lorsque la forme de la
table est insre dans un dessin dont lchelle dpasse la limite dun rapport huit,
sa taille, en units de page, est identique celle de la forme de base (2 pouces).
Cependant, Visio recalcule sa largeur laide de lchelle de dessin de la page.
Visio utilise un facteur de huit lorsquil ne met pas lchelle une forme, cest
pourquoi cette mthode est quelquefois appele rgle du rapport huit .
FORMES MI SES L CHEL L E ET DESSI NS COTS 255
Par exemple, vous pouvez crer une forme de base dune table pouvant tre utilise
dans des modles damnagement de lespace dont lchelle varie de pouce = 1 pied
(facteur dchelle de 1:24) 1 pouce = 10 pieds (facteur dchelle de 1:120). Dans la
figure suivante, lorsquune forme de table de 48 pouces est insre dans un dessin
dont lchelle est dans les limites du rapport huit, la table est correctement mise
lchelle. La section Transformation de la forme indique que sa largeur est toujours de
48 pouces.
Formes redessines des chelles
diffrentes en fonction de la rgle
du rapport huit
Visio applique la rgle du rapport huit uniquement aux valeurs de largeur et de
hauteur. Les constantes des formules ne sont pas ajustes. Donc, si vous saisissez, par
exemple, la formule suivante dans lune des cellules de la section Gomtrie, vous
risquez dobtenir des rsultats inattendus :
Visio modifie la largeur de la forme et la rfrence de largeur est mise lchelle, mais
une mesure de 1 pied reste inchange dans les units de dessin. Par consquent, la
forme peut avoir une apparence trange mme aprs avoir t correctement mise
lchelle.
A Facteur de la forme de base :
pouce = 1 pied
Rapport dchelle : 1:24
Taille (en units de dessin) :
4 pieds
Taille limpression (en units
de page) : 2 pouces
B Echelle de dessin : 1 pouce =
10 pieds
Facteur dchelle : 1:120
Taille (en units de dessin) :
4 pieds
Taille limpression (en units
de page) : 0,4 pouce
Facteur dchelle :
(1/24) / (1/120) = 5
5 est infrieur 8 ; la forme est
donc mise lchelle.
C Echelle de dessin : 1 pouce =
20 pieds
Rapport dchelle : 1:240
Taille (en units de dessin) :
40 pieds
Taille limpression (en units
de page) : 2 pouces
Facteur dchelle :
(1/24) / (1/240) = 10
10 est suprieur 8 ; la forme
nest donc pas mise
lchelle.
Lageu - 1 p1ed
256 CHAP I TRE 12
Pour utiliser la rgle de rapport huit lors de la conception des formes de base, suivez
les instructions ci-dessous :
Dfinissez lchelle dune forme de base comprise entre lchelle la plus grande et la
plus petite utilises pour cette forme de base. Ainsi, la forme de base fonctionne
avec la plus grande plage possible dchelles de dessin dans le rapport huit. Cette
chelle moyenne est gale la racine carre du rapport dchelle de dessin le
plus lev multiplie par le rapport dchelle de dessin le moins lev.
Si vous souhaitez quune forme ne soit jamais mise lchelle, paramtrez lchelle
de la forme de base sur une valeur extrme, pour que la forme ne subisse pas de
mise lchelle lorsque vous linsrez dans la page. Vous pouvez par exemple
utiliser une chelle de 1 000 pouces = 1 pouce, ce qui est bien en dehors des limites
du rapport huit. Pour plus dinformations, reportez-vous la section Cration de
formes non mises lchelle , page 257.
Df init ion de lchelle dune f orme de base
En gnral, lchelle dune forme de base est gale lchelle de la page de dessin avec
laquelle cette forme est utilise. Par dfaut, une forme de base utilise lchelle de la
page de dessin dans laquelle elle a t cre, avant que la forme ait t insre dans un
gabarit. Toutefois, si vous utilisez la commande Nouvelle forme de base pour crer
une forme de base directement dans le gabarit, cette forme nest par dfaut pas mise
lchelle.
REMARQUE : pour modifier une forme de base, vous devez ouvrir le fichier de gabarit
dorigine. Si vous ouvrez le gabarit en lecture seule, vous ne pouvez pas modifier ses
formes de base.
Pour df inir lchelle dune f orme de base :
1 Cliquez avec le bouton droit sur lune des formes de base du gabarit, puis
slectionnez Modifier la forme de base dans le menu contextuel.
2 Choisissez Fichier > Mise en page, puis cliquez sur longlet Echelle de dessin.
3 Dans longlet Echelle de dessin, slectionnez une chelle prdfinie dans la liste :
Slectionnez Architecturale, Gnie civil ou Gnie mcanique parmi les chelles
intgres standard pour ces professions.
Cliquez sur Mtrique pour dfinir un rapport dchelle mtrique standard pour
la page.
Vous pouvez galement choisir Echelle personnalise et saisir un rapport dchelle
pour dfinir une autre chelle.
FORMES MI SES L CHEL L E ET DESSI NS COTS 257
Crat ion de f ormes non mises lchelle
Vous pouvez crer des formes de base qui ne sont jamais mises lchelle, cest--dire
des formes dont la taille reste identique en units de page quelle que soit lchelle de
dessin utilise. Par exemple, le bloc de titre dun plan ou la lgende dune carte
doivent toujours conserver la mme taille, quelle que soit lchelle. Pour quune forme
de bloc de titre conserve la mme taille, ses dimensions doivent tre converties en
units de page, mme si elles sont exprimes en units de dessin.
Visio contient deux formules de page qui vous permettent de dterminer lchelle :
LaPage!EchellePage et LaPage!EchelleDessin. Vous pouvez crire une formule de
non-mise lchelle utilisant le rapport de ces deux valeurs pour convertir une valeur
exprime en units de page en une valeur quivalente en units de dessin.
Pour convertir une valeur exprime en units de page en une valeur quivalente en
units de dessin, multipliez-la par le rapport suivant :
Si vous crivez une formule personnalise utilisant ce rapport pour une forme de
base, les utilisateurs peuvent insrer cette forme sans que son chelle de dessin, quelle
quelle soit, change. Par exemple, pour crer sur la feuille une forme qui mesure
toujours 5 cm de largeur et qui ne peut pas tre redimensionne, saisissez la formule
suivante dans la section Transformation de la forme :
Pour que les utilisateurs puissent redimensionner la forme, nutilisez pas la fonction
PROTECTION. Lorsquun utilisateur cre une occurrence de cette forme de base sur
une page avec une chelle de 1 cm= 1 m, la formule de largeur est recalcule en
fonction de lchelle de la page de destination :
Une forme de 500 cm fait 5 cm lorsquelle est imprime ou affiche lcran en taille
relle.
LaPage!Eche11e0ess1h / LaPage!Eche11ePage
Lageu = PP0TECTT0h|S cm " |LaPage!Eche11e0ess1h / LaPage!Eche11ePage))
= S cm " |1 m / 1 cm)
= S cm " 100
= S00 cm
258 CHAP I TRE 12
Si vous crez plusieurs formes de base non mises lchelle, il peut savrer plus
efficace de placer la formule de non-mise lchelle dans une cellule de la feuille
dfinie par lutilisateur, telle que Lapage!Util.NonMiseEchelle. Ainsi, vous pouvez
rapidement modifier cette formule, en saisissant de nouvelles valeurs une seule fois,
savoir dans la feuille. La formule dune forme de base non mise lchelle devient
alors la suivante :
Lageu= S cm " LaPage!uf11.hohM1seEche11e
Sommaire
13
Dif f usion de gabarit s
et de modles
Les formes de base, les gabarits et les modles sont les lments qui composent une
solution graphique. Toutes les solutions ne ncessitent pas ces trois types dlments,
mais cela peut tre le cas dune solution comprenant de nombreuses formes nouvelles
ou personnalises destines la distribution. Vous pouvez en outre joindre des
fichiers daide pour assister les utilisateurs. Avant de distribuer les formes de base, les
gabarits et les modles, vous devez les soumettre un test approfondi. Cest en effet la
seule faon de sassurer que les utilisateurs peuvent comprendre et utiliser facilement
les diffrentes composantes de votre solution Microsoft

Visio

.
Ce chapitre explique comment peaufiner les formes, les gabarits et les modles. Il
dcrit galement comment intgrer une aide sur les formes et donne des instructions
dtailles pour tester votre travail en fonction de la mthode utilise par lquipe
dassurance qualit de Visio.
Conception de formes personnalises pour la distribution ............................... 260
Test des formes de base........................................................................................ 262
Ajout dune aide aux formes de base................................................................... 266
Finalisation et test dun gabarit............................................................................. 268
Finalisation et test dun modle............................................................................ 273
Installation des gabarits et des modles.............................................................. 277
260 CHAP I TRE 13
Concept ion de f ormes personnalises pour la dist ribut ion
Si vous prenez le temps de crer vos propres formes, vous envisagez certainement de
les rutiliser ou de les distribuer dans des gabarits et des modles afin que dautres
puissent les utiliser. Lobjectif dun travail de conception soign est de produire des
formes dont le fonctionnement correspond aux attentes des utilisateurs. Dans tout
travail de cration rptitif les rsultats saffinent au fur et mesure des tentatives :
cest le cas de la conception de formes.
Les lments qui fonctionnent sur votre systme peuvent ne pas fonctionner sur un
autre systme. Les installations de Microsoft

Windows

ne sont pas toutes


rigoureuse-ment identiques. Si vous connaissez la configuration matrielle des
utilisateurs, vous pouvez optimiser les formes, les gabarits et les modles que vous
crez leur intention. Mme si vous crez des formes que vous serez seul utiliser,
vous gagnerez du temps si vous connaissez les caractristiques de votre
environnement informatique car vous pourrez crer des formes immdiatement
oprationnelles.
Quel que soit le systme, lutilisation des gabarits et des modles est lie la vitesse du
processeur et la quantit de mmoire disponible. Les formes comprenant de
nombreuses formules complexes sont recalcules et redessines plus lentement que
des formes simples, et occupent un espace disque plus important. Testez les gabarits
sur tous les systmes dont disposent les utilisateurs, y compris les portables.
Procdure concernant la concept ion des f ormes
La procdure suivante permet de crer une solution de formes de niveau professionnel :
1 Dfinissez la fonction envisage pour une forme. Quels besoins doit-elle satisfaire ?
Quel comportement lui permettra de les satisfaire ? Si la forme fait partie dune
collection dans un gabarit, quel comportement doit-elle adopter pour tre
cohrente avec les autres formes ?
2 Dessinez un prototype de la forme et formatez-le selon lapparence souhaite.
Testez ensuite cette forme laide des outils de dessin de Visio. Comment se
comporte-t-elle lorsque vous la dplacez, la dimensionnez, la faites pivoter ou la
regroupez avec dautres formes ? Que se passe-t-il lorsque vous en verrouillez des
parties ? Quels comportements souhaitez-vous modifier ?
3 Identifiez les cellules ShapeSheet

en rapport avec le comportement modifier.


Quelles sont celles qui doivent contenir des formules personnalises et quelles
cellules les formules doivent-elles faire rfrence ?
4 Crez les formules une une et contrlez leur effet sur le comportement de la
forme. Prenez des notes sur papier ou dans des blocs de texte sur le dessin
contenant le prototype. Si vous essayez plusieurs solutions, vous pouvez copier la
forme chaque nouvel essai et conserver ces copies de faon pouvoir revenir
une version antrieure si ncessaire.
DI FFUSI ON DE GABARI TS ET DE MODL ES 261
5 Rdigez une aide sur la forme afin dexpliquer sa fonction aux utilisateurs.
6 Testez la forme en la transmettant des collgues pour savoir si elle rpond
galement leurs attentes.
Lorsque vous savez exactement lapparence que doit avoir la forme et comment elle
doit se comporter, et que vous connaissez les formules ncessaires son
comportement, recrez-la de toutes pices. Ce travail peut sembler inutile, mais cest
la meilleure faon de sassurer que les cellules ShapeSheet ne contiennent aucune
formule obsolte, et que la forme est dessine et formate proprement.
Remarques concernant la dist ribut ion des f ormes
Lorsque vous crez des gabarits et des modles qui seront distribus, tenez compte des
remarques suivantes :
A propos de la rsolution des diffrents systmes daffichage
Si vous concevez ces lments pour le systme disposant de la rsolution la plus
faible et du plus petit nombre de couleurs, il est probable que lapparence des
prsentations et des formes sera meilleure sur des systmes plus volus. En
revanche, lapparence dun gabarit conu pour une rsolution suprieure et un
plus grand nombre de couleurs sera probablement moins bonne sur un systme
moins performant.
A propos des priphriques de sortie que les utilisateurs peuvent utiliser pour
imprimer des formes
Vous devez connatre les possibilits et les limites des priphriques de sortie des
utilisateurs. Testez les formes que vous crez en les imprimant sur le priphrique
de sortie dont ils disposent afin de vous assurer que les traits et les remplissages ont
lapparence souhaite.
A propos de la protection des formes cres par copyright
Les gabarits, les formes de base, les modles et le code source qui accompagnent les
produits Visio sont protgs par les lois sur les droits dauteur : ils appartiennent
Visio Corporation et sont protgs par les lois des Etats-Unis rgissant les droits
dauteur ainsi que par les traits internationaux. Vous ntes pas autoris
distribuer les formes de base ainsi protges fournies avec un produit Visio,
moins que lutilisateur ne dispose dj dune licence pour un produit Visio les
contenant. Il en va de mme pour les formes que vous crez en modifiant ou en
partant des formes de base protges par ces lois.
Vous pouvez toutefois associer un droit dauteur vos propres formes.
Pour associer un droit daut eur vos propres f ormes :
Choisissez Format > Spcial.
Ajoutez les informations de copyright en dernier lieu du processus de
dveloppement de la forme. Une fois que vous avez saisi ces informations dans la
bote de dialogue Spcial, vous ne pouvez plus les modifier.
262 CHAP I TRE 13
Test des f ormes de base
Vous pouvez tester ensemble toutes les formes de base dun gabarit pour voir si elles
sont cohrentes, puis les tester sparment. Aprs avoir effectu les tests suivants,
consacrez quelques minutes laborer un diagramme ou un graphique tel que ceux
qui seront produits avec les formes. Cest la meilleure faon de tester les interactions
entre les formes, leur prcision et leur utilit, et de dcouvrir leurs limites ou leurs
lacunes.
Cont rle de la cohrence des f ormes de base
Assurez-vous quun gabarit contient toutes les formes de base quil est cens contenir,
que les noms et les formats sont comprhensibles et que lordre dapparition des
icnes dans le gabarit est prvisible. Si vous disposez de spcifications crites pour les
formes de base, prenez soin de comparer chaque forme ces spcifications.
Pour contrler la cohrence des formes de base dun gabarit, ouvrez le fichier de
gabarit avec loption Original, puis vrifiez les points suivants.
Contrle de la cohrence des formes de base dun gabarit
Elment vrifier Action
Nombre de formes de
base prvu dans le
gabarit
Vrifiez ce nombre dans les spcifications dont vous disposez
ventuellement. Si des modifications ultrieures sont
apportes au gabarit et que vous soyez amen le tester une
nouvelle fois, vous saurez si des formes de base ont t
ajoutes ou supprimes.
M essages et noms des
formes de base
Vrifiez que l orthographe, la ponctuation, les majuscules, la
grammaire, le contenu et l espacement dans les messages et
les noms des formes de base sont corrects et cohrents avec
ceux des autres formes.
Supprimez les espaces la fin des noms de formes de base
qui se traduirait par une surbrillance plus longue que
ncessaire lors de la slection de l icne. Pour vrifier ce
point, choisissez Edition > Slectionner tout.
Utilisez le mme alignement pour les noms de toutes les
formes de base du gabarit.
I cnes O rganisez les icnes de faon logique, alignez-les de faon
cohrente, et classez-les de gauche droite et de haut en
bas.
Dfinissez une taille correcte. Le paramtre de taille normale
est le plus couramment utilis.
Vrifiez que chaque icne reprsente de manire significative
la forme de base associe. Contrlez que l apparence des
icnes est claire et comparez-les aux formes de base
correspondantes. Pour ce faire, cliquez avec le bouton droit
sur une forme de base et choisissez M odifier l icne dans le
menu contextuel.
DI FFUSI ON DE GABARI TS ET DE MODL ES 263
Cont rle de la f orme de base dans la f ent re de dessin de
cet t e f orme
Pour tester une forme dans la fentre de dessin de la forme de base, ouvrez le fichier
de gabarit avec loption Original. Pour ouvrir la fentre de gabarit dans la fentre de
dessin de forme de base, double-cliquez, dans la fentre de gabarit, sur une icne de
forme de base. Vous pouvez galement cliquer avec le bouton droit sur une forme de
base et choisir Modifier la forme de base dans le menu contextuel. Procdez alors aux
vrifications suivantes.
Test des dif f rent es chelles de page des f ormes de base
Pour chaque modle fourni, un gabarit et une page de dessin sont ouverts, et vous
devez tester chaque forme avec les diffrentes chelles de page quelle est cense
utiliser. Il est galement utile de tester une forme sur une page dont lchelle est trs
loigne de la sienne.
I cnes Les icnes disposant d un graphique personnalis doivent
tre mises jour manuellement. Pour vrifier ce point, cliquez
avec le bouton droit sur une forme de base et choisissez
Proprits des formes de base dans le menu contextuel.
Dans la bote de dialogue Proprits de la forme de base,
l option Gnrer automatiquement une icne partir des
donnes de la forme de la section Comportement doit tre
slectionne.
Contrle dune forme de base
Elment vrifier Vrification
Echelle utilise par la
forme
La forme doit utiliser l chelle qui convient. Pour vrifier ce
point, choisissez Fichier > M ise en page et cliquez sur l onglet
Echelle de dessin.
Style d interaction en 1D
ou en 2D
Choisissez le comportement qui convient la forme. Pour
vrifier ce point, choisissez Format > Comportement.
Exactitude des
informations relatives
la forme de base dans la
bote de dialogue Spcial
Par exemple, vrifiez que les champs Donnes sont remplis
et que la forme est lie une aide spcifique. Pour vrifier ce
point, choisissez Format > Spcial.
Dfinition des options
de protection
appropries
O uvrez la fentre ShapeSheet

d une forme de base ou


choisissez Format > Protection pour vrifier le paramtrage
des options Protection.
Affichage des points de
connexion
Choisissez Affichage > Points de connexion.
Contrle de la cohrence des formes de base dun gabarit (suite)
Elment vrifier Action
264 CHAP I TRE 13
Pour t est er une f orme dans un dessin de mme chelle :
1 Choisissez Fichier > Ouvrir.
2 Dans la zone contenant les noms des fichiers, slectionnez un fichier de modle
contenant un gabarit dont les formes de base doivent tre testes et une page de
dessin utilisant la mme chelle que ces formes de base.
3 Dans la zone Ouvrir, slectionnez Lecture seule et cliquez sur OK.
4 Insrez une forme de base dans la page de dessin afin de crer une occurrence et de
la tester.
5 Vrifiez les lments du tableau suivant.
Contrle dune forme de base dans un dessin de mme chelle
Elment vrifier Vrification
Comportement
gnral des formes
La forme doit tre correctement aligne dans le rectangle de
slection lorsque vous la dplacez.
La forme doit se comporter comme prvu lorsque vous la liez
d autres formes ; par exemple, une forme Lien doit utiliser le type
de collage appropri.
La forme doit se comporter comme prvu lorsque vous
double-cliquez dessus. Pour vrifier ce paramtre, choisissez
Format > Comportement et cliquez sur l onglet Action du
double-clic.
Vous devez pouvoir supprimer la forme.
L apparence de la forme est celle que vous envisagez lorsque vous
l imprimez sur les priphriques de sortie prvus. Par exemple,
certains motifs de remplissage ont une incidence sur les
performances des imprimantes PostScript.
Comportement des
formes vis--vis de
l attraction et du
collage
La forme et le rectangle de slection rpondent au magntisme de
la grille.
L occurrence est attire par les autres formes, et par la grille et les
repres comme prvu.
DI FFUSI ON DE GABARI TS ET DE MODL ES 265
Texte des formes La zone de texte associe la forme se trouve l emplacement
appropri. Le texte que vous y entrez passe la ligne et s aligne
correctement.
La forme et le texte associ se comportent comme prvu lorsque
vous appliquez un style de remplissage.
La forme et le texte associ se comportent comme prvu lorsque
vous redimensionnez la forme verticalement, horizontalement et
proportionnellement. Ce test est particulirement important si
vous avez programm la forme pour un redimensionnement
unique (par exemple, dans une seule direction).
La forme et le texte associ se comportent comme prvu lorsque
vous faites pivoter la forme l aide des commandes Pivoter
gauche et Pivoter droite, et de l outil Rotation.
La forme et le texte associ se comportent comme prvu lorsque
vous inversez les extrmits, et que vous retournez la forme
verticalement et horizontalement.
La forme et le texte associ se comportent comme prvu lorsque
vous dissociez cette forme. Si la forme de base ne constitue pas
un groupe, la commande Dissocier est grise.
Personnalisation
des formes
Si des proprits personnalises sont associes la forme, elles
doivent tre affiches comme prvu. Pour contrler ce point,
choisissez Affichage > Fentres > Proprits personnalises ou
Forme > Proprits personnalises.
Si des actions personnalises sont associes la forme dans un
menu contextuel, elles doivent fonctionner comme prvu. Pour
contrler ce point, cliquez avec le bouton droit sur la forme et
choisissez la commande correspondant une action.
Le message et l aide propre une forme fournissent des
informations utiles sur cette forme.
La bote de dialogue Spcial contient les informations appropries.
Pour contrler ce point, choisissez Format > Spcial.
Contrle dune forme de base dans un dessin de mme chelle (suite)
Elment vrifier Vrification
266 CHAP I TRE 13
Pour t est er une f orme dans une page de dessin dchelle dif f rent e :
1 Crez une page de dessin avec une chelle trs loigne de celle de la forme tester.
Par exemple, si la forme de base a t cre avec une chelle de 1:1, crez une page
de dessin avec une chelle de pouce = 1 pied.
2 Insrez une forme de base dans la page de dessin afin de crer une occurrence et la
tester.
3 Vrifiez les points suivants :
Lorsque vous dplacez la forme, son alignement dans le rectangle de slection est
correct.
La forme et le rectangle de slection rpondent au magntisme de la grille.
La forme et le texte associ se comportent comme prvu lorsque vous
redimensionnez la forme verticalement, horizontalement et
proportionnellement.
La forme et le texte associ se comportent comme prvu lorsque vous faites
pivoter la forme laide des commandes Pivoter gauche et Pivoter droite, et
de loutil Rotation.
Ajout dune aide aux f ormes de base
Vous pouvez fournir une aide en ligne donnant des instructions gnrales sur
lutilisation des formes de base dun gabarit ou sur les subtilits du comportement
dune forme. Ce produit Visio prend en charge WinHelp (fichiers .hlp) et HTML
Help (fichiers .chm). Cette section suppose que vous connaissez les techniques et la
terminologie relatives la cration de fichiers daide en ligne Microsoft Windows.
Pour plus dinformations, reportez-vous la documentation fournie avec le kit de
dveloppement SDK (Microsoft Platform Software Development Kit).
Associat ion dune aide une f orme de base
Vous pouvez associer une aide aux formes dun dessin, quelles quelles soient, mais
cette aide est gnralement associe aux formes de base dun gabarit. Pour afficher
laide associe une forme ou un gabarit, choisissez ? dans le menu contextuel
correspondant.
Visio localise la rubrique daide associe une forme grce au numro de
lidentificateur de contexte (ID) indiqu dans le fichier .hpj utilis pour compiler les
fichiers .hlp, ou le fichier .hhp utilis pour compiler les fichiers .chm. Pour associer
une rubrique daide une forme, vous devez fournir lidentificateur de contexte de
cette rubrique.
DI FFUSI ON DE GABARI TS ET DE MODL ES 267
Pour associer une aide une f orme de base dun gabarit :
1 Ouvrez un gabarit avec loption Original afin de pouvoir modifier les formes de
base quil contient, ou cliquez avec le bouton droit sur la barre de titre de ce
gabarit et choisissez Modifier.
2 Double-cliquez sur une forme de base pour ouvrir la fentre de dessin associe et
slectionnez une forme.
3 Choisissez Format > Spcial.
4 Dans le champ daide, entrez le nom du fichier daide et le mot-cl correspondant
en respectant la syntaxe suivante :
nomdefichier.hlp!#n ou nomdefichier.chm!#n
Nomdefichier.hlp ou nomdefichier.chm correspondent au nom du fichier daide et n
au numro dID dfini pour la rubrique daide associer la forme (par exemple,
Forme.hlp#63 ou Forme.chm#63).
Pour afficher le sommaire du fichier daide, au lieu dentrer le numro dID,
utilisez la syntaxe suivante :
nomdefichier.hlp ou nomdefichier.chm
5 Cliquez sur OK.
Lorsquun utilisateur choisit la commande ?, la rubrique indique apparat :
dans une fentre contextuelle qui nest lie aucun systme daide parent de
WinHelp ;
dans une fentre standard qui fait partie du systme daide principal dHTML
Help.
Lorsquaucune rubrique daide nest associe une forme, la commande ? du menu
correspondant est grise.
REMARQUE : lactivation de la touche F1 affiche toujours laide en ligne de Visio, et non
laide associe une forme.
Pour que Visio puisse localiser le fichier daide sur une forme, vous devez le placez
dans le dossier appropri. Par dfaut, lapplication Visio recherche dabord ce type de
fichier dans le dossier des fichiers daide par dfaut (il sagit gnralement du dossier
\Help). Vous pouvez changer ce dossier par dfaut en modifiant le paramtre du
chemin daccs laide dans la bote de dialogue Chemins d'accs. Pour ce faire,
choisissez Outils > Options, puis cliquez sur longlet Chemins d'accs.
268 CHAP I TRE 13
Test de laide sur les f ormes
Assurez-vous que laide associe la forme et la forme elle-mme sont finalises.
Testez la cohrence et la prcision de laide et de ses liens.
Pour t est er laide sur les f ormes :
1 Cliquez avec le bouton droit sur une forme de base dun gabarit. Vous pouvez
aussi crer une occurrence de la forme et cliquer dessus avec le bouton droit.
Choisissez ? et vrifiez que la rubrique daide correcte apparat.
2 Crez une autre occurrence de la forme, slectionnez-la et cliquez dessus avec le
bouton droit. Choisissez ? dans le menu contextuel et vrifiez que la rubrique
daide correcte apparat.
3 Testez tous les liens pour vous assurer quils donnent accs aux rubriques
appropries.
4 Vrifiez lorthographe, la grammaire, la cohrence et la prcision de chaque
rubrique.
Finalisat ion et t est dun gabarit
Une fois que vous avez cr un gabarit contenant des formes de base, il vous reste
encore quelques tches effectuer pour prparer ce gabarit en vue de sa distribution.
Par exemple, lutilisation des gabarits que vous crez sera dautant plus facile si les
formes de base sont harmonises et si chacune voque la fonction de la forme
correspondante.
Crat ion de raccourcis vers des f ormes de base
Vous pouvez crer des raccourcis vers des formes de base situes dans dautres
gabarits. Pour ce faire, les formes de base doivent tre stockes dans un gabarit
enregistr. Ces raccourcis apparaissent et se comportent exactement comme une
forme de base, la diffrence prs quils font rfrence une forme de base qui peut
tre stocke dans tout autre gabarit. Les raccourcis de formes de base ne contiennent
aucune donne de forme : lorsque vous dplacez ce raccourci sur la page de dessin, la
forme de base dorigine est extraite et utilise pour crer la forme.
DI FFUSI ON DE GABARI TS ET DE MODL ES 269
En crant des raccourcis vers des formes de base dans un gabarit, vous bnficiez des
avantages suivants :
Vous rduisez la taille des gabarits en faisant rfrence aux formes de base (elles ne
sont plus dupliques).
Vous simplifiez la maintenance des formes de base en conservant les donnes des
formes dans un mme emplacement.
Vous disposez de plusieurs raccourcis vers une mme forme de base et des
dfinitions des actions de chaque raccourci (appeles actions de dplacement)
ayant une incidence sur lapparence de la forme lorsquelle est dplace sur la page.
Pour crer un raccourci vers une f orme de base, ef f ect uez lune des
oprat ions suivant es :
Cliquez avec le bouton droit sur une forme de base et choisissez Crer un raccourci
dans le menu contextuel. Un raccourci apparat dans le mme gabarit que cette
forme de base ; faites-le alors glisser vers un autre gabarit. Un gabarit doit tre
modifiable pour que vous puissiez crer un raccourci vers une forme de base situe
dans le mme gabarit.
Cliquez avec le bouton droit sur une forme de base, puis choisissez Copier. Cliquez
avec le bouton droit sur le gabarit dans lequel vous souhaitez insrer le raccourci,
puis choisissez Coller le raccourci.
Faites glisser une forme de base vers un autre gabarit tout en maintenant les
touches Ctrl+Maj enfonces. Au lieu de crer une copie de la forme de base dans le
gabarit cible, Visio gnre un raccourci vers cette forme.
Pour df inir des act ions de dplacement pour un raccourci vers une f orme
de base :
1 Cliquez avec le bouton droit sur un raccourci de forme de base et choisissez
Proprits de raccourci de forme de base.
2 Dans les champs Actions au dplacement de la bote de dialogue des raccourcis de
forme de base, saisissez tout nom de cellule gal une valeur ou une formule
valide que vous souhaitez appliquer loccurrence de la forme de base. Par
exemple, pour appliquer la couleur de remplissage rouge lorsque vous linsrez
dans une page de dessin, saisissez lexpression suivante :
Vous pouvez sparer tout nombre de valeur de cellule par un point virgule. Par
exemple :
Pemp1PemP1ah = 2
Pemp1PemP1ah = 2 + 3 veIomaf = 1
270 CHAP I TRE 13
Net t oyage des f ormes de base dans un gabarit
Vous pouvez modifier le nom et licne des formes de base pour en faciliter
lidentification. Vous pouvez galement ajouter un message et le faire apparatre dans
la barre dtat de Visio pour quil explique la fonction principale de la forme de base.
Par dfaut, le nom dune forme de base est un identificateur attribu par Visio et son
icne, une reprsentation miniature de la forme. Lorsque vous modifiez une nouvelle
forme de base, sauf indication contraire, licne est mise jour en mme temps que
vous dessinez la forme correspondante.
Pour faciliter lidentification dune
forme de base, vous pouvez
associer une image personnalise
licne.
A Icne de la forme de base Fentre
B Forme Fentre telle quelle apparat dans la fentre de dessin
Pour df inir un nom et un message pour une f orme de base :
1 Ouvrez un gabarit avec loption Original, ou cliquez avec le bouton droit dans la
barre de titre dun gabarit et choisissez Modifier.
2 Dans la fentre de gabarit, cliquez avec le bouton droit sur une forme de base et
choisissez Proprits des formes de base dans le menu contextuel.
3 Dans le champ Nom, saisissez le nom de la forme de base. Pour changer
lalignement du nom de la forme de base sous licne, slectionnez une option
Aligner.
4 Dans le champ Message daide, saisissez le texte qui doit apparatre dans la barre
dtat et dans linfo-bulle lorsque lutilisateur place le pointeur de la souris sur
licne.
5 Dans la zone Taille de l'icne, slectionnez une taille.
Pour crer une icne de f orme de base personnalise :
1 Dans la fentre de gabarit, cliquez avec le bouton droit sur une forme de base et
choisissez Modifier l'icne.
2 Modifiez licne ou crez un dessin dans la fentre de modification dicnes
laide des outils de dessin.
Pour plus dinformations sur lutilisation des outils de dessin dans la fentre de
modification dicnes, effectuez une recherche laide des mots fentre de
modification dicnes dans laide en ligne fournie avec Visio.
3 Lorsque vous avez termin, fermez la fentre de modification dicnes.
4 Pour viter toute modification accidentelle dune icne personnalise, cliquez avec
le bouton droit sur la forme de base, puis choisissez Proprits des formes de base.
Assurez-vous que la case Gnrer automatiquement une icne partir des donnes
de la forme nest pas coche.
A B
DI FFUSI ON DE GABARI TS ET DE MODL ES 271
Fentre de modification dicnes
A Cliquez sur ce bouton avec le bouton gauche pour appliquer cette couleur.
B Cliquez sur ce bouton avec le bouton droit pour appliquer cette couleur.
C Palette de couleurs
D Outils ddition
E Couleur darrire-plan du gabarit
F Fentre de modification dicnes
Net t oyage dun f ichier de gabarit
Avant denregistrer un gabarit termin, effectuez les oprations suivantes pour
liminer les donnes superflues et amliorer les performances :
Agencez les icnes dans les fentres de gabarit de sorte quelles apparaissent
lcran, louverture du fichier, classes de gauche droite et de haut en bas.
Saisissez des informations rcapitulatives sur le fichier de gabarit. Pour ce faire,
activez la fentre de gabarit, puis choisissez Fichier > Proprits.
Pour rduire la taille du fichier de gabarit, assurez-vous quil contient uniquement
la page de dessin requise et que celle-ci ne contient aucune forme.
Supprimez de la page de dessin les styles non utiliss par les formes de base du
gabarit. Un fichier de gabarit ne doit contenir que des formes de base et les styles
associs.
Vrifiez que la dfinition des styles du gabarit correspond celle des styles de
mmes noms dans les modles donnant accs au gabarit. Pour obtenir des
informations sur lutilisation des styles, reportez-vous au chapitre 10, Gestion
des styles, des formats et des couleurs .
Enregistrez le fichier de gabarit laide de la commande Enregistrer sous et vrifiez
que loption Espace de travail de la bote de dialogue est dslectionne. La liste des
espaces de travail dun gabarit doit tre vide.
A
B
C
D
E
F
272 CHAP I TRE 13
Test des gabarit s
Pour tester les gabarits, vous devez passer en revue les informations de la bote de
dialogue Ouvrir un fichier et analyser le gabarit ouvert avec les options Original,
Copie et Lecture seule.
CONSEIL : pour protger le gabarit dorigine, faites-en une copie contenant les formes
tester, puis procdez au test dans cette copie. Entrez ensuite les modifications dans
loriginal et faites-en une copie pour procder de nouveaux tests.
Pour t est er les inf ormat ions de la bot e de dialogue Ouvrir un f ichier :
1 Choisissez Fichier > Ouvrir.
2 Dans la zone contenant les noms des fichiers, slectionnez un fichier de gabarit.
3 Vrifiez les points suivants :
Loption Ouvrir par dfaut est paramtre sur Lecture seule.
Un titre et une description apparaissent dans la zone Description. Dans le cas
contraire, pensez les entrer ultrieurement dans le fichier dorigine via
Fichier > Proprits.
Pour t est er la version dorigine dun gabarit :
1 Ouvrez un fichier de gabarit avec loption Original.
2 Vrifiez les points suivants :
Le nom du fichier est correctement affich dans la barre de titre louverture du
fichier. Par exemple, ce nom doit apparatre sous la forme : Formes de base.vss.
(Si la page de dessin est ouverte, .vss napparat pas.)
La fentre de gabarit occupe le quart gauche de lcran.
Les informations de proprit relatives au fichier sont remplies. Pour contrler
ce point, choisissez Fichier > Proprits et vrifiez lorthographe, la grammaire,
le contenu, lespacement, lutilisation des majuscules et la ponctuation.
Pour t est er la copie dun gabarit :
1 Ouvrez un fichier de gabarit avec loption Copie.
2 Vrifiez les points suivants :
Le fichier est ouvert sous un nom gnrique tel que Gabarit1.
Aucune information de proprit ne doit apparatre, sauf dans le champ Auteur
qui doit afficher le nom dutilisateur dfini dans la bote de dialogue Options
(accessible via le menu Outils) ou lors de linstallation de Visio.
DI FFUSI ON DE GABARI TS ET DE MODL ES 273
Pour t est er la version en lect ure seule dun gabarit :
1 Fermez tous les fichiers et ouvrez le fichier de gabarit avec loption Lecture seule.
2 Vrifiez les points suivants :
Le nom de fichier apparat entre accolades dans la barre de titre.
Dans le menu Fichier, la commande Enregistrer est grise.
Dans le menu Edition, les commandes Couper, Effacer, Coller et Dupliquer sont
grises.
Dans le menu Forme de base, toutes les commandes sont grises.
Finalisat ion et t est dun modle
Avant denregistrer un modle, vrifiez les points suivants :
La liste des espaces de travail ne doit contenir que les fichiers ouvrir.
Toutes les fentres doivent tre positionnes correctement.
Toute fentre que vous souhaitez rduire doit tre mise en icne.
Pour crer un espace de travail pour un modle, cochez la case Espace de travail dans
la bote de dialogue Enregistrer le fichier sous et enregistrez le fichier de modle.
Ensuite, moins que vous nayez dslectionn la case Espace de travail, Visio met
jour la liste des espaces de travail chaque fois que vous enregistrez le fichier dorigine
(ajout des fichiers ouverts et suppression de ceux ferms).
Net t oyage dun modle
Pour optimiser lefficacit dun modle, supprimez les donnes superflues des fentres
et de lespace de travail qui lui sont associs, et ajoutez des informations de rsum
pour le modle. Commencez par ouvrir un modle avec loption Original.
Pour supprimer les f ormes de base inut iles du gabarit de document du
modle :
1 Activez la fentre de dessin et choisissez Fentre > Afficher le gabarit de document.
2 Ne supprimez que les occurrences qui ne figurent dans aucun dessin du fichier de
dessin.
274 CHAP I TRE 13
Pour vrif ier que la t aille des f ent res et des gabarit s apparat
correct ement sur dif f rent s syst mes :
1 Ouvrez un modle sur un systme dont la rsolution daffichage correspond celle
que les utilisateurs sont susceptibles dutiliser.
2 Choisissez Fentre > Mosaque pour positionner les fentres correctement.
3 Prenez soin douvrir le modle sur des systmes de rsolution diffrents pour
vrifier que la position des fentres est correcte.
Pour ent rer des inf ormat ions rcapit ulat ives pour un modle :
Choisissez Fichier > Proprits et cliquez sur longlet Rsum.
Test dun modle
Pour tester un modle, vous devez contrler les informations le concernant qui sont
affiches dans la bote de dialogue Ouvrir un fichier, puis louvrir avec les options
Original, Copie ou Lecture seule pour voir comment il se comporte.
Si vous crez un modle en enregistrant un fichier Visio existant en tant que nouveau
fichier de modle (.vst), il risque dhriter dune liste des espaces de travail non
pertinente. Avant de transmettre un modle aux utilisateurs, prenez soin de le tester
pour vous assurer que la liste des espaces de travail associe ouvre les fentres et les
fichiers adquats.
CONSEIL : pour protger le modle dorigine, faites-en une copie contenant les formes
tester, puis procdez au test dans cette copie. Entrez ensuite les modifications dans
loriginal et faites-en une copie pour procder de nouveaux tests.
Pour t est er les inf ormat ions de la bot e de dialogue Ouvrir un f ichier :
1 Choisissez Fichier > Ouvrir.
2 Recherchez le fichier de modle tester et slectionnez-le.
3 Dans la zone Description, vrifiez quun titre et quune description apparaissent.
Titre : Description doit apparatre dans la zone Description. Dans le cas contraire,
pensez les entrer ultrieurement dans le fichier dorigine par le biais de la
commande Fichier > Proprits.
DI FFUSI ON DE GABARI TS ET DE MODL ES 275
Pour t est er la version dorigine dun modle :
1 Ouvrez le fichier de modle avec loption Original.
2 Vrifiez que le modle est ouvert correctement.
Le nom du fichier doit tre correctement affich dans la barre de titre
louverture du fichier. Par exemple, si le fichier de modle porte le nom
Organigramme.vst, le nom qui apparat dans la barre de titre doit galement tre
Organigramme.vst.
Tous les fichiers de gabarit (.vss) associs au modle doivent tre ouverts en
lecture seule, moins quil ne doivent tre ouverts en tant que fichiers dorigine.
La fentre de la page de dessin doit tre ouverte en vue pleine page, moins que
vous nactiviez expressment une autre option. (La vue pleine page est loption
optimale pour la plupart des crans.)
La position des fentres de gabarit et de dessin doit tre correcte. Choisissez
Fentre > Mosaque pour contrler les positions de ces fentres, moins que
vous ne les ayez dj repositionnes pendant la session de travail en cours.
Le modle doit contenir le nombre de pages adquat. Contrlez les onglets Page
au bas de la page de dessin. Les modles ne doivent contenir quune seule page
moins que des pages supplmentaires naient t cres intentionnellement.
Le contenu de chaque page (y compris larrire-plan) doit tre correct.
Aucun lment ne doit se trouver par erreur dans la zone bleue qui entoure la
page de dessin. Pour contrler ce point, appliquez un zoom de 5 % chaque
page de dessin. Pour vrifier que toutes les formes sont visibles, choisissez
Edition > Slectionner tout.
3 Vrifiez que les paramtres du modle sont corrects.
Lchelle de chaque page doit tre compatible avec les formes destines tre
utilises avec le modle. Pour contrler ce point, choisissez Fichier > Mise en
page et cliquez sur longlet Proprits de la page ; effectuez cette opration pour
chaque page.
La taille de la page doit correspondre lorientation de page utilise pour
limpression. A moins que vous ne souhaitiez que les pages soient juxtaposes
limpression, les paramtres suivants doivent tre utiliss : si la hauteur de la
page est suprieure sa largeur, lorientation portrait doit tre utilise. Dans le
cas contraire, utilisez lorientation paysage.
Le gabarit de document ne doit contenir aucune forme de base, moins que
vous nayez cr un formulaire sur la page de dessin du modle. Dans ce cas,
aucune autre forme de base ne doit apparatre. Pour contrler ce point,
choisissez Fentre > Afficher le gabarit de document.
276 CHAP I TRE 13
Les informations de proprit du fichier doivent tre remplies. Pour contrler
ce point, choisissez Fichier > Proprits et vrifiez lorthographe, la grammaire,
le contenu, lespacement, lutilisation des majuscules et la ponctuation.
Les paramtres de modle des diffrentes pages doivent tre corrects. Pour
contrler ce point, dans le menu Outils, choisissez les commandes Options,
Magntisme et collage, et Rgles et grille. Choisissez Fichier > Mise en page et
cliquez sur les onglets Taille de la page, Echelle de dessin et Proprits de la page.
Vrifiez les listes de styles dans les barres doutils Format.
Le paramtrage des options daffichage du modle doit tre correct : rgles,
grille, repres, points de connexion, barre doutils et barre dtat.
Vrifiez que la palette de couleurs du modle correspond celle de tous les
gabarits ouverts avec ce modle.
Pour t est er la copie dun modle :
1 Ouvrez un fichier de modle avec loption Copie.
2 Vrifiez que le nom de la page de dessin est sous la forme Dessin1:Page-1
louverture du fichier.
3 Vrifiez que lapparence de la page de dessin et des pages que vous avez ajoutes
correspond vos attentes.
4 Tous les fichiers de gabarit (.vss) doivent souvrir en lecture seule.
5 Choisissez Fichier > Proprits et vrifiez quaucune information napparat dans
les proprits de fichier, sauf dans le champ Auteur qui affiche le nom de
lutilisateur dfini via Outils > Options ou lors de linstallation de Visio.
Pour t est er un modle en lect ure seule :
1 Ouvrez un fichier de modle avec loption Lecture seule.
2 Vrifiez que le nom de fichier qui apparat dans la barre de titre de la fentre de
dessin est plac entre accolades et commence par le nom du modle.
3 Dans le menu Fichier, vrifiez que la commande Enregistrer est grise.
DI FFUSI ON DE GABARI TS ET DE MODL ES 277
Inst allat ion des gabarit s et des modles
Pour que Visio puisse trouver vos fichiers de gabarit et de modle, ainsi que les
programmes complmentaires quils utilisent, placez-les dans le dossier \Solutions.
Vous pouvez ajouter vos fichiers ce dossier pour permettre aux utilisateurs de
visualiser vos fichiers de modle et de gabarit lorsquils choisissent Fichier >
Nouveau > Choisir le type de dessin ou Fichier > Ouvrir un gabarit > Ouvrir un
gabarit. Ces fichiers sont galement visibles lorsque lutilisateur lance Microsoft


Visio

2000 et quil choisit Crer un dessin > Choisir le type de dessin dans la bote de
dialogue Bienvenue dans Visio 2000.
Si vous souhaitez installer vos fichiers de gabarit et de modle un autre
emplacement, vous pouvez redfinir le dossier par dfaut dans lequel Visio recherche
les fichiers. Pour ce faire, choisissez Outils > Options et cliquez sur longlet Chemins
d'accs. Dans la bote de dialogue Chemins d'accs, vous pouvez entrer un chemin
daccs par dfaut.
Dplacement des f ichiers de modle
Les noms des diffrents fichiers de gabarit et de dessin ouverts avec un modle sont
rpertoris dans la liste des espaces de travail du modle avec chemin daccs et nom
complets. Des problmes peuvent survenir lorsque des fichiers sont dplacs sur
dautres machines dont les lecteurs locaux ou de rseau ne sont pas configurs de la
mme faon. Pour prvenir en partie ces problmes, Visio procde aux vrifications
suivantes :
1 Lorsquun fichier de la liste des espaces de travail est sur le point dtre ouvert,
Visio commence par examiner le chemin daccs du fichier enregistr.
2 Si le chemin est exactement le mme que celui enregistr pour le fichier qui
contient la liste, Visio considre que ces fichiers se trouvent dans le mme dossier.
3 Visio cherche ce fichier dans le dossier en cours du fichier despace de travail.
Lorsque vous dplacez des fichiers, tant que vous copiez les gabarits et les modles
dans le mme dossier, Visio parvient localiser et ouvrir tous les fichiers de la liste
des espaces de travail.
Prot ect ion des gabarit s et des modles
Louverture en lecture seule est la meilleure faon dviter toute modification
accidentelle des gabarits et des modles. Aucune modification ne peut en effet tre
enregistre dans un fichier dans cet tat. Lorsque vous crez un modle, ouvrez en
lecture seule les fichiers de gabarit inclure avant denregistrer ce modle. Visio ouvre
ensuite automatiquement ces gabarits en lecture seule lorsquun utilisateur ouvre le
modle.
278 CHAP I TRE 13
Lorsque vous utilisez la commande Enregistrer ou Enregistrer sous, vous pouvez
activer loption Lecture seule pour faire bnficier un fichier Visio de la protection en
lecture seule de Windows. Lorsque vous procdez ainsi, les utilisateurs ne peuvent pas
ouvrir le fichier dorigine, mais seulement une copie.
Vous pouvez aussi protger un document par le biais de la commande Protger le
document. Cette commande empche lutilisateur de modifier les pages
darrire-plan dun modle, les formes de base dun gabarit, les formes dun dessin et
les styles du modle. Si vous entrez un mot de passe, les utilisateurs doivent le saisir
pour pouvoir modifier les lments concerns.
Pour protger un document, choisissez Affichage > Fentres > Drawing Explorer,
puis cliquez avec le bouton droit sur le nom de ce document. Vous pouvez alors
slectionner Protger le document dans le menu contextuel.
Sommaire
14
Aut omat ion et
le modle dobjet de Visio
Automation est le programme qui permet dintgrer les fonctionnalits du
programme Microsoft

Visio

ou dutiliser le moteur Visio en tant que moteur


graphique de votre propre application. Avec Automation, vous pouvez utiliser le
moteur Visio pour crer ou mettre jour des dessins en fonction de donnes
provenant dune source externe, pour lire des dessins et en extraire des donnes, ou
simplement pour intgrer le comportement dun dessin dans une macro crite en
Microsoft

Visual Basic

pour Applications (VBA).


Ce chapitre dcrit les objets proposs par Visio via Automation et explique comment
y accder depuis un autre programme. Il aborde brivement la syntaxe permettant
dutiliser des objets, des proprits et des mthodes Visio dans VBA, et prsente des
exemples de code.
Pour plus dinformations sur la gestion des vnements dans votre programme,
reportez-vous au chapitre 21, Gestion des vnements dans Visio .
Pour plus dinformations sur la cration dun programme externe en Microsoft


Visual Basic

, reportez-vous au chapitre 26, Programmation de Visio


avec Microsoft Visual Basic .Pour plus dinformations comparables sur la syntaxe en
C++, reportez-vous au chapitre 27, Programmation de Visio avec C++ .
Prsentation dAutomation.................................................................................... 280
Modle dobjet de Visio......................................................................................... 280
Rcupration et libration dobjets Visio ............................................................. 283
Utilisation des proprits et des mthodes ......................................................... 289
280 CHAP I TRE 14
Prsent at ion dAut omat ion
Automation permet un programme crit en VBA (Microsoft Basic pour
Applications), Microsoft Visual Basic, C/C++, ou en tout autre langage de
programmation prenant en charge Automation, dintgrer les fonctionnalits de Visio
en utilisant simplement ses objets.
Les relations unissant les objets entre eux dans une application, ainsi que les
vnements, les mthodes (comportements) et les proprits (donnes) de chaque
objet sont reprsents par la hirarchie dobjets ou le modle dobjet du programme. La
plupart des objets du modle dobjet de Visio correspondent des lments visibles et
manipulables dans Visio. Par exemple, lobjet Shape reprsente une forme dans un
dessin.
Avec Automation, lapplication qui fournit les objets (telle que Visio, parfois appele
application fournisseur ou serveur dAutomation) permet aux autres applications
daccder ces objets, et fournit les proprits et les mthodes permettant de les
contrler, ce qui est dcrit par lexpression mise disposition des objets.
Lapplication qui utilise les objets (telle que votre programme, parfois dsign par le
terme application de contrle ou client dAutomation) cre des occurrences de ces
objets, puis dfinit leurs proprits ou appelle les mthodes associes pour pouvoir
utiliser ces objets.
Linteraction entre lapplication fournisseur et lapplication de contrle sopre par des
services COM (Component Object Model), installs lors de linstallation de toute
version de Microsoft

Windows

95 ou ultrieure.
Tous les produits Microsoft

Visio

2000 comprennent VBA ; vous navez donc pas


besoin dutiliser un autre environnement de dveloppement pour crire vos
programmes. Vous pouvez nanmoins crire des programmes qui contrlent Visio
dans tout autre langage prenant en charge Automation en tant que contrleur. Les
exemples prsents dans cet ouvrage sont rdigs en VBA, mais leurs principes sont
applicables tout langage de programmation.
Modle dobjet de Visio
Le modle dobjet de Visio reprsente les objets, les proprits, les mthodes et les
vnements proposs par le moteur Visio via Automation ; surtout, il dcrit les
relations unissant ces objets.
AUTOMATI ON ET L E MODL E D OBJ ET DE VI SI O 281
Modle dobjet de Microsoft

Visio

Cell
Cell
Row
Row
Section
Section
Cellule
Application
ActiveWindow
ActivePage
ActiveDocument
ThisDocument
UIObject
UIObject
Document
Documents
Window
Windows
VBE
StatusBar
StatusBars
ToolbarSet
ToolbarSets
AccelTable
AccelTables
MenuSet
MenuSets
VBProject
Color
Colors
Font
Fonts
Style
Styles
Page
Pages
Selection
Master
Page
Document
StatusBarItem
StatusBarItems
Toolbar
Toolbars
AccelItem
AccelItems
Menu
Menus
Shape
Shapes
Layer
Layers
OLEObject
OLEObjects
Connect
Connects
ToolbarItem
ToolbarItems
MenuItem
MenuItems
Path
Paths
Characters
Hyperlink
Hyperlinks
Connect
Connects
Shape. . .
Shapes
MenuItem
MenuItems
Global
Curve
Section
AddOn
AddOns
Ligne
1
6
5 Event
EventList
4
4
3
2
1 Lobjet ThisDocument est une copie
dun objet Document, disponible
uniquement lorsque vous utilisez
Microsoft Visual Basic pour
Applications.
2 Si lobjet Shape reprsente un
groupe, il comporte galement une
collection Shapes.
3 Si lobjet MenuItem, ToolBarItem
ou StatusBarItem reprsente un
menu hirarchique, il comporte
galement la collection
MenuItems, ToolBarItems ou
StatusBarItems correspondante.
4 Un objet UIObject peut reprsenter
des menus et des acclrateurs,
ou des barres doutils et des barres
dtat. Pour plus dinformations,
consultez le chapitre 22,
Personnalisation de linterface
utilisateur Visio du manuel
Developing Visio Solutions.
5 De nombreux objets Visio
possdent une collection EventList.
Pour plus dinformations, consultez
laide en ligne Visio Rfrence
Automation.
6 Lobjet global Visio nest disponible
que lorsque vous utilisez Visual
Basic pour Applications.
Reprsente un mode daccs
plus direct un objet considr
comme une proprit de lobjet
global Visio.
Object
Collection Occurrence
dun objet
Explications
MasterShortcut
MasterShortcuts
Master
Masters
Shape
Shapes
Layer
Layers
OLEObject
OLEObjects
Connect
Connects
Shape
Shapes
2
ToolbarItem
ToolbarItems
3
StatusBarItem
StatusBarItems
3
StatusBars
ToolbarSets
AccelTables
MenuSets
StatusBarItems
Toolbars
AccelItems
Menus
AddOns
EventList
Documents
Windows
Colors
Fonts
Styles
Pages
Shapes
Layers
OLEObjects
Connects
ToolbarItems
MenuItems
Paths
Hyperlinks
Connects
Shapes
MenuItems
MasterShortcuts
Masters
Shapes
Layers
OLEObjects
Connects
Shapes
ToolbarItems
StatusBarItems
Global
Collection
282 CHAP I TRE 14
La plupart des objets du modle correspondent des lments visibles et
manipulables dans Visio. Par exemple, lobjet Shape reprsente un lment dune
page de dessin Visio slectionnable avec loutil Pointeur, savoir une forme, un
groupe, un repre ou un objet issu dune autre application, et li, incorpor ou
import dans un dessin Visio.
Les objets Visio rsident dans une copie de Visio (un programme VBA est excut
dans une copie de Visio, puis accde aux objets dont il a besoin). Un programme
externe est excut de faon autonome par rapport Visio ; il lance donc lapplication
Visio ou accde une session en cours. Il accde ensuite aux objets Visio dont il a
besoin.
Certains objets reprsentent des collections dautres objets. Une collection contient un
nombre variable dobjets dun type prcis. Par exemple, lobjet Document reprsente
un document ouvert dans une copie de Visio ; la collection Documents reprsente
tous les documents ouverts dans cette copie. Pour plus dinformations sur les
collections, reportez-vous la section Rfrence un objet dune collection ,
page 285.
De nombreux objets UI Visio
correspondent des lments
visibles sur la page de dessin de
linterface utilisateur.
A Objet global/Application
B Objets Document
C Objet Page
D Objet Master
E Objet Selection
F Objet Shape
G Objets Window
B
C
D
E
F
G
A
AUTOMATI ON ET L E MODL E D OBJ ET DE VI SI O 283
Lutilisation dun objet Visio se fait en deux tapes : vous rcuprez une rfrence
lobjet, puis vous utilisez les proprits et les mthodes de ce dernier pour effectuer
des oprations. Rcuprer une rfrence un objet consiste gnralement lire une
proprit dun objet situ plus haut dans le modle dobjet de Visio. La plupart des
objets sont utiliss pour accder dautres objets. Par exemple, pour rcuprer une
rfrence un objet Shape, vous devez rcuprer des rfrences aux objets situs plus
haut dans le modle dobjet ( la page qui contient la forme et au document qui
contient la page, par exemple).
Pour obtenir la liste rcapitulative des objets, des proprits, des mthodes et des
vnements Visio, reportez-vous lannexe A, Proprits, mthodes et vnements
classs par objet .
Rcuprat ion et librat ion dobjet s Visio
Pour rcuprer un objet, il faut dclarer une variable objet, effectuer une recherche
dans le modle dobjet pour tablir une rfrence cet objet que vous souhaitez
contrler, puis attribuer la rfrence la variable objet. Vous pouvez ensuite dfinir
les valeurs des proprits de cet objet ou utiliser des mthodes permettant de
contrler lobjet.
Dclarat ion de variables objet s
Une variable stockant une rfrence un objet Visio doit tre dclare avec un type
dobjet Visio, comme Visio.Page ou Visio.Document, dfini dans la bibliothque de
types de Visio. Une fois que vous avez rcupr lobjet que vous souhaitez contrler,
la dclaration Set vous permet dattribuer la rfrence la variable de lobjet.
Il nest pas toujours ncessaire dattribuer dautres rfrences dobjet des variables,
mais cette opration est en gnral conseille, notamment si le programme fait
rfrence plusieurs fois aux mmes objets. La plupart des programmes comportent au
moins une variable objet stockant, par exemple, une rfrence lobjet Page qui
reprsente la page manipule par le programme. Les objets auxquels vous faites
rfrence dpendent de lutilisation du programme. Il est impossible de stocker la
valeur dune variable objet entre les excutions dun programme. Une rfrence
dobjet quivaut un pointeur vers une adresse mmoire : sa valeur peut diffrer
chaque fois que le programme est excut.
284 CHAP I TRE 14
Une variable peut galement tre dclare avec le type gnrique Object. Cependant,
lutilisation des types dobjet de Visio augmente la rapidit de votre programme et
limine les risques de confusion ou de conflits qui pourraient se produire dans les
noms des objets et des proprits lorsque vous programmez avec dautres applications
et avec Visio. Par exemple, lorsque vous dclarez une variable objet pour une page de
Visio, utilisez la syntaxe suivante :
Vous pourriez liminer Visio et nutiliser que Page, mais les autres applications
utilises peuvent comporter un objet Page. Par exemple, Microsoft

Excel comporte
un objet Cell, comme le moteur Visio, mais ces deux objets sont diffrents et ne sont
pas interchangeables.
Les variables dclares peuvent tre locales, de niveau module ou globales. La porte
adopte dpend de lutilisation de ces variables dans le programme. Pour plus
dinformations sur la dclaration des variables, reportez-vous laide en ligne de
Microsoft Visual Basic.
Accs aux objet s de Visio via les proprit s
La plupart des objets Visio ont des proprits dont la valeur fait rfrence dautres
objets. Vous pouvez utiliser ces proprits pour accder aux objets que vous souhaitez
contrler, par lintermdiaire des diverses couches du modle dobjet.
Prenez lexemple suivant : lobjet que vous souhaitez contrler est lobjet Shape. Vous
accdez tout dabord au modle dobjet via lobjet de niveau suprieur, soit lobjet
Application. La proprit Documents dun objet Application renvoie une
collection Documents. Vous progressez dans le modle dobjet de la manire
suivante :
La proprit Documents dun objet Application renvoie une rfrence la
collection Documents.
La proprit Item dune collection Documents renvoie une rfrence un objet
Document.
La proprit Pages dun objet Document renvoie une rfrence la collection
Pages.
La proprit Item dune collection Pages renvoie une rfrence un objet Page.
La proprit Shapes dun objet Page renvoie une rfrence la collection Shapes.
La proprit Item dune collection Shapes renvoie une rfrence un objet Shape.
Inversement, la plupart des objets ont une proprit faisant rfrence lobjet situ
au-dessus dans la hirarchie, comme la proprit Document dun objet Page, qui fait
rfrence lobjet Document qui contient lobjet Page.
01m page0b As v1s1o.Page
AUTOMATI ON ET L E MODL E D OBJ ET DE VI SI O 285
Rf rence un objet dune collect ion
Une collection est un objet reprsentant un nombre variable dobjets de mme type.
Vous pouvez effectuer des itrations dans une collection pour effectuer la mme
opration sur tous ses objets, ou tablir une rfrence un objet de la collection.
Chaque collection comporte deux proprits permettant de faire rfrence aux objets
de la collection :
La proprit Item renvoie une rfrence un objet dune collection ; il sagit de la
proprit par dfaut de la plupart des collections.
La proprit Count renvoie le nombre dobjets de la collection. Pour plus
dinformations sur la proprit Count, reportez-vous la section Itration dans
une collection , page 286 de ce chapitre.
La proprit Item reoit un argument numrique reprsentant lindice de lobjet,
cest--dire sa position ordinale dans la collection. Le premier lment de la plupart
des collections porte le numro 1. Par exemple, si la proprit Index de lobjet
Document renvoie 5, cela signifie que cet objet Document est le cinquime membre
de sa collection Documents.
Les collections suivantes, toutefois, sont indexes partir de 0, et non de 1 :
AccelTables, StatusBars, AccelItems, StatusBarItems, Colors, ToolbarSets,
MenuSets, Toolbars, Menus, ToolbarItems, MenuItems et Hyperlinks. Si la
proprit Index dun objet de lune de ces collections renvoie le numro 5, cet objet
est alors le sixime membre de sa collection.
Pour rcuprer un objet en indiquant son indice, utilisez par exemple le code suivant
(shpsObj reprsente une collection Shapes) :
Si la page comporte au moins une forme, cette instruction renvoie une rfrence au
premier objet Shape de la collection Shapes. Si la collection est vide, linstruction
provoque une erreur.
Sef app0b = v1s1o.App11caf1oh
Sef docs0b = app0b.0ocumehfs
Sef doc0b = 0ocumehfs.Tfem|1)
Sef pags0b = doc0b.Pages
Sef pag0b = pags0b.Tfem|1)
Sef shps0b = pag0b.Shapes
Sef shp0b = shps0b.Tfem|1)
286 CHAP I TRE 14
CONSEIL : vous pouvez vrifier que la proprit Count dune collection nest pas gale 0
avant dutiliser Item.
Objet Shape et objets connexes
situs plus haut dans le modle
dobjet de Visio
Avec certaines collections (Documents, Pages, Masters, Shapes ou Styles), la
proprit Item peut galement recevoir un argument de chane indiquant le nom de
lobjet, ce qui peut tre plus pratique que de faire rfrence un objet par son indice.
Par exemple, le code suivant rcupre lobjet Master appel 2-D Double dans la
collection Masters.
It rat ion dans une collect ion
La proprit Count dune collection renvoie le nombre dobjets de cette dernire. Si la
proprit Count a la valeur 0, la collection est vide. Par exemple, linstruction
suivante affiche le nombre de documents ouverts dans une copie de Visio :
En gnral, la proprit Count est utilise pour fixer la limite dune boucle ditration.
Remarquez lutilisation de Count dans linstruction For de lexemple ci-dessous. La
boucle For tourne sur la collection Documents, en vrifiant les trois derniers
caractres du nom de fichier de chaque objet Document. Si ces caractres sont vss (ce
qui indique que le document est un gabarit), son nom est ajout une zone de liste
droulante modifiable.
Le code situ dans ce type de boucle ne doit pas changer le nombre dobjets de la
collection (par exemple, en ajoutant ou en supprimant des objets). Sinon, la valeur de
Count change chaque itration de la boucle.
Sef masf0b = masfs0b|"2-0 0oub1e")
Msgox "0uv1 1es documehfs = " & Sf$|0ocumehfs.Couhf)
Sef docs = appv1s1o.0ocumehfs
Io Each doc0b Th docs0b
Tf uCase|P1ghf|doc0b.hame, 3)) = "vss" Theh
Comboox1.AddTfem doc0b.Iu11hame
Ehd Tf
hexf
Pages
Pages
Document
Documents
Shape
Shapes
Application
Pages
Documents
Shapes
AUTOMATI ON ET L E MODL E D OBJ ET DE VI SI O 287
Pour supprimer des objets dune collection laide dune boucle, dcrmentez le
compteur au lieu de lincrmenter. Chaque fois quun lment est supprim de la
collection, Count diminue de 1 et les lments restants changent de position ; cest
pourquoi une boucle incrmentielle risque de sauter des lments. Utilisez la place
la boucle suivante :
Librat ion dun objet
Un objet dun programme est automatiquement libr lorsque lexcution du
programme prend fin ou lorsque toutes les variables objets faisant rfrence cet
objet sont hors de porte. Si une variable objet est locale, cest--dire propre une
procdure, elle est hors de porte ds que lexcution de cette dernire prend fin. Si la
variable objet est globale, elle subsiste tant que le programme est en cours dexcution,
sauf si lobjet est libr explicitement.
La libration dun objet dans un programme est sans incidence sur lobjet
correspondant de la copie de Visio. Par exemple, la libration dun objet Document
ne ferme pas le document Visio correspondant. Ce document reste ouvert, mais le
programme ne peut plus y accder.
Pour librer explicitement un objet, attribuez la valeur Visual Basic Nothing sa
variable objet. Par exemple :
Si vous attribuez la mme rfrence dobjet plusieurs variables, noubliez pas de les
associer toutes Nothing la libration de lobjet.
Ne librez pas un objet avant davoir fini de lutiliser. Une fois lobjet libr, le
programme ne peut plus faire rfrence lobjet correspondant dans la copie de Visio.
Par exemple, si vous librez un objet Document, le programme ne peut plus
manipuler ce document Visio ; il lui est donc impossible de lenregistrer ou de le
fermer, ou encore den extraire des objets.
Cependant, vous devrez peut-tre librer explicitement un objet dans votre
programme si la rfrence dobjet est devenue incorrecte. Par exemple, si lutilisateur
ferme le document Visio ou supprime une forme, les rfrences ces objets
deviennent incorrectes. Une erreur se produit si vous tentez dutiliser une variable
objet contenant une rfrence dobjet non valide.
01m shps0b As v1s1o.Shapes
Io 1 = Acf1vePage.shps0b.Couhf To 1 Sfep -1
shps0b|1).0e1efe
hexf 1
Sef doc0b = hofh1hg
288 CHAP I TRE 14
Ut ilisat ion de rf rences dobjet composes
Vous pouvez concatner des rfrences dobjet, des proprits et des rfrences Visio
dans une mme instruction, comme avec les objets Microsoft Visual Basic pour
Applications (VBA). Cependant, les rfrences simples sont parfois plus efficaces,
mme si elles ncessitent plusieurs lignes de code.
Par exemple, linstruction suivante fait rfrence la premire forme de la troisime
page du premier document ouvert dans une copie de Visio :
Lexcution de cette instruction extrait un seul objet, lobjet Shape attribu shpObj.
Comparez-la la srie dinstructions ci-dessous utilisant des rfrences dobjet
simples :
Lexcution de ces instructions extrait cinq objets : un objet Document, une
collection Pages, un objet Page, une collection Shapes et un objet Shape. Les
rfrences ces objets, attribues des variables, peuvent tre rutilises
ultrieurement, contrairement lexemple prcdent. Si votre programme risque de
devoir accder aux objets intermdiaires, la lecture et la maintenance de votre code
seront facilites si vous les rcuprez de cette manire.
Limit at ion de la port e et de la dure de vie des variables
objet s
Les rfrences dobjet existent indpendamment de llment vers lequel elles
pointent ; cest pourquoi elles peuvent tre rendues incorrectes par des actions de
lutilisateur incontrlables par le programme. Par exemple, si vous avez tabli une
rfrence un objet Shape et si lutilisateur supprime la forme correspondante, la
rfrence, qui existe toujours dans le programme, est incorrecte car elle pointe vers
une forme qui nexiste plus.
Pour viter que des rfrences soient incorrectes, il est conseill de limiter la porte et
la dure de vie des variables objets. Par exemple, lorsque lexcution du programme
reprend, aprs des manipulations effectues par lutilisateur, vous pouvez librer
certains objets et les rcuprer de nouveau pour vrifier quils sont toujours
disponibles et que le programme fait rfrence des objets dans leur tat actuel.
Sef shpob = 0ocumehfs|1).Pages|3).Shapes|1)
Sef doc0b = 0ocumehfs.Tfem|1)
Sef pags0b = doc0b.Pages
Sef pag0b = pags0b.Tfem|3)
Sef shps0b = pag0b.Shapes
Sef shp0b = shps0b.Tfem|1)
AUTOMATI ON ET L E MODL E D OBJ ET DE VI SI O 289
La faon la plus sre de conserver des rfrences dobjet valides est de capturer les
vnements dclenchs par lobjet auquel vous faites rfrence. Par exemple, si vous
avez tabli une rfrence un objet Shape, vous pouvez grer tout vnement qui
peut entraner linvalidation de la variable (par exemple, lvnement
BeforeShapeDelete). Pour plus dinformations sur la gestion des vnements de votre
programme, reportez-vous au chapitre 21, Gestion des vnements dans Visio .
Ut ilisat ion des proprit s et des mt hodes
Une fois que vous avez tabli une rfrence un objet, vous pouvez rcuprer et
dfinir les valeurs de ses proprits, ou utiliser les mthodes qui font que lobjet
excute les actions. Pour les proprits et mthodes qui ont des valeurs ou des
arguments renvoys, vous devez dclarer des variables dans votre programme. Ces
variables peuvent tre des rfrences dobjet, ou peuvent avoir pour valeur une chane
ou un nombre. Par exemple, la valeur de la proprit Text dun objet Shape est une
chane, savoir le texte affich dans la forme correspondante.
Dclarat ion de variables ut ilisables comme valeurs
renvoyes et comme argument s
Lorsque vous dclarez des variables utilisables comme valeurs renvoyes par les
proprits ou les mthodes, dclarez une variable avec un type de donnes explicite ou
avec le type de donnes Variant de Microsoft Visual Basic, et utilisez une instruction
simple pour attribuer cette valeur la variable.
Les mmes rgles sappliquent lorsque vous dclarez des variables pour les utiliser
comme arguments de proprits ou de mthodes : utilisez des variables objets pour les
objets, et le type de donnes Variant ou un type de donnes explicite appropri pour
les autres valeurs.
Pour plus dinformations sur la dclaration des variables objets, reportez-vous la
section Dclaration de variables objets , page 283. Par ailleurs, toutes les variables
de proprit et de mthode sont prsentes dans laide en ligne Automation Reference
fournie avec Visio.
Lect ure et df init ion des proprit s
Les proprits dfinissent souvent laspect dun objet. Par exemple, linstruction
suivante dfinit la proprit Text dun objet Shape :
shp0b.Texf = "ohou a fous !"
290 CHAP I TRE 14
Linstruction suivante lit le texte de la forme :
Certaines proprits reoivent des arguments. Par exemple, la proprit Cells de
lobjet Shape reoit une expression de chane indiquant une cellule particulire de la
forme correspondante. Lorsquune proprit reoit des arguments, entourez-les de
parenthses. Par exemple, linstruction suivante dfinit la formule de la cellule AxeX.
Linstruction suivante lit la formule de la cellule AxeX et la stocke dans strPinX :
La plupart des proprits des objets de Visio sont en lecture/criture, cest--dire que
vous pouvez lire et dfinir leur valeur. Certaines proprits sont en lecture seule ; vous
pouvez les lire, mais il nest pas possible de les redfinir. Par exemple, vous pouvez lire
la proprit Application dun objet pour identifier la copie de Visio le contenant,
mais il est impossible de redfinir la valeur de cette proprit pour transfrer lobjet
vers une autre copie.
Quelques proprits sont en criture seule, cest--dire que leur valeur peut
uniquement tre dfinie. Ces proprits grent gnralement un cas particulier pour
des proprits quivalentes en lecture/criture. Par exemple, vous pouvez modifier la
formule dune cellule en dfinissant sa proprit Formula, sauf si la formule est
protge par la fonction PROTECTION. Dans ce cas, vous devez utiliser la proprit
FormulaForce pour redfinir la formule. Cependant, il est impossible de rcuprer la
formule dune cellule en utilisant FormulaForce ; vous devez employer Formula,
mme si la formule est protge.
Pour plus dinformations sur les proprits (en lecture/criture, en lecture seule et en
criture seule) et les mthodes, reportez-vous laide en ligne Developer Reference
(accessible via ? (Aide) > Rfrence du dveloppeur) fournie avec Visio.
Ut ilisat ion de la proprit par df aut dun objet
La plupart des objets comportent une proprit par dfaut qui est utilise si vous ne
prcisez pas de proprit lorsque vous faites rfrence lobjet. Par exemple, la
proprit par dfaut de lobjet Document est Name, cest pourquoi les deux
instructions suivantes renvoient la mme valeur :
shpTexf = shp0b.Texf
shp0b.Ce11s|"AxeX").Iomu1a = "4,2S po."
sfP1hX = shp0b.Ce11s|"AxeX").Iomu1a
dochame = 0ocumehfs|S).hame fomaf 1ohg
dochame = 0ocumehfs|S) fomaf couf
AUTOMATI ON ET L E MODL E D OBJ ET DE VI SI O 291
La proprit par dfaut de la plupart des collections est Item; vous pouvez ainsi
utiliser linstruction suivante pour accder un objet dune collection :
Pour dfinir la proprit par dfaut dun objet Visio, recherchez cet objet dans laide
en ligne Automation Reference fournie avec Visio. La proprit par dfaut dun objet
Visio est galement repre par un point bleu dans lexplorateur dobjets. Pour plus
dinformations sur cet explorateur, reportez-vous la section Utilisation de
lexplorateur dobjets , page 303.
Ut ilisat ion de mt hodes
Les mthodes correspondent souvent aux commandes de Visio. Par exemple, lobjet
Shape comporte une mthode Copy qui quivaut slectionner une forme et
choisir la commande Copier dans le menu Edition de Visio. Les autres mthodes
correspondent dautres actions. Par exemple, lobjet Fentre comporte une mthode
Activate qui permet dactiver la fentre correspondante, ce qui revient slectionner
cette dernire laide de la souris.
La syntaxe permettant dutiliser une mthode est comparable celle employe pour
dfinir une proprit. Si une mthode cre un objet, comme lobjet Page, elle renvoie
une rfrence lobjet cr, comme dans lexemple suivant. En gnral, les mthodes
qui ne crent pas dobjets ne renvoient pas de valeur.
Sef shp0b = shps0b.Tfem|1) fomaf 1ohg
Sef shp0b = shps0b|1) fomaf couf
01m pag0b As v1s1o.Page
Sef pag0b = pags0b.Add
Sommaire
15
Programmat ion dans Visio
avec Microsof t VBA
Chaque langage de programmation qui prend en charge Automation peut servir
crire des programmes qui permettent daccder des objets Microsoft

Visio

,
rcuprer et paramtrer des proprits, appeler des mthodes et recevoir des
vnements. Les produits Visio fournissent un environnement de dveloppement
intgr standard idal pour la mise au point de projets Microsoft

Visual Basic

pour
Applications (VBA).
Si votre solution utilise Automation pour grer les formes et les dessins, lire des
donnes de sources externes ou en crire (comme une base de donnes) ou agir en
interaction avec dautres applications, vous pouvez crire du code VBA dans
lapplication Visio pour accomplir ces tches. Lenvironnement de dveloppement
intgr VBA Visio est compatible avec lenvironnement de dveloppement intgr
dans toutes les applications actives par VBA, par exemple, Microsoft

Office. Si vous
avez utilis VBA dans lune de ces applications, lenvironnement Visio vous semblera
familier.
Ce chapitre est un bref aperu de certaines tches communes qui utilisent VBA dans
Visio. Pour obtenir des dtails complets sur lutilisation de lenvironnement de
dveloppement VBA et sur lcriture du code VBA, reportez-vous laide en ligne
livre avec VBA.
Utilisation de lEditeur Visual Basic...................................................................... 294
Cration dun projet VBA....................................................................................... 298
Utilisation de la bibliothque de types Visio ....................................................... 303
Utilisation des objets global et ThisDocument.................................................... 306
Excution du code VBA depuis Visio.................................................................... 310
Gestion des erreurs................................................................................................ 313
Gestion dun projet VBA........................................................................................ 315
294 CHAP I TRE 15
Ut ilisat ion de lEdit eur Visual Basic
Pour crer un programme Microsoft Visual Basic pour Applications (VBA), vous
devez crer un projet VBA laide de lEditeur Visual Basic. Chaque document ou
fichier Visio contient un projet auquel vous pouvez ajouter des modules et des
formulaires, en fonction des besoins de votre solution. Au minimum, chaque projet
contient un module de classe ThisDocument. Ce module de classe reprsente les
proprits, mthodes et vnements dun document associ votre projet Visio VBA.
Editeur Visual Basic :
lenvironnement VBA
A Lexplorateur de projet affiche la listes de projets et des lments de projet contenus dans les
documents Visio.
B La fentre Proprits affiche la liste des proprits de llment slectionn.
C Fentre de code
D Lespace de travail de programmation affiche tous les modules ouverts, les modules de classe et
les formulaires utilisateur au cours de la cration. Le programme est cr dans cette zone.
E La barre de menus affiche les commandes utiliser pour crer, excuter et dboguer votre
programme.
F La barre doutils permet daccder rapidement aux commandes frquemment utilises dans
lenvironnement de dveloppement.
Dans la fentre de code, vous pouvez crire, afficher et modifier le code des nouvelles
procdures ou des procdures dvnement existantes. Vous pouvez ouvrir le nombre
ncessaire de fentres de code sur diffrents modules, modules de classe ou
formulaires utilisateur de manire pouvoir facilement visualiser le code, le copier et
le coller dune fentre lautre.
A
B
C
D
E F
P ROGRAMMATI ON DANS VI SI O AVEC MI CROSOFT VBA 295
Dmarrage de lEdit eur Visual Basic
Vous pouvez dmarrer lEditeur Visual Basic sans ouvrir de document Visio, mais
vous pouvez commencer par ouvrir un document pour voir le projet VBA de ce
document. Loccurrence Visio ajoute seulement des projets aux documents ouverts en
tant quOriginal ou Copie ; en revanche, si le document comporte dj un projet,
vous pouvez visualiser ce projet en lecture seule.
Pour dmarrer lEdit eur Visual Basic
1 Dmarrez lapplication Visio et ouvrez un modle, un gabarit ou un dessin en
slectionnant Original ou Copie, pas Lecture seule.
2 Choisissez Outils > Macros > Editeur Visual Basic ou cliquez sur le bouton Editeur
Visual Basic ( de la barre doutils Dveloppeur.
Dans VBA, vous pouvez personnaliser votre environnement de travail en paramtrant
les options comme la taille de la police, la couleur du code, les options derreurs de
syntaxe ainsi que les exigences en matire de dclaration de variables.
Pour paramt rer les opt ions denvironnement dans lEdit eur Visual Basic :
Choisissez Outils > Options, cliquez sur longlet Format de lditeur et paramtrez
les options souhaites.
Par dfaut, les projets auront le mme nom que le document avec lequel ils sont
associs. En revanche, chaque projet dispose dune fentre Proprits dans laquelle
vous pouvez renommer votre projet et fournir des informations supplmentaires
(dcrire le projet, par exemple). Vous pouvez galement verrouiller votre projet.
Pour ouvrir la f ent re Proprit s :
Choisissez Outils > Nom du projet > Proprits et paramtrez les proprits du
projet. Vous pouvez galement cliquer avec le bouton droit sur le nom du projet
dans lexplorateur de projet.
296 CHAP I TRE 15
Navigat ion parmi les projet s
Pour parcourir les projets dans lEditeur Visual Basic, utilisez lexplorateur de projet.
Celle-ci rpertorie les modules, les modules de classe et les formulaires utilisateur des
projets de tous les fichiers Visio ouverts. Vous pouvez double-cliquer sur un module,
un module de classe ou un formulaire utilisateur dans lexplorateur de projet pour
ouvrir sa fentre de code.
Explorateur de projet affichant cinq
fichiers Visio ouverts dans une
occurrence Visio
A Gabarit des diagrammes de base et lments de son projet ; ouvert avec accs lecture/criture.
B Dessin Visio ouvert et lments de son projet ; ce dessin na pas t enregistr.
C Dessin Visio ouvert, enregistr sous Agencement despaces, et lments de son projet.
Si vous ne voyez pas lexplorateur de projet lorsque vous ouvrez lEditeur Visual
Basic, choisissez Affichage > Explorateur de projet.
Enregist rement dun projet
Un projet VBA est stock dans le document Visio le contenant. Un document Visio
peut tre enregistr sous lun des types de fichier suivants :
Modle (.vst)
Gabarit (.vss)
Dessin (.vsd)
A
B
C
P ROGRAMMATI ON DANS VI SI O AVEC MI CROSOFT VBA 297
Lorsquun utilisateur cre un document Visio partir dun modle, loccurrence
Visio copie le projet VBA et ses lments dans le nouveau document.
Exemple de dessin Visio aprs ajout
dlments dans le projet par
dfaut et enregistrement du dessin.
A Premire procdure Sub dans le module (macro)
B Premire procdure Function dans le module (fonction dfinie par lutilisateur)
Pour enregist rer le document Visio et son projet VBA :
Dans linterface utilisateur Visio, choisissez Fichier > Enregistrer. Dans lEditeur
Visual Basic, choisissez Fichier > Enregistrer Nom de fichier.
Dans lexplorateur de projet de VBA, le nom de fichier et lemplacement du
document sont affichs entre parenthses aprs le nom du projet.
298 CHAP I TRE 15
Crat ion dun projet VBA
Un projet Microsoft Visual Basic pour Applications (VBA) est constitu de modules,
de modules de classe et de formulaires utilisateur.
Un module est une srie de dclarations suivies de procdures, soit une liste
dinstructions quun programme excute.
Un module de classe dfinit un objet, ses proprits et ses mthodes. Il agit comme
un modle partir duquel loccurrence dun objet est cre au moment de
lexcution. Chaque projet VBA de type Visio contient un module de classe appel
ThisDocument ; ce module de classe reprsente les proprits, les mthodes et les
vnements du document Visio contenant le projet VBA.
Un formulaire utilisateur contient les commandes de linterface utilisateur, comme
les boutons de commande et les zones de texte.
Des projets complexes peuvent contenir plusieurs modules, modules de classe et
formulaires utilisateur, un projet simple peut nexiger quun seul formulaire
utilisateur ou module. Par exemple, une solution gnrant un dessin peut inclure un
formulaire utilisateur pour rassembler les informations de lutilisateur. Elle peut aussi
inclure du code, organis en un ou en plusieurs modules et/ou modules de classe, qui
effectue les oprations suivantes :
Il valide la saisie de lutilisateur.
Il traduit le code en donnes qui serviront gnrer un dessin.
Il utilise Automation pour crer le dessin dans la fentre de dessin Visio.
Si la solution doit tre excute en rponse un vnement, comme louverture dun
document, elle peut inclure du code devant tre excut lorsque cet vnement se
produit.
Vous pouvez ajouter dans votre projet des modules, des modules de classe ou des
formulaires utilisateur en important des fichiers ; vous pouvez aussi exporter des
lments du projet pour les utiliser dans dautres projets. Vous pouvez aussi insrer
un contrle ActiveX

dans votre document Visio. Pour plus dinformations sur les


contrles ActiveX, reportez-vous au Chapitre 23, Utilisation de contrles ActiveX
dans une solution Visio .
P ROGRAMMATI ON DANS VI SI O AVEC MI CROSOFT VBA 299
Insert ion de modules et de modules de classe dans un projet
De nombreux programmes VBA comportent un ou plusieurs modules, une srie de
dclarations suivies de procdures. Chaque projet VBA Visio contient le module de
classe ThisDocument, qui est un objet reprsentant le document du projet. Vous
pouvez crer des modules de classe supplmentaires pour dfinir les objets VBA
personnaliss dans votre projet.
Pour insrer un module ou un module de classe :
Choisissez Insertion > Module.
La fentre de code affiche un module vide o vous allez pouvoir insrer des
procdures qui crent des modles dans lesquels vous allez saisir du code VBA.
Bote de dialogue Ajouter une
procdure
Pour ajout er des procdures aux modules et aux modules de classe :
1 Choisissez Insertion > Procdure pour ouvrir la bote de dialogue Ajouter une
procdure.
2 Dans la zone Nom, nommez la procdure.
Dans le sous-menu des macros de Visio, le nom dune procdure apparat dans le
sous-menu de son module. Le nom dune procdure ne peut pas contenir
despaces ou de mots rservs, comme MsgBox, If ou Loop, que VBA utilise dans
le cadre de son langage de programmation.
3 Dans la zone Type, slectionnez le type de procdure : Sub, Function ou Property.
Les modules et les modules de classe peuvent contenir) plusieurs types de
procdure.
Pour crire une procdure qui nenglobe aucun argument, insrez une
procdure Sub.
Pour crire une fonction qui englobe des arguments et renvoie une valeur,
insrez une procdure Fonction.
Pour ajouter des proprits dans un module de classe, insrez une procdure
Property.
300 CHAP I TRE 15
4 Dans la zone Porte, slectionnez Public ou Private.
Le domaine correspond laccessibilit dune procdure par dautres modules et
programmes.
Une procdure dont le domaine est priv est accessible seulement par le module
qui la contient ; seule une procdure contenue dans le mme module peut
appeler une procdure prive, et une procdure prive napparat dans aucun
des menus ou aucune des botes de dialogue.
Une procdure dont le domaine est public est accessible par dautres
programmes et modules. Lapplication Visio affiche les procdures publiques
des modules et le module de classe ThisDocument qui nenglobe aucun
argument dans le sous-menu Macros.
5 Pour dclarer toutes les variables locales comme tant statiques, cochez la case
Toutes les variables locales statistiques.
Vous pouvez dclarer les variables de votre procdure comme tant locales ou
statiques (globales).
Les variables statiques existent pendant toute la dure de vie du programme.
Les variables locales existent seulement lorsque la procdure dans laquelle elles
sont dclares est excute. A lexcution suivante de la procdure, toutes les
variables locales sont rinitialises. En revanche, vous pouvez conserver pendant
toute la dure de vie de votre programme la valeur de toutes les variables locales
dune procdure en les dfinissant comme tant statiques, ce qui fixe leur valeur.
6 Cliquez sur OK.
VBA insre un modle de procdure dans la fentre de saisie du code de llment.
Le modle contient la premire et la dernire lignes du code correspondant au type
de procdure insre.
Pour obtenir des informations sur les procdures, reportez-vous laide en ligne
Microsoft Visual Basic.
P ROGRAMMATI ON DANS VI SI O AVEC MI CROSOFT VBA 301
Insert ion de f ormulaires ut ilisat eur dans un projet
Pour que votre programme indique lutilisateur de saisir des informations, vous
pouvez crer une interface utilisateur en insrant des formulaires utilisateur. Un
formulaire utilisateur contient des commandes dinterface utilisateur, comme des
boutons de commande et des zones de texte. Lorsque vous ajoutez un formulaire
utilisateur au projet, VBA ouvre automatiquement la bote outils Contrles. Un
contrle est un objet que vous placez dans un formulaire utilisateur qui a ses propres
proprits et mthodes ; un contrle dclenche aussi des vnements auxquels vous
pouvez rpondre. Utilisez les contrles pour recevoir la saisie utilisateur, afficher la
sortie et dclencher les procdures dvnement.
Bote outils et formulaire
utilisateur contenant des contrles
A Onglet Contrles de la bote outils
B Formulaire utilisateur
C Contrle de zone de texte
D Contrle de bouton de commande
Pour ajout er un f ormulaire ut ilisat eur au projet :
1 Choisissez Insertion > UserForm.
2 Slectionnez les contrles ajouter au formulaire utilisateur partir de la bote
outils Contrles et placez-les sur le formulaire utilisateur.
Pour obtenir des informations sur lajout de contrles, comme les boutons de
commande et les zones de texte, reportez-vous laide en ligne Visual Basic.
3 Double-cliquez sur un formulaire utilisateur ou sur un contrle pour afficher sa
fentre de code.
4 Choisissez lvnement auquel vous souhaitez rpondre dans la liste droulante
des vnements et des procdures situe dans la fentre de code ; vous pouvez alors
commencer saisir votre code. Vous pouvez galement insrer une procdure et
commencer saisir le code dans le modle de procdure.
A
B
C
D
302 CHAP I TRE 15
CONSEIL : pour plus de clart, ce guide utilise les noms VBA par dfaut des formulaires et
des contrles ; sachez pourtant que le changement des noms par dfaut en noms plus
vocateurs savre tre une excellente technique de programmation. De nombreux
programmeurs utilisent les conventions de dnomination suivantes :
Nom par dfaut du formulaire utilisateur = UserForm1
Nom rvis = frmGetDocName
Remarquez lutilisation de frm dans le nom modifi du formulaire utilisateur. Dans le
nom du contrle, de nombreux programmeurs utilisent frm, txt (zone de texte), lbl
(libell), cmd (bouton de commande) et ainsi de suite, de manire rapidement
reconnatre le type dobjet.
Import at ion de f ichier et export at ion dun projet
Pour importer un lment dans un projet, choisissez Fichier > Importer un fichier.
Pour ajouter une copie de fichier dans un projet, vous pouvez choisir un module VBA
(fichiers portant lextension .bas), un formulaire utilisateur (fichiers portant
lextension .frm) ou un module de classe (fichiers portant lextension .cls). Pour
exporter un lment dun projet afin quil puisse tre import dans dautres projets,
slectionnez-le dans lexplorateur de projet et choisissez Fichier > Exporter un fichier,
puis saisissez lemplacement dans lequel vous souhaitez enregistrer le fichier.
Lexportation dun lment ne le supprime pas de votre projet.
Vous pouvez aussi dplacer des projets ou des lments de projet dun fichier Visio
lautre en slectionnant, dans lexplorateur de projet, le projet ou llment de projet
dplacer et en plaant son icne sur une icne de projet Visio. Llment de projet est
automatiquement stock dans le dossier des projets appropri. Le projet est rfrenc
dans le dossier Rfrences ; un fichier Visio peut seulement contenir un projet, lequel
peut, par contre, faire rfrence dautres projets.
REMARQUE : vous ne pouvez pas dplacer le module de classe ThisDocument dun fichier
Visio lautre, mais vous pouvez dplacer, copier et coller du code partir de
ThisDocument dans dautres lments de projet.
P ROGRAMMATI ON DANS VI SI O AVEC MI CROSOFT VBA 303
Ut ilisat ion de la bibliot hque de t ypes Visio
La bibliothque de types Visio contient des descriptions Automation dobjets, de
proprits, de mthodes et dvnements que le moteur Visio met disposition. Les
projets Microsoft Visual Basic pour Applications (VBA) appartenant aux documents
Visio font automatiquement rfrence la bibliothque de types Visio, que vous
utilisez pour dfinir des types dobjet Visio dans votre programme. Lutilisation des
types dobjet Visio dclars dans la bibliothque de types Visio augmente la vitesse du
programme car VBA interprte les objets Visio au moment de la compilation plutt
quau moment de lexcution. Lorsque vous compilez un programme au cours de la
cration, VBA recherche les erreurs de syntaxe et de programmation et compare les
types dobjet aux bibliothques de types. Si vous utilisez un type de variable gnral,
comme Object, VBA ne linterprte pas avant lexcution ; ce moment, VBA effectue
une requte dans le moteur Visio et recherche des rfrences dobjet. Cette tape de
recherche supplmentaire diminue la vitesse de votre programme.
La bibliothque de types contient galement les constantes symboliques globales
dfinies pour les arguments et les valeurs de retour des proprits et des mthodes.
Comme la plupart des arguments des proprits et des mthodes sont des valeurs
numriques, lutilisation de ces constantes peut faciliter lcriture et la lecture du
code. Par exemple, supposons que vous souhaitiez connatre le type de fentre quun
objet Window reprsente. La proprit Type dun objet Window renvoie un entier
qui indique le type de fentre. Si vous paramtrez une rfrence la bibliothque de
types Visio ou incluiez Visconst.bas dans votre projet, vous pouvez, pour vrifier le
type de fentre, utiliser une constante la place dun entier, dans cet exemple,
visDrawing au lieu de 1.
Pour obtenir la liste des constantes utilises par une mthode ou une proprit
donne, reportez-vous cette mthode ou cette proprit dans laide en ligne
Rfrence du dveloppeur (accessible via ? (Aide) > Rfrence du dveloppeur)
fournie avec Visio.
A laide de lexplorateur dobjets VBA, vous pouvez visualiser le contenu de la
bibliothque de types Visio.
REMARQUE : les exemples de ce guide correspondent un paramtrage de rfrence sur la
bibliothque de types Visio. Pour vrifier que ce paramtrage est actif, choisissez Outils >
Rfrences et cochez loption de bibliothque de types Visio 2000.
Ut ilisat ion de lexplorat eur dobjet s
Vous pouvez utiliser lexplorateur dobjets pour afficher la bibliothque de types
Visio. Lexplorateur dobjets affiche des constantes, des classes (objets) et des
membres de classe (proprits, mthodes et vnements) des bibliothques de types
auxquelles des projets ouverts font rfrence.
304 CHAP I TRE 15
Lexplorateur dobjets affiche, dans la liste Membres de, les proprits, les mthodes,
les vnements et les constantes Visio sous la forme de membres. Le volet des dtails
affiche la syntaxe de chaque membre sous la forme dun modle de code que vous
pouvez copier, coller ou dplacer dans un module ; vous pouvez alors substituer vos
propres variables et arguments. Lutilisation des modles de code diminue les risques
derreur.
Explorateur dobjets
A Zone des projets/bibliothques
B Zone de recherche
C Liste Classes
D Liste Membres de
E Volet des dtails
Pour ut iliser lexplorat eur dobjet s :
1 Choisissez Affichage > Explorateur dobjets ou le bouton Explorateur dobjets
( ) situ dans la barre doutils Microsoft Visual Basic pour Applications (VBA).
2 Pour explorer ou rechercher un objet, une proprit, une mthode, un vnement
ou une constante Visio, saisissez son nom dans la zone de texte Rechercher ou
cliquez sur un membre de la liste Membres de.
Paramt rage des rf rences aux bibliot hques de t ypes
Les applications prenant en charge Automation contiennent une bibliothque de types
pour dcrire les objets quelles mettent la disposition dAutomation. Si vous
souhaitez accder aux objets de la solution Visio partir dune autre application,
choisissez Outils > Rfrences et slectionnez la bibliothque de types que vous
recherchez dans la liste Rfrences disponibles. Vous pouvez aussi utiliser cette
procdure pour paramtrer une rfrence Visio partir de toute autre application
prenant en charge Automation. Vous pouvez, par exemple, partir de Microsoft


Word, paramtrer une rfrence Visio afin dutiliser des objets Visio dans Word.
A
B
C
E
D
P ROGRAMMATI ON DANS VI SI O AVEC MI CROSOFT VBA 305
Toutes les bibliothques de types coches dans la liste Rfrences disponibles
apparatront dans la zone de projet/bibliothque de votre projet. Vous pouvez aussi
paramtrer une rfrence tout document Visio ouvert ou accder tout document
ferm dans la bote de dialogue des rfrences.
Liste Rfrences disponibles
tendue
REMARQUE : pour nafficher que la classe et les membres de la bibliothque de types Visio,
choisissez Visio dans la zone de projet/bibliothque.
Ut ilisat ion des t ypes dobjet Visio
La bibliothque de types Visio prsente des fonctionnalits qui vous permettent de
travailler plus efficacement lors de lcriture du code. A laide de types dobjet Visio
dclars dans la bibliothque de types, vous pouvez dclarer des variables sous la
forme de types spcifiques, comme Visio.Page :
Lutilisation dun type dobjet Visio, comme Visio.Page, permet votre programme,
au moment de la compilation, de vrifier le type dobjet auquel il fait rfrence dans la
bibliothque de types Visio. Cette fonctionnalit sappelle liaison prliminaire. Cet
exemple utilise Visio pour informer le programme quil fait rfrence aux types
dobjet Visio dans la bibliothque de types Visio et quil utilise Page pour linformer
que la variable pagObj est un objet Page. Pour plus dinformations sur les objets Visio,
reportez-vous au Chapitre 14, Automation et le modle dobjet de Visio .
01m pag0b as v1s1o.Page
306 CHAP I TRE 15
Voici quelques types dobjet frquents :
Lorsque vous saisissez un point aprs un objet ou un type de bibliothque, une liste
apparat automatiquement : elle contient les types dobjet, les proprits et les
mthodes disponibles de lobjet prcdent ou du type de variable. Pour insrer dans le
code un type dobjet de la liste, double-cliquez sur ce type.
CONSEIL : si la fentre de liste automatique napparat pas lorsque vous travaillez dans la
fentre de code, choisissez Outils > Options > Editeur et cochez Complment automatique
des instructions.
Dans cet exemple, le type dobjet appropri est Page.
Fentre de liste automatique de la
bibliothque de types Visio
Ut ilisat ion des objet s global et ThisDocument
A la diffrence dun programme autonome qui doit obtenir une rfrence lobjet
Application Visio en la crant ou en la rcuprant, le code dun projet Microsoft Visual
Basic pour Applications (VBA) sexcute dans une occurrence Visio en cours
dexcution pour que vous nayez pas obtenir de rfrence lobjet Application. Le
moteur Visio fournit lobjet global qui reprsente loccurrence Visio. Le moteur Visio
fournit aussi lobjet ThisDocument qui reprsente le document Visio associ au projet.
01m docs0b As v1s1o.0ocumehfs uhe co11ecf1oh de documehfs
01m doc0b As v1s1o.0ocumehf uh obef documehf
01m shps0b As v1s1o.Shapes uhe co11ecf1oh de fomes |Shapes)
01m shp0b As v1s1o Shape uh obef fome |Shape)
01m masf0b As v1s1o.Masfe uh obef fome de base |Masfe)
P ROGRAMMATI ON DANS VI SI O AVEC MI CROSOFT VBA 307
Ut ilisat ion de lobjet global Visio
Lobjet global reprsente loccurrence et permet un accs plus direct certaines
proprits. Les proprits de lobjet global Visio ne sont pas prfixes avec une
rfrence un objet.
Objet global Visio et ses proprits
Lobjet Application est une proprit de lobjet global Visio, qui vous permet
daccder aux proprits de lobjet Application en faisant directement rfrence la
proprit Application de lobjet global Visio.
Voici trois exemples de code qui rcuprent le premier document dun ensemble
Documents, tous les trois utilisant une syntaxe diffrente.
Lexemple 1 cre un objet Application. Ce code est gnralement utilis lors de
lcriture dun programme externe :
Lexemple 2 utilise la proprit Application de lobjet global Visio :
01m appv1s1o As v1s1o.App11caf1oh
01m docs0b As v1s1o.0ocumehfs
01m doc0b As v1s1o.0ocumehf
Sef appv1s1o = Ceafe0becf|"v1s1o.app11caf1oh")
Sef docs0b = appv1s1o.0ocumehfs
Sef doc0b = docs0b.Tfem|1)
01m docs0b As v1s1o.0ocumehfs
01m doc0b As v1s1o.0ocumehf
Sef docs0b = App11caf1oh.0ocumehfs
Sef doc0b = docs0b.Tfem|1)
Application
ActiveDocument
Global
Document
Documents
Window
Windows
ActivePage
ActiveWindow
Addon
Addons
VBE
Documents
Windows
Addons
308 CHAP I TRE 15
Lexemple 3 permet daccder directement la proprit Documents de lobjet global
Visio :
Notez dans les exemples 2 et 3 que Application et Documents ne sont pas prcds
dun objet. Lorsque vous faites rfrence une proprit ou une mthode
quelconque de lobjet global Visio, il nest pas ncessaire de dclarer une variable pour
lobjet global ni de le rfrencer comme tant lobjet qui prcde une proprit
lobjet global est implicite. Le troisime exemple est la mthode daccs la plus directe
la collection Documents dun projet VBA.
Voici des exemples de code pour les proprits les plus frquentes de lobjet global
Visio :
Pour plus dinformations sur les proprits et les mthodes de lobjet global Visio,
reportez-vous laide en ligne Rfrence du dveloppeur (choisissez ? (Aide) >
Rfrence du dveloppeur) fournie avec Visio.
REMARQUE : Lobjet global Visio est disponible seulement lorsque vous crivez du code
dans le projet VBA dun document Visio.
Ut ilisat ion de lobjet ThisDocument
Dans lapplication Visio, chaque projet VBA contient un module de classe par dfaut
appel ThisDocument qui reprsente les proprits, les mthodes et les vnements
du document associ au projet. Comme tout module de classe, dautres programmes
peuvent accder ThisDocument au moment de lexcution.
Objet Document et objets
suprieurs associs dans le module
dobjet Visio
Si vous souhaitez manipuler un document, mais pas ncessairement le document
associ au projet VBA, rcuprez lobjet Document de la collection Documents. Pour
manipuler le document associ au projet VBA, utilisez lobjet ThisDocument.
01m doc0b As v1s1o.0ocumehf
Sef doc0b = 0ocumehfs.Tfem|1)
Sef doc0b = Acf1ve0ocumehf
Sef pag0b = Acf1vePage
Sef W1h0b = Acf1veW1hdoW
Global
Document
Documents
ActiveDocument
ThisDocument
Documents
P ROGRAMMATI ON DANS VI SI O AVEC MI CROSOFT VBA 309
Par exemple, pour rfrencer la premire page du dessin Bonjour.vsd, vous pouvez
rcuprer lobjet Document de lensemble Documents de lobjet global. Lexemple
suivant rcupre la premire page de Bonjour.vsd de la collection Pages du document.
Si Bonjour.vsd est le document associ votre projet VBA, il vous suffit dutiliser
lobjet ThisDocument comme dans lexemple suivant :
Une fois que vous faites rfrence un objet Document, extrayez dautres objets Visio
en rcuprant les proprits de lobjet Document, puis des autres objets de la
hirarchie.
Vous pouvez ajouter des proprits et des mthodes lobjet ThisDocument, car il
sagit dun objet extensible, cest--dire dun objet dont les fonctionnalits peuvent tre
tendues. Lobjet ThisDocument est le seul objet extensible fourni par le moteur
Visio. Vous pouvez aussi slectionner ThisDocument dans lexplorateur de projet et
changer ses proprits, comme les paramtres de la page et les styles par dfaut ; dans
la fentre Proprits, vous pouvez aussi changer les proprits du document, comme
le titre, le crateur et le sujet.
Pour plus dinformations sur les proprits, les mthodes et les vnements de
ThisDocument, slectionnez lobjet ThisDocument dans lexplorateur de projet qui
vous intresse, ouvrez lexplorateur dobjets, affichez le projet Visio contenant
ThisDocument dans la liste des projets et parcourez les membres de ThisDocument.
Sef doc0b = 0ocumehfs.Tfem|"bohou.vsd")
Sef pag0b = doc0b.Pages.Tfem|1)
Sef pag0b = Th1s0ocumehf.Pages.Tfem|1)
310 CHAP I TRE 15
Excut ion du code VBA depuis Visio
Vous pouvez excuter le code Microsoft Visual Basic pour Applications (VBA) dans
lEditeur Visual Basic pour le tester et le dboguer au cours du dveloppement. Cette
partie traite des diffrentes manires dexcuter du code dans lEditeur Visual Basic.
Pour plus dinformations sur le dbogage dun programme VBA, comme lajout de
points darrt, des espions et lexcution pas pas, reportez-vous laide en ligne
Microsoft Visual Basic.
Lutilisateur peut excuter vos macros termines dans linterface utilisateur Visio en
effectuant son choix dans le sous-menu Macros du menu Outils. Une macro est une
procdure VBA qui nutilise aucun argument. Les procdures qui emploient des argu-
ments napparaissent pas dans le sous-menu Macros.
Bote de dialogue Macros
Lexcution dun programme peut tre dclenche de diffrentes manires, par
exemple en rponse des vnements. Pour plus dinformations sur lexcution dun
programme en rponse des vnements, reportez-vous au Chapitre 21, Gestion
des vnements dans Visio . Pour connatre les autres manires dexcuter un
programme, reportez-vous au Chapitre 25, Distribution dune solution Visio
Automation .
A Nom de la macro slectionne
B Liste des macros disponibles et
des programmes
complmentaires
C Liste des projets, des modules
et des dessins accessibles
A
B
C
P ROGRAMMATI ON DANS VI SI O AVEC MI CROSOFT VBA 311
Pour excut er une macro depuis lEdit eur Visual Basic :
1 Choisissez Outils > Macros.
2 Dans la liste Macros, slectionnez la macro souhaite et cliquez sur Excuter.
Si la macro souhaite nest pas rpertorie, assurez-vous que vous avez choisi le
projet, le module ou le dessin correct dans la zone Macros dans. Les procdures
prives napparaissent pas dans tous les menus ou dans toutes les botes de
dialogue.
Ou
1 Dans lexplorateur de projet, ouvrez le module qui contient la macro.
2 Dans la fentre de code, cliquez lintrieur de la macro pour placer le point
dinsertion.
3 Choisissez Excuter > Excuter Sub/UserForm.
La macro o figure le point dinsertion est excute.
Pour excut er une macro part ir de la bot e de dialogue Macros de Visio :
1 Dans lapplication Visio, choisissez Outils > Macros > Macros.
2 Dans la liste Macros, slectionnez votre programme et cliquez sur Excuter.
REMARQUE : du point de vue de lutilisateur, peu importe si le programme que
lutilisateur excute est un programme complmentaire ou une macro car lapplication
Visio combine donc ces programmes dans des botes de dialogue. Par exemple, vous
pouvez excuter un programme complmentaire ou une macro partir de la bote de
dialogue Macros ou partir du sous-menu Macros.
Pour dcrire la macro qui apparat dans la bot e de dialogue Macros :
1 Dans lEditeur Visual Basic, ouvrez lexplorateur dobjets.
2 Dans la zone de projet/bibliothque, choisissez le projet qui contient la macro.
3 Dans la liste Classe, slectionnez le module qui contient la macro et cliquez avec le
bouton droit sur la macro dans la liste Membres de, puis choisissez Proprits.
4 Saisissez une description dans la zone Description.
Pour excut er la macro depuis le sous-menu Macros Visio :
1 Choisissez Outils > Macros.
2 Dans le sous-menu Macros, choisissez le projet contenant vos macros, puis
choisissez-en une.
312 CHAP I TRE 15
Lillustration suivante montre comment un module apparat dans le sous-menu
Macros Visio avec ses macros affiches dans le sous-menu du module.
Sous-menu Macros Visio
Si vous souhaitez que vos macros apparaissent dans le sous-menu Macros, mais que le
module contenant vos macros soit masqu, nommez votre module ShowInMenu. Le
module ShowInMenu napparat pas dans le sous-menu Macros Visio mais, comme le
montre lillustration suivante, ses macros y figurent :
Sous-menu Macros utilisant
le module ShowInMenu
P ROGRAMMATI ON DANS VI SI O AVEC MI CROSOFT VBA 313
Gest ion des erreurs
Lorsquune erreur se produit au cours de lexcution du programme, Microsoft
Visual Basic pour Applications (VBA) gnre un message derreur et interrompt
lexcution. En testant les hypothses avant dexcuter rellement le code qui risque
dchouer, vous pouvez viter de nombreuses erreurs. Vous pouvez dceler les erreurs
et les rsoudre en utilisant la formulation On Error de votre programme. Pour plus
dinformations sur On Error, reportez-vous votre documentation VBA.
Les erreurs peuvent provenir dune grande varit de situations. Cette partie
rpertorie les situations communes conduisant des erreurs et suggre des moyens de
les viter.
Excut ion du programme dans le cont ext e correct
Si vous avez dcid du contexte dans lequel le programme sera excut, vous pouvez
effectuer des hypothses concernant lenvironnement. Par exemple, si vous crivez un
programme VBA pour grer le comportement du double-clic, vous pouvez
probablement supposer quun document est ouvert et que la forme ayant fait lobjet
dun double-clic est slectionne dans la fentre active. En revanche, il existe des
limites la capacit dun programme contrler les actions utilisateur. Par exemple,
rien ne peut empcher un utilisateur de tenter, au lieu de double-cliquer sur la forme,
dexcuter un programme VBA conu pour grer un vnement de double-clic
partir de la bote de dialogue Macros.
Si votre programme exige quune forme soit slectionne, cochez la proprit
Selection dans la fentre active pour vous assurer quelle contient au moins un objet.
01m se1ecf0b As v1s1o.Se1ecf1oh
Sef se1ecf0b = Acf1veW1hdoW.Se1ecf1oh
Tf se1ecf0b.Couhf = 0 Theh
Msgox "vous devez d`abod s1ecf1ohhe uhe fome." , , "S1ecf1ohhe
uhe fome"
E1se
Su1fe du fa1femehf
Ehd Tf
314 CHAP I TRE 15
Verif icat ion de lexist ence des objet s et des valeurs
renvoyes
Avant daccder des objets, il est prudent de contrler leur existence dans la
collection. Avant deffectuer une itration dans la collection Masters, ce qui
provoquerait une erreur si lensemble tait vide, lexemple suivant vrifie si le
document comporte des formes de base.
Si une proprit ou une mthode est cense renvoyer une valeur, il peut tre judicieux
de sassurer quelle la rellement fait. Par exemple, si votre programme formate un
texte de forme, vous pouvez vrifier que lobjet Forme contient du texte :
Vrif icat ion des valeurs derreur
VBA comporte une fonction Error qui renvoie une chane. Lorsquune erreur se
produit dans Visio, un code derreur et une chane descriptive sont renvoys. Pour
obtenir la chane associe au code derreur renvoy par lapplication Visio, utilisez la
fonction Error.
Lobjet Cell Visio comporte une proprit Error qui indique si une erreur sest
produite lors du calcul de la formule dune cellule. Si votre programme modifie les
formules ShapeSheet

, cochez cette proprit pour vous assurer que la formule


fonctionne comme prvu. Pour obtenir la liste des valeurs possibles, recherchez
Error, proprit dans laide en ligne Rfrence du dveloppeur (choisissez ?
(Aide) > Rfrence du dveloppeur) fournie avec Visio.
Tf Th1s0ocumehf.Masfes.Couhf = 0 Theh
Msgox "Ce documehf he compofe aucuhe fome de base."
A11e au gesf1ohha1e d`eeu
Ehd Tf
01m shp0b As v1s1o.Shape
01m sfTexf As Sf1hg
Sef shp0b = Acf1vePage.Shapes.Tfems|1)
sfTexf = shp0b.Texf
Tf sfTexf = "" Theh
Msgox "La fome s1ecf1ohhe h`a aucuh fexfe a fomafe." , , "Iomafe
1e fexfe d`uhe fome"
E1se
Su1fe du fa1femehf
Ehd Tf
P ROGRAMMATI ON DANS VI SI O AVEC MI CROSOFT VBA 315
Gest ion dun projet VBA
Pour travailler de manire efficace et pour rduire les tches de maintenance,
effectuez ces oprations de gestion de projet :
Supprimez les lments du projet qui ne sont plus ncessaires afin de rduire la
taille des fichiers et faciliter la gestion du projet.
Empchez laffichage et la modification de votre code, si ncessaire.
Concevez des modules, des modules de classe et des formulaires utilisateur afin de
pouvoir les rutiliser, pour conomiser du temps lors de lcriture du code. En
outre, Microsoft Visual Basic pour Applications (VBA) 6.0 vous permet dexcuter
des programmes complmentaires qui peuvent tre partags dans plusieurs
applications.
Pour plus dinformations sur la rutilisation des lments du projet, reportez-vous
la section Importation de fichier et exportation dun projet , page 302 de ce
chapitre.
Suppression dlment s dun projet
Lorsque vous supprimez un lment, vous le supprimez dfinitivement de la liste des
projets ; cela signifie que vous ne pouvez pas annuler cette action. Assurez-vous que le
code restant dans les autres modules et formulaires utilisateur ne fait pas rfrence au
code contenu dans llment supprim.
Pour supprimer un lment de projet :
1 Slectionnez llment dans lexplorateur de projet.
2 Choisissez Fichier > Supprimer <Nom>.
3 Indiquez si vous souhaitez exporter llment avant de le supprimer.
Cliquez sur Oui pour ouvrir la bote de dialogue Exporter un fichier.
Cliquez sur Non pour supprimer llment.
316 CHAP I TRE 15
Prot ect ion du code
Pour empcher laffichage ou la modification du code, vous pouvez verrouiller un
projet : vous paramtrez un mot de passe qui doit tre saisi pour que le projet puisse
tre affich dans lexplorateur de projet.
Pour empcher laf f ichage dun projet VBA :
1 Choisissez Outils > Proprits de Nom du dessin.
2 Cliquez sur longlet Protection et slectionnez Verrouiller le projet pour
laffichage.
3 Saisissez un mot de passe et confirmez-le.
4 Enregistrez votre fichier Visio et fermez-le.
A louverture suivante du fichier Visio, le projet est verrouill. Si un utilisateur
souhaite lafficher ou le modifier, il doit saisir le mot de passe.
Ut ilisat ion du gest ionnaire des programmes
complment aires
Dans lEditeur Visual Basic, vous pouvez utiliser le gestionnaire de programmes
complmentaires pour grer les programmes qui tendent lenvironnement de
dveloppement VBA. Ces complments COM procurent au dveloppeur le moyen
dutiliser un seul complment pour ajouter des fonctionnalits dans nimporte quelle
application incluant VBA 6.0, notamment lapplication Visio. Pour plus
dinformations sur les complments, reportez-vous laide en ligne VBA.
Pour af f icher le gest ionnaire des programmes complment aires depuis
lEdit eur Visual Basic :
Choisissez Complments > Gestionnaire de complments.
La bote de dialogue Gestionnaire de complments apparat et affiche la liste des
complments enregistrs avec Visio.
Sommaire
16
Ut ilisat ion des objet s Visio
Document , Page et Shape
Dans le modle dobjet Microsoft

Visio

, lobjet de base utiliser est lobjet Shape.


Pour parcourir les objets Shape, il convient, en gnral, dutiliser les objets Document
et Page qui les prcdent dans la hirarchie des objets.
Ce chapitre dcrit lutilisation des objets Document, Page et Shape, comment
rcuprer et paramtrer leurs proprits, et appeler leurs mthodes. Lors de
lutilisation des autres objets Visio du modle dobjet, vous pouvez appliquer la
plupart des techniques traites dans ce chapitre.
Pour plus dinformations sur les objets, les proprits, les mthodes et les vnements
du modle dobjet Visio, reportez-vous laide en ligne Rfrence du dveloppeur
(choisissez ? (Aide) > Rfrence du dveloppeur) fournie avec Visio. Pour obtenir la
liste rcapitulative des objets, proprits, mthodes et vnements Visio,
reportez-vous lAnnexe A, Proprits, mthodes et vnements classs par objet .
REMARQUE : dans Microsoft

Visio

2000, tout objet pouvant tre nomm (par exemple,


une page ou une forme) peut avoir deux noms : un nom local et un nom universel. Si vous
dveloppez des solutions qui seront localises, reportez-vous la section Utilisation de
noms universels dans une solution page 493.
Utilisation des objets Document........................................................................... 318
Utilisation des objets Page.................................................................................... 324
Utilisation des objets Shape.................................................................................. 326
Exemple de cration dun dessin simple............................................................. 337
318 CHAP I TRE 16
Ut ilisat ion des objet s Document
Un objet Document reprsente un fichier de dessin (.vsd), un fichier de gabarit (.vss)
ou un fichier de modle (.vst) ouvert dans une occurrence Visio. Lors de lutilisation
dun dessin existant dans un programme, vous devrez probablement utiliser
uniquement la page active du document actif, cest--dire le dessin affich dans la
fentre de dessin active. Toutefois, dans certains circonstances, le programme peut
ouvrir un document pour automatiquement rcuprer un document ouvert et inactif.
Rcuprat ion dun objet Document
Pour rcuprer des informations sur un document, vous devez rcuprer la rfrence
dun objet Document.
Objet Document et objets associs
de niveau suprieur dans le modle
dobjet Visio
En fonction de la conception de votre solution, il existe plusieurs manires de
rcuprer la rfrence dun objet Document. Pour tous les exemples suivants,
supposons que vous avez dfini une variable dobjet docObj :
Les objets Global et Application ont une proprit ActiveDocument qui fait
rfrence au document de la fentre active, quel que soit le type de cette fentre.
Cette instruction rcupre le document actif dans une occurrence Visio et
lattribue docObj :
En guise dalternative, si vous avez rcupr la fentre active, vous pouvez
rcuprer la proprit Document de cet objet Window : il renvoie au mme objet
Document quActiveDocument.
Pour plus dinformations sur lobjet global, reportez-vous la section Utilisation
de lobjet global Visio , page 307.
01m doc0b As v1s1o.0ocumehf
Sef doc0b = Acf1ve0ocumehf
Application
ActiveDocument
Document
Documents Global Documents
UTI L I SATI ON DES OBJ ETS VI SI O DOCUMENT, P AGE ET SHAP E 319
Si vous connaissez le nom de fichier dun document ouvert, vous pouvez lextraire
de la collection Documents, que le document soit actif ou inactif. Par exemple :
Linstruction prcdente extrait le document Bonjour.vsd de la collection
Documents. Si Bonjour.vsd nest pas ouvert, la tentative dextraction provoque
une erreur.
Vous pouvez utiliser la mthode Open dune collection Documents pour ouvrir
un document si vous connaissez son chemin et son nom de fichier :
Cette instruction ouvre le document Bonjour.vsd sous sa forme originale et
lajoute la collection Documents.
Avec la mthode Open, vous pouvez ouvrir tout document Visio (fichier de gabarit,
de modle ou de dessin), bien que cela ne soit pas conseill pour les gabarits et les
modles. Au lieu dune copie ou dune version en lecture seule, la mthode Open
ouvre loriginal du document. Un document original peut tre modifi ; ce type
douverture est donc dconseill pour les gabarits et les modles car rien nempche
lutilisateur de modifier les formes de base, de changer lespace de travail du modle
ou deffectuer dautres modifications pouvant savrer fcheuses.
Pour ouvrir un document Visio en lecture seule, utilisez la mthode OpenEx. Vous
pouvez aussi utiliser OpenEx pour ouvrir les lments suivant :
La copie dun document.
La copie dun document sans ajouter son nom au menu Fichier Visio.
Un gabarit ancr dans une fentre de dessin.
Un gabarit mis en icne.
Pour plus dinformations, reportez-vous OpenEx dans laide en ligne Rfrence du
dveloppeur fournie avec Visio.
Sef doc0b = 0ocumehfs.Tfem|"bohou.vsd")
Sef doc0b = 0ocumehfs.0peh|"c:\v1s1o\dess1hs\bohou.vsd")
320 CHAP I TRE 16
Rcuprat ion dinf ormat ions sur des document s
Vous pouvez rcuprer des informations sur un document en extrayant ses
proprits, comme Description, Mots-cls, Sujet et Titre. Ces proprits
correspondent aux zones de texte de la bote de dialogue Proprits (choisissez
Fichier > Proprits).
Un objet Document comporte trois proprits que vous pouvez utiliser pour
rcuprer le nom de fichier dun document :
Name, qui renvoie seulement le nom de fichier dun document, par exemple,
Bonjour.vsd. Tant que le document nest pas enregistr, Name renvoie son nom
provisoire, comme Dessin1.
FullName, qui renvoie le lecteur et le nom de fichier du document. Par exemple,
c:\Visio\Dessins\Bonjour.vsd. Comme pour la proprit Name, tant que le
document nest pas enregistr, FullName renvoie un nom provisoire.
Path, qui renvoie seulement le lecteur et le chemin du document. Par exemple,
c:\Visio\Dessins\. Tant que le document nest pas enregistr, Path renvoie une
chane de caractres Null ("").
Ces proprits sont en lecture seule. Pour changer le nom, lunit ou le chemin dun
document, utilisez la mthode SaveAs pour enregistrer le document sous un nom
diffrent, ou dans une unit ou un chemin diffrents.
Vous pouvez obtenir le statut dun document en rcuprant sa proprit ReadOnly
ou Saved :
ReadOnly renvoie TRUE si un document est ouvert en lecture seule.
Saved renvoie TRUE si toutes les modifications du document ont t enregistres.
Vous pouvez aussi obtenir des informations sur un objet Document en obtenant la
proprit DocumentSheet de lobjet Document. Cette proprit renvoie un objet
Shape dont la proprit Cells renvoie des objets Cell qui contiennent les formules du
document. Ces objets Cell correspondent aux cellules qui figurent dans la fentre
ShapeSheet

du document. Pour plus dinformations sur lutilisation des formules,


reportez-vous au chapitre 17, Automatisation des formules
Ut ilisat ion des st yles dun document
Pour dterminer les styles disponibles dun document, rcuprez la proprit Styles
dun objet Document. Cette proprit Styles renvoie une collection Styles, qui
reprsente la collection des styles dfinis pour un document. La proprit Name dun
objet Style renvoie le nom du style qui apparat dans les listes de styles et dans la bote
de dialogue Dfinir les styles (choisissez Format > Dfinir les styles).
UTI L I SATI ON DES OBJ ETS VI SI O DOCUMENT, P AGE ET SHAP E 321
Lexemple suivant effectue une itration dans la collection Styles du document et
dresse la liste des noms de styles dans une zone de liste sur un formulaire utilisateur :
CONSEIL : vous pouvez modifier les styles par dfaut dun objet Document dans lEditeur
Microsoft Visual Basic. Slectionnez lobjet ThisDocument dans lexplorateur de projet et
modifiez les styles indiqus dans la fentre Proprits. Les styles de la fentre Proprits
sont : DefaultFillStyle, DefaultLineStyle, DefaultStyle et DefaultTextStyle.
Crat ion dun st yle pour un document
Pour crer un style partir dun programme, utilisez la mthode Add dune collection
Styles et spcifiez le nom du nouveau style. Vous pouvez galement spcifier le nom
dun style, crer un nouveau style et indiquer si ce style inclut des attributs de texte, de
trait et de remplissage.
Par exemple, pour crer un nouveau style nomm Lgende daprs le style Normal qui
inclut seulement des attributs de texte :
Pour crer un nouveau style qui nest pas bas sur un autre style avec des attributs de
texte, de trait et de remplissage :
Sub L1sfSfy1es |)
01m sfy1s0b As v1s1o.Sfy1es
01m sfy10b As v1s1o.Sfy1e
01m sfy1ehame As Sf1hg
Sef sfy1s0b = Th1s0ocumehf.Sfy1es
useIom1.L1sfox1.C1ea
Io Each sfy10b Th sfy1s0b
sfy1ehame = sfy10b.hame
useIom1.L1sfox1.AddTfem sfy1ehame
hexf
useIom1.ShoW
Ehd Sub
Sef sfy10b = sfy1s0b.Add|"Lgehde", "homa1", 1, 0, 0)
Sef sfy10b = sfy1s0b.Add|"Pahheau de ue","", 1, 1, 1)
322 CHAP I TRE 16
Vous pouvez modifier le nom du style en paramtrant sa proprit Name, ou
indiquer sil comporte des attributs de texte, de trait ou de remplissage en
paramtrant sa proprit IncludesFill, IncludesLine ou IncludesText. Pour plus
dinformations sur la cration de styles dans lapplication Visio, recherchez styles
dans laide en ligne fournie avec Visio.
Un objet Style comporte une proprit Cells que vous pouvez utiliser pour
paramtrer des formules pour les cellules ShapeSheet qui dfinissent le style. Cette
proprit renvoie un objet Cell qui correspond une cellule dans un style.
Par exemple, pour modifier la taille de police dun style :
Pour plus dinformations sur lutilisation des formules, reportez-vous au chapitre 17,
Automatisation des formules
Impression et enregist rement de document s
Votre programme peut imprimer ou enregistrer le dessin quil cre. Pour les
utilisateurs qui connaissent les commandes de menu Visio, vous allez probablement
crer le dessin partir de votre programme, et laisser les oprations dimpression et
denregistrement lutilisateur. Vous pouvez galement grer ces tapes partir de
votre programme.
Impression de documents et de pages
Vous pouvez imprimer un document ou une page en utilisant la mthode Print.
Pour imprimer lintgralit des pages dun document, utilisez Print avec un objet
Document. Cela quivaut choisir Tout dans la bote de dialogue Imprimer
(choisissez Fichier > Imprimer). Pour imprimer une seule page, utilisez la mthode
Print avec un objet Page. Cela revient afficher cette page et choisir Page en cours
dans la bote de dialogue Imprimer.
Lors de limpression partir de Microsoft

Visual Basic

pour Applications (VBA) ou


Visual Basic, vous devez :
Appliquer la mthode une variable de type Objet. Vous ne pouvez pas utiliser un
type dobjet Visio spcifique.
Appliquer le rsultat de la mthode Print une variable fictive.
Sef fohfs1zeCe110b = sfy10b.Ce11s|"Ca.Ta111e")
fohfs1zeCe110b.Iomu1a = "1 pf"
UTI L I SATI ON DES OBJ ETS VI SI O DOCUMENT, P AGE ET SHAP E 323
Par exemple, pour imprimer un document :
Enregistrement de documents
Pour enregistrer un document partir dun programme, utilisez la mthode Save ou
SaveAs dun objet Document.
Utilisez la mthode SaveAs et indiquez un nom de fichier et un chemin pour
enregistrer et nommer un nouveau document, pour enregistrer une copie dun
document existant sous un nom diffrent, ou pour enregistrer un document existant
dans une unit ou un chemin diffrents. Par exemple :
Utilisez la mthode Save seulement si le document a dj t enregistr et nomm. Par
exemple :
A la diffrence de la commande de menu Enregistrer de linterface utilisateur Visio,
qui affiche la bote de dialogue Enregistrer le fichier sous si un document est sans
nom, lutilisation de la mthode Save sur un document sans nom nappelle pas la
mthode SaveAs, mais entrane une erreur.
Pour savoir si un document a dj t enregistr, vrifiez sa proprit Path qui renvoie
le lecteur et le chemin complet du document ou, sil na pas t enregistr, une chane
Null. Pour savoir si un document a t enregistr depuis les dernires modifications,
vrifiez sa proprit Saved.
01m doc0b As v1s1o.0ocumehf
01m doc0bTemp As 0becf
01m dummy As Sf1hg
Sef doc0b = Th1s0ocumehf
Sef doc0bfemp = doc0b
dummy = doc0bTemp.P1hf
Th1s0ocumehf.SaveAs "c:\v1s1o\dess1hs\mohf1ch1e.vsd"
Th1s0ocumehf.Save
324 CHAP I TRE 16
Ut ilisat ion des objet s Page
Un objet Page reprsente une page de dessin pouvant tre soit une page
darrire-plan, soit une page de premier plan. Une fois que vous avez la rfrence un
document, vous devez rcuprer un objet Page de la page de dessin utiliser.
Si vous vous attendez ce que lutilisateur cre ou affiche un dessin, puis excute
votre programme, mieux vaut partir du principe que la page active contient le dessin
souhait. Vous pouvez soit rcuprer la page active dans loccurrence Visio, soit
rcuprer le document actif et extraire une page de sa collection Pages.
Rcuprat ion dun objet Page
Pour utiliser une page de dessin, vous devez rcuprer une rfrence un objet Page.
Objet Page et objets associs
suprieurs dans le modle dobjet
Visio
Pour rcuprer une page dun document, rcuprez la collection Pages de lobjet
Document ou ThisDocument, puis rcuprez un objet Page de la collection. Vous
pouvez rcuprer une page par son indice dans la collection, ou si vous connaissez le
nom de la page, par son nom. Par exemple, pour extraire une page nomme
Ingnierie :
Pour rcuprer la page active dune application, vous pouvez rcuprer la proprit
ActivePage de lobjet global ou Application. Par exemple, en utilisant lobjet global :
Pour plus dinformations sur lobjet global, reportez-vous la section Utilisation de
lobjet global Visio page 307
Sef pag0b = Th1s0ocumehf.Pages.Tfem|"Thgh1e1e")
Sef pag0b = Acf1vePage
Application
ActivePage
Document
Global
Page
Document Page
Documents Pages Documents Pages
UTI L I SATI ON DES OBJ ETS VI SI O DOCUMENT, P AGE ET SHAP E 325
Rcuprat ion des inf ormat ions sur les pages
Vous pouvez rcuprer des informations sur une page en lisant des proprits, comme
Name et Background, qui sont affiches dans les zones de texte de longlet Proprits
de la page de la bote de dialogue Mise en page (choisissez Fichier > Mise en page). La
proprit Document dune page renvoie lobjet Document qui contient la page.
Un objet Page comporte aussi des proprits que vous pouvez utiliser pour identifier le
contenu dune page de dessin :
Shapes renvoie la collection de tous les objets Shape dune page.
Connects renvoie la collection de tous les objets Connect dune page.
OLEObjects renvoie la collection de tous les objets lis OLE 2.0 et les objets
incorpors, ainsi que les contrles ActiveX dune page.
Vous pouvez aussi rcuprer des informations sur les dimensions et sur lapparence
dune page de dessin en rcuprant la proprit PageSheet dun objet Page. Cette
proprit renvoie un objet Shape dont la proprit Cells renvoie des objets Cell qui
contiennent les formules de la page. Ces objets Cell correspondent aux cellules qui
figurent dans la fentre ShapeSheet

de la page.
Par exemple, les instructions suivantes renvoient la largeur de la page :
Pour plus dinformations sur lutilisation des formules, reportez-vous au chapitre 17,
Automatisation des formules .
Ajout de pages dans un dessin
Un document Visio peut contenir plusieurs pages. Chaque page dun document peut
contenir un dessin unique, et certaines pages peuvent servir darrire-plans pour
dautres pages.
Vous pouvez, partir dun programme, crer des documents plusieurs pages en
ajoutant des pages et en leur attribuant des arrire-plans. Vous pouvez aussi modifier
les paramtres de la page, comme lchelle du dessin, la largeur et la hauteur de la page.
Au dpart, un nouveau document contient une page. Pour crer une autre page,
utilisez la mthode Add de la collection Pages du document. Par exemple :
Une fois que vous avez ajout une page la collection, vous pouvez utiliser la
proprit Name de lobjet Page pour nommer votre page.
Sef shp0b = pag0b.PageSheef
Sef ce10b = shp0b.Ce11s|"LageuPage")
dW1dfh = ce10b.Pesu1f|"pouces")
Sef pag0b = Th1s0ocumehf.Pages.Add
326 CHAP I TRE 16
Ut ilisat ion des objet s Shape
Lobjet Visio essentiel que vous allez utiliser est lobjet Shape. Un objet Shape
reprsente une forme de base, un groupe, un repre ou un point de repre, ou encore
un objet li ou incorpor. Un objet Shape peut aussi reprsenter les formules dune
page, dune forme de base ou dun document. Une collection Shapes reprsente tous
les objets Shape dune page de dessin.
Rcuprat ion dun objet Shape
Pour obtenir des informations sur une forme, vous devez rcuprer la rfrence
lobjet Shape. Pour ce faire, vous devez tout dabord rcuprer la rfrence la
collection Shapes de lobjet qui contient la forme qui vous intresse.
Obj et Shape et objets associs
suprieurs dans le modle
dobjet Visio
Pour rcuprer la collection Shapes dune page, rcuprez la proprit Shapes de
lobjet Page. Pour rcuprer une collection Shapes dune forme de base, rcuprez la
proprit Shapes de lobjet Master. Si un objet Shape reprsente un groupe ou la
feuille dune page ou dune forme de base, cet objet Shape dispose aussi dune
proprit Shapes.
Vous pouvez rcuprer un objet Shape de la collection Shapes par son indice, son
nom ou son ID unique.
Rcupration dune forme par son indice
Lordre des lments dans une collection Shapes est identique celui des formes
dessines. Le premier lment dune collection Shapes est la forme larrire-plan de
la page de dessin (la premire forme dessine), et le dernier lment est la forme au
tout premier plan (la dernire forme dessine). Par exemple, pour placer sur la page la
forme au tout premier plan :
shpThdex = shps0b.Couhf
Sef shp0b = shps0b.Tfem|shpThdex)
Page
Pages
Shape
Shapes
Application Document
Global
Documents
Pages
Shapes
Documents
UTI L I SATI ON DES OBJ ETS VI SI O DOCUMENT, P AGE ET SHAP E 327
Rcupration dune forme par nom ou par ID unique
Un objet Shape comporte trois proprits qui identifient la forme : Name, NameID et
UniqueID.
Name : renvoie NomDeForme[.nnnn]. Le nom de la forme est NomDeForme ; vous
pouvez paramtrer ce nom soit laide de la proprit Name, soit en saisissant un
nom dans la bote de dialogue Spcial (choisissez Format > Spcial).
Si vous nattribuez pas de nom une forme, la proprit Name renvoie lune des
valeurs suivantes :
Si la forme est la premire ou la seule occurrence dune forme de base sur une page
ou dans un groupe, NomDeForme est le nom de la forme de base sans numro
didentification, par exemple, Dcision.
Si la forme nest pas la premire occurrence dune forme de base sur une page ou
dans un groupe, NomDeForme est le nom de la forme de base suivie du numro
didentification de la forme, par exemple, Dcision.43.
Si la forme nest pas loccurrence dune forme de base, NomDeForme correspond
Feuille suivie du numro didentification de la forme, par exemple, Feuille.34.
Dans ce cas, les proprits Name et NameID de la forme renvoient la mme
chane.
Un nom de forme peut tre constitu de 1 31 caractres et il dcrit gnralement
la forme, comme Ordinateur de bureau. Par exemple, pour rcuprer une forme
nomme Ordinateur de bureau
NameID : renvoie Feuille.n, n tant lID entier de la forme, par exemple, Feuille.34.
Cet ID est attribu la forme lorsquelle est cre sur une page de dessin ; il est
unique dans la page ou dans la forme de base de la forme. Par exemple, pour
rcuprer une forme dont lID est 5 :
UniqueID(visGetGUID) : renvoie lventuel ID de la forme. Vous pouvez accder aux ID
uniques seulement partir dun programme, pas depuis linterface utilisateur Visio.
La plupart du temps, les ID permettent didentifier les formes ayant des
enregistrements correspondants dans une base de donnes. Dans le cas dun plan de
local commercial par exemple, il existe des douzaines de formes de bureau, de sige et
de PC identiques, vous pouvez utiliser lID unique de chaque forme pour associer une
forme spcifique du plan un enregistrement de la base de donnes dquipements.
Sef shp0b = shps0b.Tfem|"0d1hafeu de bueau")
Sef shp0b = shps0b.Tfem|"Ieu111e.S")
328 CHAP I TRE 16
Tant que le programme ne le gnre pas, une forme na pas dID unique. En revanche,
une forme de base dispose toujours dun ID unique, gnr par le moteur Visio. Un
ID unique est stock en interne sous la forme dune valeur de 128 bits, mais le moteur
Visio renvoie cette valeur sous la forme dune chane. Vous pouvez passer la chane ID
unique avec la mthode Item pour rcuprer une forme par son ID unique. Par
exemple :
Pour plus dinformations sur les ID uniques des formes et des formes de base,
reportez-vous au chapitre 20, Intgration de donnes et dune solution Visio
Rcuprat ion dinf ormat ions sur une f orme
Etant donn quun objet Shape peut reprsenter plus quune forme de base, il
convient parfois de dterminer son type. Lobjet Shape comporte une proprit Type
qui indique le type de la forme. Les valeurs renvoyes par cette proprit sont
reprsentes par les constantes suivantes dfinies dans la bibliothque de types Visio :
visTypeShape identifie une forme qui nest pas un groupe, comme une ligne, une
ellipse ou un rectangle, et les formes avec chemins multiples.
visTypeGroup identifie un groupe. Un groupe peut contenir des formes, des
groupes, des objets externes et des repres.
visTypeForeignObject identifie un objet import, incorpor ou li partir dune
autre application.
visTypeGuide identifie un repre ou un point de repre.
visTypePage identifie une forme contenant les proprits dune page ou dune
forme de base.
visTypeDoc identifie une forme contenant les proprits dun document.
Loccurrence dune forme de base peut tre une forme de base ou un groupe, en
fonction de la manire dont la forme de base a t cre.
Sef shp0b = shps0b.Tfem|"{6674SA1-936-101C-9107-0060CI4660}")
UTI L I SATI ON DES OBJ ETS VI SI O DOCUMENT, P AGE ET SHAP E 329
Dans la collection Shapes dun objet Page, chaque groupe est considr comme une
seule forme. En revanche, un groupe dispose de sa propre collection Shapes. La
fonction suivante comptabilise les formes dune page, y compris celles des groupes
(mais pas les groupes eux-mmes), en effectuant une itration dans la collection
Shapes dun objet Page. Elle vrifie galement la proprit Type de chaque objet Shape
pour voir si la forme est un groupe. Si Type renvoie visTypeGroup, lexemple extrait
le nombre de formes du groupe et ajoute ce nombre au nombre total de formes.
Crat ion et modif icat ion de f ormes
Quil sagisse de cration ou de modification, la plupart des oprations excutes par
le programme seffectuent avec des formes. Pour crer des formes, vous insrez
gnralement des formes de base dans la page de dessin en les faisant glisser, comme le
dcrit le chapitre 18, Cration de dessins par automatisation
Iuhcf1oh ShapesCouhf |oof As 0becf) As Thfege
01m 1Couhf As Thfege va1eu de efou
01m shps0b As v1s1o.Shape Co11ecf1oh Shapes
01m shp0b As v1s1o.Shape obef Shape
1Couhf = 0 Suppose que oof.Shapes esf uh goupe ou
uhe page
Sef shps0b = oof.Shapes
Io Each shp0b Th Shps0b
Tf shp0b.Type = v1sTypeCoup Theh
1Couhf = 1Couhf + ShapesCouhf|shp0b)
E1se
1Couhf = 1Couhf + 1
Ehd Tf
hexf
ShapesCouhf = 1Couhf
Ehd Iuhcf1oh
330 CHAP I TRE 16
Cration de formes
A partir dun programme, vous pouvez dessiner des lignes, des ellipses et des
rectangles en utilisant les mthodes DrawLine, DrawOval et DrawRectangle dun
objet Page. Lorsque vous dessinez des lignes, des ovales et des rectangles au lieu
dinsrer une forme de base dans la page de dessin, vous attribuez des coordonnes
aux deux angles opposs du plan largeur-hauteur de la nouvelle forme.
Cration de formes laide des
mthodes DrawLine,
DrawRectangle et DrawOval
A pagObj.DrawLine 1,9,3,10
B pagObj.DrawRectangle 1,6,3,7
C pagObj.DrawOval 1,3,3,4
Lorsque vous dessinez des ellipses et des rectangles, lordre dans lequel vous spcifiez
les angles na pas rellement dimportance. En revanche, il est important pour les
lignes. Il convient gnralement de connatre lextrmit dune ligne correspondant
au point de dpart et celle correspondant au point de fin.
Si vous le souhaitez, vous pouvez par exemple appliquer un style de ligne qui formate
le point de fin dune ligne avec une flche, ou coller le point de dpart dune ligne sur
une autre forme. Lorsque vous dessinez une ligne partir dun programme, les
premires coordonnes x,y dterminent le point de dpart de la ligne, et les secondes
coordonnes x,y dterminent le point de fin de la ligne ; le rsultat est le mme que
lorsque vous dessinez une forme avec la souris.
1 2 3 4
1
1
1
0
9
8
5 6 7 8
7
6
5
4
3
2
1
0
0
A
B
C
UTI L I SATI ON DES OBJ ETS VI SI O DOCUMENT, P AGE ET SHAP E 331
Outre les lignes, les ovales et les rectangles, vous pouvez aussi dessiner des formes
laide des mthodes DrawBezier, DrawNURBS, DrawPolyline et DrawSpline. Pour
plus dinformations sur ces mthodes, reportez-vous laide en ligne Rfrence du
dveloppeur (choisissez ? (Aide) > Rfrence du dveloppeur) fournie avec Visio.
Modification des formes
Vous pouvez aussi dessiner des formes originales, modifier des formes existantes, ou
en changer lapparence et le comportement en paramtrant leurs formules. Un objet
Shape comporte une proprit Cells qui renvoie un objet Cell contenant une formule.
Par exemple, pour masquer le texte dune forme :
Pour plus dinformations sur lutilisation des formules, reportez-vous au chapitre 17,
Automatisation des formules
Copie, coupe, suppression et duplication de formes
Vous pouvez copier, couper, supprimer et dupliquer des formes en utilisant les
mthodes Copy, Cut, Delete et Duplicate dun objet Shape. Ces mthodes
fonctionnent de la mme manire que les commandes de menu Copier, Couper,
Supprimer et Dupliquer de linterface utilisateur Visio. Vous pouvez utiliser ces
mthodes avec un objet Shape, que la forme correspondante soit slectionne ou non
dans la fentre de dessin.
Pour dupliquer une forme un endroit donn de la page, utilisez la mthode Drop de
lobjet Page. Pour ce faire, attribuez une rfrence la forme dupliquer et aux
coordonnes de destination du centre du rectangle de slection et de rotation de la
forme. Ce point se confond gnralement avec laxe de la forme. Par exemple :
Pour coller des formes partir du Presse-papiers, utilisez la mthode Paste de lobjet
Page. Pour plus dinformations sur le collage partir du Presse-papiers, reportez-vous
la mthode Paste dans laide en ligne Rfrence du dveloppeur fournie avec Visio.
Sef ce10b = shp0b.Ce11s|"MasqueTexfe")
ce10b.Iomu1a = "Tue"
Sef shp0b = pag0b.Shapes|"Ieu111e.1")
pag0b.0op shp0b,1,2
332 CHAP I TRE 16
Ajout de t ext e aux f ormes
Il est plus frquent de paramtrer le texte dune forme partir du programme que de
le considrer comme partie intgrante dune forme de base. Vous pouvez ajouter du
texte une forme ou modifier le texte existant en paramtrant la proprit Text dun
objet Shape sur une expression de chane. Par exemple :
Pour inclure des guillemets dans le texte, utilisez deux caractres guillemets ("") de
part et dautre de la chane. Par exemple :
Pour contrler le retour la ligne, utilisez la fonction Chr$ de Microsoft

Visual
Basic

pour inclure un saut de ligne ASCII. Par exemple :


Paramtrez la proprit Text dun
objet Shape pour ajouter du texte
la forme correspondante.
Pour modifier une partie du texte dune forme, rcuprez la proprit Characters de
la forme, qui renvoie un objet Characters. Paramtrez les proprits Begin et End de
lobjet Characters pour marquer le texte modifier.
Le texte dune forme est contenu dans son bloc de texte et est positionn dans son
propre systme de coordonnes relatif la forme. Vous pouvez contrler la taille et la
position du bloc de texte dune forme en paramtrant des formules dans la section
Transformation du texte de la forme. Pour plus dinformations sur lutilisation des
formules, reportez-vous au chapitre 17, Automatisation des formules . Pour
connatre les techniques Visio de modification de bloc et de contrle des
comportements du texte, reportez-vous au chapitre 9, Cration dun
comportement de texte .
shp0b.Texf = "Efo11e"
shp0b.Texf = """Efes-vous c11ehf de XYZ ?"""
shp0b.Texf = "Pef1fe" & Ch$|10) & "fo11e" & Ch$|10) & "b111ahfe"
Petite
toile
brillante
UTI L I SATI ON DES OBJ ETS VI SI O DOCUMENT, P AGE ET SHAP E 333
Rcuprat ion du t ext e dune f orme
La proprit Text dun objet Shape renvoie une chane contenant le texte affich dans
la forme. Si le texte dune forme contient des champs, comme une date, une heure ou
des formules personnalises, la chane renvoye par la proprit Text de la forme
contient un caractre dchappement (1E en hexadcimal, 30 en dcimal), non pas le
texte tendu affich dans les champs.
Pour que le texte de la forme apparaisse avec des champs correspondant
intgralement ce quils affichent dans la fentre de dessin, rcuprez la proprit
Characters de la forme, puis rcuprez la proprit Text de lobjet Characters
obtenu. Vous pouvez aussi rcuprer un sous-ensemble du texte de la forme en
paramtrant les proprits Begin et End de lobjet Characters.
Les champs du texte dune forme correspondent aux rsultats des formules que vous
pouvez visualiser dans la section Champs de texte de la forme. Utilisez la proprit
FieldFormula et les proprits associes de lobjet Characters pour contrler les
champs du texte dune forme.
REMARQUE : dans les versions prcdentes de Visio, la chane renvoye par la proprit
Text dune forme contenait un code de champ de 4 octets commenant par un caractre
dchappement. Les trois octets suivants contenaient les valeurs FieldCategory, FieldCode
et FieldFormat du champ. Dans Visio 2000, un seul caractre dchappement est stock et
les valeurs FieldCategory, FieldCode et FieldFormat sont stockes dans les cellules
Fields.UICat[i], Fields.UICod[i] et Fields.UIFmt[i] de la section Champs de texte de la
forme. (Ces cellules napparaissent pas dans la fentre ShapeSheet). Dans visFieldCodes,
les constantes de codes de champs sont dfinies dans la bibliothque de types Visio.
Outre le texte affich dans la forme, dautres parties dune forme peuvent contenir du
texte :
Une forme peut contenir du texte dans les cellules dfinies par lutilisateur ou des
proprits personnalises. Pour accder ce texte, utilisez la proprit Formula de
lobjet Cell contenant le texte.
Une forme peut contenir du texte dans ses champs Donnes1, Donnes2 et
Donnes3 ; ils apparaissent dans la bote de dialogue Spcial de Visio
correspondant cette forme. Pour accder ce texte, utilisez les proprits Data1,
Data2 et Data3 de lobjet Shape.
Ident if icat ion et applicat ion des st yles aux f ormes
Un objet Shape comporte des proprits qui identifient les styles de texte, de trait et
de remplissage appliqus cette forme :
FillStyle identifie le style de remplissage de la forme.
LineStyle identifie le style de trait de la forme.
TextStyle identifie le style de texte de la forme.
334 CHAP I TRE 16
Vous pouvez rcuprer ces proprits pour dterminer un style de texte, de trait ou de
remplissage dune forme, ou paramtrer ces proprits pour appliquer des styles la
forme. Lexemple suivant dessine un rectangle et applique deux styles :
Vous pouvez aussi paramtrer la proprit Style pour appliquer une forme un style
comportant plusieurs attributs. Si vous rcuprez la proprit Style dune forme, elle
renvoie le style de remplissage de cette forme, car une proprit ne peut pas renvoyer
plusieurs objets.
Conservat ion du f ormat age local
Le programme ou lutilisateur peut appliquer une forme des attributs de formatage
spcifiques qui sajoutent aux styles de texte, de trait ou de remplissage. Ce type de
formatage est appel formatage local. Si vous appliquez ultrieurement un style cette
forme, ce style remplace le formatage local sauf si vous faites en sorte de le conserver.
Pour conserver le formatage local lors de lapplication dun style partir dun
programme, utilisez lune des proprits suivantes la place de FillStyle, LineStyle ou
de TextStyle :
FillStyleKeepFmt
LineStyleKeepFmt
TextStyleKeepFmt
StyleKeepFmt
Ces proprits reviennent cocher la case Conserver le formatage local de la bote de
dialogue Style.
Sub App1ySy1es|)
01m pag0b As v1s1o.Page
01m shp0b As v1s1o.Shape
Sef pag0b = Acf1vePage
Sef shp0b = pag0b.0aWPecfahg1e|S, 4, 3, 2)
shp0b.I111Sfy1e = "v1s1o 20 Iace3"
shp0b.L1heSfy1e = "v1s1o 10 Iace2"
Ehd Sub
UTI L I SATI ON DES OBJ ETS VI SI O DOCUMENT, P AGE ET SHAP E 335
Crat ion de groupes part ir dun programme
Un groupe est une forme compose dautres formes. Pour crer un groupe partir
dun programme, utilisez la mthode Group de lobjet Window ou un objet Selection.
Linstruction suivante cre un groupe partir des formes slectionnes dans la fentre
de dessin :
La mthode Group cre un groupe
partir de formes slectionnes.
Pour ajouter une forme un groupe, utilisez la mthode Drop de lobjet Shape qui
reprsente le groupe, et faites rfrence la forme ajouter et sa position dans le
groupe. Par exemple :
Utilisez la mthode Drop dun
groupe pour ajouter une forme au
groupe.
A 0,0
B 0,375; 0,125
C grpObj
D shpObj
E grpObj aprs grpObj.Drop
W1h0b.Coup
gp0b.0op shp0b, 0,37S 0,12S
336 CHAP I TRE 16
Les coordonnes 0,375; 0,125 sont exprimes en coordonnes locales du groupe. Si la
forme dplace est un objet Master, le point plac par rapport ces coordonnes est
laxe de la forme de base. Si la forme dplace est un objet Shape, ce point est le centre
du rectangle de slection de la forme.
Vous pouvez contrler le comportement dun groupe en paramtrant des formules
dans la section Proprits de groupe de la forme. Pour plus dinformations sur
lutilisation des formules, reportez-vous au chapitre 17, Automatisation des
formules .
Crat ion de f ormes de base
Pour crer des formes de base partir dun programme, vous insrez une forme
provenant dune page de dessin dans un document (souvent un gabarit), comme vous
le faites lors de la cration dune forme de base avec la souris. Attribuez une rfrence
lobjet Shape convertir en forme de base laide de la mthode Drop du
document. Avant de pouvoir insrer un objet Shape dans un gabarit, vous devez
ouvrir le gabarit sous sa forme originale plutt quen lecture seule, comme cest
gnralement le cas lorsquun gabarit est ouvert par un fichier de modle (.vst). Pour
ouvrir un gabarit sous sa forme originale, utilisez la mthode Open, par exemple :
Une forme de base est souvent constitue de plusieurs composants qui, pour de
meilleures performances, doivent tre groups. Vous ntes pas tenu de grouper les
composants dune forme de base dans un gabarit. Notez cependant que si vous ne les
groupez pas, le moteur Visio groupe automatiquement les formes lorsque lutilisateur
insre la forme de base dans un dessin. Cette opration augmente le temps de cration
dune occurrence de la forme de base.
REMARQUE : outre les objets Shape et Master, la mthode Drop accepte les objets
Selection, ou tout objet qui fournit une interface IDataObject. Pour plus dinformations
sur la mthode Drop, reportez-vous laide en ligne Rfrence du dveloppeur fournie
avec Visio.
01m sfh0b As v1s1o.0ocumehf
01m shp0b As v1s1o.Shape
Sef sfh0b = 0ocumehfs.0peh|"Iomes de base.vss")
sfh0b.0op shp0b, 0, 0
UTI L I SATI ON DES OBJ ETS VI SI O DOCUMENT, P AGE ET SHAP E 337
Exemple de crat ion dun dessin simple
Voici un programme qui dmontre comment vous pouvez utiliser le modle dobjet
laide des objets Document, Page et Shape pour crer un dessin. Cet exemple cre des
objets Visio ; il ne fait pas rfrence des objets Visio existants. Ce programme est
constitu des tapes suivantes :
1 Rcupration de la premire page de la collection Pages du document associ au
projet Microsoft Visual Basic pour Applications (VBA).
2 Ajout du gabarit Formes de base.vss la collection Documents.
3 Insertion dans la page de dessin dune occurrence de la forme de base Rectangle
depuis le gabarit.
4 Choix de Bonjour tous ! comme texte de la forme rectangle sur la page de
dessin.
5 Enregistrement du document.
Sub he11oWo1d |)
va1ab1es obef a uf111se dahs ce pogamme.
01m sfh0b As v1s1o.0ocumehf 0ocumehf gaba1f qu1 cohf1ehf 1a fome
de base
01m masf0b As v1s1o.Masfe Iome de base a dpose
01m pags0b As v1s1o.Pages Co11ecf1oh Pages du documehf
01m pag0b As v1s1o.Page Page de fava11
01m shp0b As v1s1o.Shape 0ccuehce de 1a fome de base
su 1a page
L1e 1a pem1e page du documehf assoc1 au pogamme vA.
uh houveau documehf a fouous uhe page, dohf 1`1hd1ce dahs 1a
co11ecf1oh Pages vauf 1.
Sef pags0b = Th1s0ocumehf.Pages
Sef pag0b = pags0b.Tfem|1)
L1e 1e gaba1f dahs 1a co11ecf1oh 0ocumehfs ef df1h1 1a
fome de base.
Sef sfh0b = 0ocumehfs.Add|"Iomes de base.vss")
Sef masf0b = sfh0b.Masfes|"Pecfahg1e")
0pose 1e ecfahg1e au m111eu d`uhe page au fomaf uS 1effe.
Sef shp0b = pag0b.0op|masf0b, 4.2S, S.S)
0f1h1 1e fexfe du ecfahg1e.
Shp0b.Texf = "ohou a fous !"
Eheg1sfe 1e dess1h. Le message 1hfeompf 1e pogamme,
vous s1gha1ahf a1hs1 que 1e dess1h esf fem1h.
Th1s0ocumehf.SaveAs "bohou.vsd"
Msgox "Le dess1h esf fem1h !", , "ohou a fous !"
Ehd Sub
338 CHAP I TRE 16
Le dessin cr par ce programme apparat de la manire suivante.
Dessin cr par le programme
Bonjour tous !
Ce programme utilise les types dobjet Visio comme Visio.Document, Visio.Master,
Visio.Pages, Visio.Page et Visio.Shape dfinis dans la bibliothque de types Visio.
Lutilisation de types dobjet Visio la place du type de variable gnrale Object
augmente la vitesse dexcution du programme.
Ce programme utilise les variables dobjet pour conserver les rfrences aux objets
Visio. Chaque instruction Set attribue une rfrence dobjet une variable dobjet, en
commenant par lobjet ThisDocument. Remarquez la progression depuis lobjet
ThisDocument vers la collection Pages, puis vers lobjet Page.
Set pagsObj = ThisDocument.Pages utilise lobjet ThisDocument, qui est quivalent
lobjet Document spcifique associ un projet VBA. Pour faire rfrence lobjet
Document du fichier associ votre projet VBA, vous navez pas le rcuprer depuis
la collection Documents ; il suffit de faire rfrence lobjet ThisDocument.
Set stnObj = Documents.Add("Formes de base.vss") ne fait pas rfrence un objet
suprieur du modle dobjet Visio prcdant Documents. Documents est une
proprit de lobjet global Visio. Cet objet Visio comporte des proprits et des
mthodes auxquelles vous pouvez faire rfrence sans indiquer dobjet. Pour plus
dinformations sur lobjet global Visio, reportez-vous au chapitre 15,
Programmation dans Visio avec Microsoft VBA .
Set shpObj = pagObj.Drop(mastObj, 4,25; 5,5) utilise la mthode Drop pour insrer
une forme de base sur la page reprsente par la variable pagObj. Bien quil soit
possible de crer des formes de toutes pices dans un programme, une technique
beaucoup plus facile consiste dplacer une forme de base. Largument mastObj
spcifie la forme de base dplacer ; 4,25; 5,5 sont les coordonnes sur la page de
lemplacement de laxe de la nouvelle forme (son centre de rotation). Ces
coordonnes sont mesures partir de langle infrieur gauche de la page de dessin
dans des units de dessin exprimes en pouces. La mthode Drop renvoie une
rfrence lobjet Shape, cest--dire au nouveau rectangle, qui est attribu la
variable shpObj.
UTI L I SATI ON DES OBJ ETS VI SI O DOCUMENT, P AGE ET SHAP E 339
shpObj.Text = "Bonjour tous !" attribue la chane "Bonjour tous !" la proprit
Text de lobjet Shape ; cette chane est alors affiche dans le rectangle. Cela revient
slectionner une forme avec loutil Pointeur dans une fentre de dessin Visio et
saisir Bonjour tous !.
ThisDocument.SaveAs "bonjour.vsd" utilise la mthode SaveAs pour enregistrer lobjet
ThisDocument dans le fichier nomm Bonjour.vsd. Comme aucun chemin de
dossier nest spcifi, le document est enregistr dans le dossier de travail (en gnral,
le dossier qui contient le programme). Linstruction MsgBox indique simplement que
le dessin est termin. Lorsque vous cliquez sur OK dans la zone de message, vous
mettez fin au programme.
Pour plus dinformations sur tout objet, proprit, mthode ou vnement Visio,
reportez-vous laide en ligne Rfrence du dveloppeur (choisissez ? (Aide) >
Rfrence du dveloppeur) fournie avec Visio. Pour rechercher des informations sur
la programmation VBA, reportez-vous laide en ligne Microsoft Visual Basic,
accessible partir du menu daide de lEditeur Visual Basic.
Sommaire
17
Aut omat isat ion des f ormules
Outre les proprits que le modle dobjet Microsoft

Visio

met disposition, vous


pouvez contrler les objets Shape, Style, Page, Master et Document laide des
formules contenues dans les objets Cell. Comme vous pouvez visualiser, saisir et
modifier des formules dans les cellules dune fentre ShapeSheet

, vous pouvez
rcuprer et paramtrer des formules contenues dans les objets Cell qui
appartiennent une forme. Il est donc essentiel pour un dveloppeur Automation de
comprendre les fonctionnalits dont le moteur Visio dispose avec sa technologie
SmartShapes

. Tout ce quune formule peut effectuer dans une fentre ShapeSheet


peut tre effectu dans votre programme.
Vous pouvez apporter des modifications importantes une forme laide de
lensemble des sections et des lignes de ses formules. Par exemple, vous pouvez
ajouter des sections Gomtrie, supprimer des sommets ou modifier le type de ligne
des segments en convertissant des lignes en arcs ou des arcs en lignes.
IMPORTANT : pour obtenir la liste complte des sections, des noms des rfrences de cellule
et des constantes dindice de section, de ligne et de cellule, reportez-vous lAnnexe B,
Indices de section, de ligne et de cellule ShapeSheet . Vous pouvez aussi obtenir la liste
des constantes dindice et leurs valeurs en recherchant VisSectionIndices, VisRowIndices
et VisCellIndices dans la bibliothque de types Visio.
Ce chapitre prsente lautomatisation des formules des objets Cell appartenant aux
objets Shape, Style, Page, Master et Document. Il traite galement de lutilisation des
sections et des lignes partir de votre programme. Pour plus dinformations sur
lutilisation des formules Visio, reportez-vous au chapitre 4, Formules Visio
Utilisation des formules dans les cellules............................................................ 342
Utilisation des sections et des lignes ................................................................... 349
Utilisation de donnes hrites ............................................................................ 356
342 CHAP I TRE 17
Ut ilisat ion des f ormules dans les cellules
Dans le modle dobjet Visio, un objet Shape comporte plusieurs cellules ; chaque
cellule contient une formule dont la valeur dtermine un aspect de laffichage ou du
comportement dun objet.
Objet Cell et objets suprieurs
associs dans le modle dobjet
Visio
Supposons que vous souhaitiez modifier la largeur dun objet Shape de votre
programme. Dans le modle dobjet Visio, un objet Shape nindique pas de proprit
de largeur. Vous pouvez cependant modifier la largeur de la forme en rcuprant une
rfrence la cellule de la forme qui dfinit la largeur de la forme. Lorsque vous
disposez dune rfrence lobjet Cell qui dfinit la largeur de la forme, vous pouvez
rcuprer ou paramtrer ses formules. Ainsi, toutes les fonctionnalits votre
disposition dans la fentre ShapeSheet

dun objet sont aussi votre disposition par


lintermdiaire de lautomatisation.
Pour utiliser les formules dun objet Shape ou Style, utilisez la proprit Cells ou
CellSRC de lobjet pour rcuprer un objet Cell donn.
Pour utiliser les formules dune page (Page) ou dune forme de base (Master),
utilisez la proprit PageSheet de lobjet, qui renvoie un objet Shape. Vous pouvez
ensuite utiliser la proprit Cells ou CellSRC de cet objet Shape.
Pour utiliser les formules dun objet Document, utilisez la proprit
DocumentSheet de lobjet, qui renvoie un objet Shape. Vous pouvez ensuite
utiliser la proprit Cells ou CellSRC de cet objet Shape.
Rcuprat ion dun objet Cell
Vous pouvez rcuprer un objet Cell dans une collection soit par son nom, soit par
son indice de section, de ligne et de cellule. Aprs avoir rcupr un objet Cell, vous
pouvez utiliser ses mthodes et ses proprits pour rcuprer ou paramtrer la
formule de la cellule ou sa valeur.
Rcupration dun objet par son nom
Pour rcuprer un objet Cell, utilisez la proprit Cells dun objet Shape et spcifiez le
nom de la cellule. Avec la proprit Cells, vous pouvez utiliser toute rfrence de
cellule valide.
Document
Documents
Master
Masters
Page
Pages
Shape
Shapes
Section
Section
Section
Row
Row
Ligne
Cell
Cell
Cellule
Documents Masters
Pages
Shapes
AUTOMATI SATI ON DES FORMUL ES 343
Par exemple, pour rcuprer la cellule AxeX dune forme :
Pour rcuprer la coordonne y du quatrime point de connexion de la forme :
Dans ces exemples, nous rcuprons par leurs noms des objets Cell partir dune
collection. Remarquez que ces noms de cellule sont identiques ceux qui figurent
dans la fentre ShapeSheet de la forme.
Rcupration dun objet Cell par son indice de section, de ligne et de
cellule
Vous pouvez utiliser la proprit CellsSRC pour rcuprer toute cellule par son indice
de section, de ligne et de cellule.
Par exemple, pour rcuprer la cellule Police dans la premire ligne de la section
Caractres dune forme :
Si une section contient plusieurs lignes et que vous souhaitiez faire rfrence une
cellule qui nest pas sur la premire ligne, ajoutez un dcalage de valeur entire la
constante de ligne pour cette section. Bien que vous puissiez utiliser une constante de
ligne sans dcalage pour rcuprer la premire ligne dune section, il est prfrable en
pratique dutiliser la constante de ligne comme base et de lui ajouter un dcalage de
valeur entire, en commenant par 0 pour la premire ligne. Par exemple :
La position dune section ou dune ligne peut changer en fonction des oprations
effectues sur les autres sections et lignes. Par exemple, si une section Montage
contient trois lignes et que vous supprimiez la deuxime ligne, la troisime ligne est
dplace pour devenir la deuxime ligne. En consquence, visRowScratch + 2 nest
plus une rfrence valide car la section na plus de troisime ligne.
Vous pouvez aussi utiliser des indices de section et de ligne pour ajouter ou supprimer
des sections ou des lignes dune forme ou pour effectuer une itration dans les lignes
dune section.
Sef p1hXCe110b = shp0b.Ce11s|"AxeX")
Sef cohYCe110b = shp0b.Ce11s|"Cohhecf1ohs.Y4")
Sef fohfCe110b = shp0b.Ce11sSPC |v1sSecf1ohChaacfe,
v1sPoWChaacfe + 0, v1sChaacfeIohf)
v1sPoWScafch + 0 Pem1e 11ghe de 1a secf1oh Mohfage
v1sPoWScafch + 1 0eux1me 11ghe de 1a secf1oh Mohfage
v1sPoWScafch + 2 To1s1me 11ghe de 1a secf1oh Mohfage
344 CHAP I TRE 17
REMARQUE : dans la version 5.0 de Visio, les cellules Gomtrien.NoFill et
Gomtrien.AucunAff apparaissaient dans une fentre ShapeSheet dans les troisime et
quatrime cellules de la ligne Dpart dune section Gomtrie, et taient nommes
Gomtrien.A1 et Gomtrien.B1 (Gomtrien.X0 et Gomtrien.Y0, respectivement,
dans les versions antrieures Visio 5.0). Vous pouvez faire rfrence ces cellules avec
lun de ces noms.
Rcupration dune cellule dfinie par lutilisateur ou de proprits
personnalises
Certaines formes peuvent avoir des cellules nommes par lutilisateur ou par le
dveloppeur de formes. Les cellules personnalises sont dfinies dans la section
Cellules personnalises de la forme ; les cellules de proprits personnalises sont
dfinies dans la section Proprits personnalises de la forme. Chaque ligne de la
section Cellules personnalises ou Proprits personnalises comporte une cellule
Valeur qui contient la valeur de la cellule ou de la proprit dfinie par lutilisateur, et
une cellule Message pouvant contenir une chane. Une ligne de proprit
personnalise comporte des cellules supplmentaires qui contrlent le mode
dutilisation de la proprit personnalise.
La cellule Valeur constitue la cellule par dfaut dune ligne dfinie par lutilisateur ou
de proprit personnalise, vous pouvez donc rcuprer la cellule Valeur en spcifiant
simplement la section et le nom de la ligne. Par exemple, pour rcuprer la cellule
Valeur dune cellule dfinie par lutilisateur nomme Point de fuite :
Pour rcuprer toute autre cellule dans une cellule dfinie par lutilisateur ou dans
une ligne de proprit personnalise, vous devez inclure le nom de la cellule
souhaite. Par exemple, pour rcuprer la cellule Message dune proprit
personnalise nomme Numro de srie :
Pour plus dinformations sur la dfinition des proprits personnalises dans une
fentre ShapeSheet, reportez-vous la section Proprits personnalises page 146.
Sef ce10b = shp0b.Ce11s|"uf11.Po1hf de fu1fe")
Sef ce10b = shp0b.Ce11s|"Pop.humo de s1e.Message")
AUTOMATI SATI ON DES FORMUL ES 345
Modif icat ion des f ormules de cellule laide de la proprit
Formula
Pour modifier une formule de cellule, paramtrez la proprit Formula dun objet
Cell sur une chane correspondant une formule valide pour cette cellule. Par
exemple, pour paramtrer la formule de la cellule AxeLocX dune forme sur = 2 *
Largeur :
Si vous omettez le signe gal dune chane de formule, le moteur Visio lajoute
automatiquement la formule.
Si la chane de formule contient des guillemets, par exemple, si des pouces sont
spcifis sous la forme de guillemets (") plutt que par pouces ou po., utilisez deux
caractres de guillemets ("") pour transmettre un guillemet dans le moteur Visio.
Pour saisir une formule dans la cellule Message dune ligne de proprit
personnalise, utilisez linstruction suivante :
Rcuprat ion du rsult at dune f ormule
Chaque cellule possde une formule, et chaque formule permet de calculer un
rsultat. En choisissant Formules ou Valeurs dans le menu Affichage, vous pouvez
afficher le rsultat dans la fentre ShapeSheet. Si vous affichez des formules, une
cellule peut afficher Largeur * 0,5. Si vous visualisez des valeurs, et si la largeur est de
5,0 po (5 pouces), la mme cellule affiche 2,5 po (2,5 pouces).
Pour rcuprer le rsultat dune formule :
Result renvoie le rsultat dune formule sous la forme dun nombre virgule
flottante dans les units que vous spcifiez.
ResultIU renvoie le rsultat sous la forme dun nombre virgule flottante dans
les units internes Visio : pouces, radians ou jours couls.
ResultInt renvoie le rsultat sous la forme dun nombre entier dans les units
que vous spcifiez.
ResultStr renvoie le rsultat sous la forme dune chane dans les units que vous
spcifiez.
GetResults renvoie les rsultats de plusieurs cellules dans les units que vous
spcifiez.
Sef ce10b = shp0b.Ce11s|"AxeLocX")
ce10b.Iomu1a = "2 " Lageu"
shp0b.ce11s|"pop.11ghe1.message").Iomu1a = """Ehfez uhe pop1f"""
346 CHAP I TRE 17
Par exemple, les formules qui dterminent les coordonnes locales du centre de
rotation dune forme sont stockes dans ses cellules AxeLocX et AxeLocY. Les
formulations suivantes obtiennent le rsultat de la formule dans la cellule AxeLocX :
Les proprits Result et ResultIU renvoient un nombre virgule flottante. Lors de la
rcupration des rsultats de certaines formules de formes, surtout celles qui
dterminent les dimensions ou les sommets dune forme, vous voudrez probablement
prserver ce niveau de prcision. Pour ce faire, attribuez des rsultats aux variables
Variant ou Double. Cela rduit la possibilit darrondissement des erreurs et
maintient le mme niveau de prcision si vous utilisez des nombres pour recrer des
formes dans dautres dessins Visio.
Vous pouvez spcifier des units en utilisant toute chane acceptable par le moteur
Visio. Pour spcifier les units internes Visio (pouces ou radians), spcifiez une chane
Null ("") pour les units ou utilisez la proprit ResultIU au lieu de Result.
Comme alternative la spcification dunits sous forme de chane, utilisez les
constantes dunit dfinies dans la bibliothque de types Visio. Par exemple, vous
pouvez spcifier des centimtres en utilisant la constante visCentimeters.
Utilisez visPageUnits pour spcifier les units dfinies pour la page ou
visDrawingUnits pour spcifier les units dfinies pour le dessin.
Comme toute autre proprit de rsultat, ResultStr prend largument des units et
vous permet ainsi deffectuer des conversions entre toutes les units. Vous pouvez
utiliser ResultStr surtout pour accder aux formules des cellules qui contiennent des
chanes, comme la cellule Message dans une ligne de proprit personnalise, ou pour
rcuprer une chane destine servir de commande dans linterface utilisateur.
Remplacement dune f ormule par un rsult at
Si vous le souhaitez, vous pouvez remplacer une formule par son rsultat exprim
sous la forme dune constante, soit pour amliorer la performance dune forme, soit
parce que vous navez plus besoin de conserver ses formules. Le moteur Visio calcule
des formules chaque fois quune modification apporte une forme a une incidence
sur ses formules. La frquence des calculs peut avoir un effet notable sur les
performances. Pour remplacer une formule par son rsultat, utilisez la proprit
Result de la cellule afin de paramtrer sa formule. Cela revient paramtrer la
proprit Formula de la cellule : il sagit dun raccourci permettant de calculer la
formule et de la remplacer par la constante quivalente sous la forme dune nouvelle
formule de cellule.
Sef ce10b = shp0b.Ce11s|"AxeLocX")
1oca1CehfeX = ce10b.Pesu1f|"pouces")
1oca1CehfeX = ce10b.Pesu1f|v1sCehf1mefes)
AUTOMATI SATI ON DES FORMUL ES 347
Supposons, par exemple, que la formule AxeLocX dune forme est = 3 pouces + 1 pied/
2 ; son rsultat est donc gal 9 pouces. Pour remplacer cette formule par son
rsultat, utilisez la formulation suivante :
Une fois que cette formulation est excute, la formule de la cellule AxeLocX est
= 9 sin.
Vous pouvez aussi amliorer les performances en rduisant le nombre
dinterdpendances dans vos formules. Pour plus dinformations sur la conception
des formules, reportez-vous la section Contrle du recalcul des formules page 84.
Remplacement de f ormules prot ges
Lapplication Visio comporte une fonction PROTECTION qui protge des
modifications la formule dune cellule. Si la formule dune cellule est protge avec
PROTECTION, tenter de paramtrer la formule avec la proprit Formula, Result ou
ResultIU provoque une erreur. Vous pouvez, en revanche, modifier la formule de la
cellule comme suit :
Utilisez ResultForce ou ResultIUForce la place de Result ou de ResultIU.
Utilisez FormulaForce la place de Formula.
Soyez vigilants lors du remplacement de formules protges. Souvent, un dveloppeur
de formes protge les formules dune forme de base afin de prserver son
comportement intelligent des modifications accidentelles par un utilisateur. Si vous
remplacez ces formules, la forme peut ne plus avoir son comportement dorigine.
ce1LocP1hX.Pesu1f|"pouces") = ce1LocP1hX.Pesu1f|"pouces")
348 CHAP I TRE 17
Exemple dut ilisat ion de f ormules pour dplacer des f ormes
Cet exemple de programme dplace les formes slectionnes dans la fentre active en
paramtrant des formules pour laxe dune forme en deux dimensions (2D) ou pour
les points de dpart ou de fin dune forme en une dimension (1D). Le programme
utilise un formulaire utilisateur avec quatre boutons qui appellent la sous-routine
Nudge avec les paramtres affichs.
Sub hudge |dx As 0oub1e, dy As 0oub1e)
vo1c1 commehf acf1ve
0p1ace 0, -10escehde d`uhe uh1f
0p1ace -1, 00p1ace d`uhe uh1f ves 1a gauche
0p1ace 1, 00p1ace d`uhe uh1f ves 1a do1fe
0p1ace 0, 1Pemohfe d`uhe uh1f
0h Eo CoTo 1b1E
01m se10b As v1s1o.Se1ecf1oh
01m shp0b As v1s1o.Shape
01m uh1f As 0oub1e
01m 1 As Thfege
Efab11 1`uh1f de base |uh pouce)
uh1f = 1
Sef se10b = Acf1veW1hdoW.Se1ecf1oh
S1 1a s1ecf1oh esf v1de 11 h`y a 1eh a fa1e.
S1hoh, dp1ace chaque obef de 1a s1ecf1oh a a1soh d`uhe uh1f :
Io 1 = 1 To se10b.Couhf
Sef shp0b = se10b|1)
0ebug.P1hf "hudge " shp0b.hame " |" shp0b.hameT0 ")"
Tf |hof shp0b.0he0) Theh
shp0b.Ce11s|"AxeX").Pesu1fTu = |dx " uh1f) + shp0b.Ce11s|"AxeX").Pesu1fTu
shp0b.Ce11s|"AxeY").Pesu1fTu = |dy " uh1f) + shp0b.Ce11s|"AxeY").Pesu1fTu
E1se
shp0b.Ce11s|"0pafX").Pesu1fTu = |dx " uh1f) +
shp0b.Ce11s|"0pafX").Pesu1fTu
shp0b.Ce11s|"0pafY").Pesu1fTu = |dy " uh1f) +
shp0b.Ce11s|"0pafY").Pesu1fTu
shp0b.Ce11s|"I1hX").Pesu1fTu = |dx " uh1f) + shp0b.Ce11s|"I1hX").Pesu1fTu
shp0b.Ce11s|"I1hY").Pesu1fTu = |dy " uh1f) + shp0b.Ce11s|"I1hY").Pesu1fTu
EhdTf
hexf 1
Ex1f Sub
1b1E:
Ehd Sub
AUTOMATI SATI ON DES FORMUL ES 349
Ut ilisat ion des sect ions et des lignes
Vous pouvez modifier certaines caractristiques dune forme, dun style, dune page,
dune forme de base ou dun document en ajoutant et en supprimant des sections et
des lignes. Vous pouvez aussi effectuer une itration dans les sections ou dans les
lignes pour effectuer la mme opration sur chaque lment, comme lnumration
de toutes les formules de gomtrie dune forme.
Ajout de sect ions et de lignes
En gnral, vous souhaiterez ajouter une section complte une forme. Par exemple,
vous pouvez ajouter une section Gomtrie pour crer une forme avec plusieurs
chemins ou une section Montage qui serve de zone de travail pour la cration de
formules complexes. Avant de pouvoir utiliser une nouvelle section, vous devez y
ajouter au moins une ligne. En fonction du type de ligne que vous ajoutez, vous
pouvez aussi avoir besoin de paramtrer les formules des cellules dans la ligne.
Pour ajouter une section, utilisez la mthode AddSection dun objet Shape. Par
exemple, pour ajouter une section Montage une forme :
Pour ajouter une ligne une section, utilisez la mthode AddRow et spcifiez la
section, la ligne et ltiquette de ligne. Lorsque vous ajoutez une ligne une section
Gomtrie, ltiquette de ligne indique le type de ligne ajouter ; par exemple,
visTagLineTo indique une ligne TraitVers. Largument de ltiquette de ligne est tout
dabord utilis pour ajouter des lignes la section Gomtrie. Pour la plupart des
autres sections, utilisez une tiquette de ligne de 0 comme emplacement. Par exemple,
pour ajouter une ligne une section Montage :
shp0b.AddSecf1oh v1sSecf1ohScafch
shp0b.AddPoW v1sSecf1ohScafch, v1sPoWScafch + 0, 0
350 CHAP I TRE 17
Les constantes des tiquettes de ligne sont dfinies dans la bibliothque de types Visio
dans la zone VisRowTags. Le tableau suivant rpertorie les tiquettes de ligne et la
ligne quelles reprsentent dans la section Gomtrie dune fentre ShapeSheet

.
Une forme peut disposer dune seule section par type, sauf pour Gomtrie. Si une
forme dispose dj dune section particulire et si vous tentez den ajouter une autre,
vous obtenez une erreur. Vous pouvez utiliser la proprit SectionExists pour savoir
si elle dispose dune section, et lajouter ensuite si besoin est.
REMARQUE : vous ne pouvez pas ajouter ni supprimer des lignes de visSectionCharacter,
visSectionParagraph, visSectionTextField ou visSectionTab.
Etiquette de ligne Ligne de gomtrie
visTagComponent Affichage des proprits
visTagMoveTo Ligne DplacerVers (cellules X et Y dans une
ligne Dpart)
visTagLineTo Ligne TraitVers
visTagArcTo Ligne ArcVers
visTagEllipticalArcTo Ligne ArcElliptiqueVers
visTagSplineBeg Ligne DbutSpline
visTagSplineSpan Ligne NoeudSpline
visTagEllipse Ligne Ellipse
visTagInfiniteLine Ligne LigneI nfinie
visTagPolylineTo Ligne PolyligneVers
visTagNURBSTo Ligne NURBSVers
AUTOMATI SATI ON DES FORMUL ES 351
Exemple dajout dune sect ion Gomt rie une f orme
Dans un dessin Visio, une forme de base est constitue de zro, un ou plusieurs
composants, ou chemins. Chaque chemin est une squence de segments relis. Dans
la plupart des formes, un segment est soit un segment de ligne, soit un segment darc,
qui peut tre un arc dellipse. Chaque chemin est reprsent par une section
Gomtrie et chaque segment par une ligne de cette section.
Pour ajouter une section Gomtrie une forme, utilisez la mthode AddSection avec
visSectionFirstComponent pour linsrer avant les sections Gomtrie existantes ou
visSectionLastComponent pour lajouter aprs ces mmes sections. Par exemple,
pour ajouter une section Gomtrie aprs les sections Gomtrie existantes :
Aprs avoir ajout une section Gomtrie, vous devez ajouter au moins deux lignes
(les lignes ne sajoutent pas automatiquement une section ajoute partir dun
programme). Utilisez la mthode AddRow avec les tiquettes de ligne suivantes :
visTagComponent dtermine les proprits daffichage du composant dfini par
la section Gomtrie. Il doit sagir de la premire ligne de chaque section
Gomtrie.
visTagMoveTo, visTagEllipse ou visTagInfiniteLine dterminent le premier
sommet, cest--dire le point de dpart du composant. Il doit sagir de la seconde
ligne de chaque section Gomtrie. La ligne visTagEllipse ou visTagInfiniteLine
est la ligne finale car les ellipses et les lignes infinies sont reprsentes par des
sections dune seule ligne.
Les tiquettes de ligne visTagLineTo, visTagArcTo, visTagEllipticalArcTo,
visTagMoveTo, visTagPolylineTo ou visTagNURBSTo vous permettent dajouter
des lignes de sommet supplmentaires. Chaque ligne de sommet dfinit les
coordonnes locales dun sommet et le type de segment qui relie ce sommet au
prcdent.
Avec les tiquettes de ligne visTagSplineBeg et visTagSplineSpan, vous pouvez
ajouter des lignes de spline. Faites prcder la ligne de dpart de la spline
(visTagSplineBeg) dune ligne de dpart (visTagMoveTo) ou dune ligne de sommet
et utilisez visTagSplineSpan pour ajouter des lignes de noeuds de spline.
shp0b.AddSecf1oh v1sSecf1ohLasfCompohehf
352 CHAP I TRE 17
La procdure suivante insre une section Gomtrie avant les sections Gomtrie
existantes dune forme. Elle ajoute la ligne de composant, la ligne DplacerVers et
quatre lignes TraitVers (il sagit des lignes gnralement utilises pour dfinir une
ligne droite). Elle paramtre ensuite les formules des cellules dans chaque ligne pour
que la ligne soit trace diagonalement dans le plan largeur-hauteur de la forme.
Lillustration suivante montre la forme avant et aprs linsertion de la section
Gomtrie.
Insertion dune section Gomtrie
dans une forme
Sub AoufComf1e |)
01m shp0b As v1s1o.Shape
01m 1Secf1oh As Thfege
01m 1 As Thfege
M1se eh oeuve d`uh "gesf1ohha1e d`eeu" pou fa1fe 1`eeu s1 aucuhe fome h`esf s1ecf1ohhe
0h Eo CoTo ehoShp
Sef shp0b = Acf1veW1hdoW.Se1ecf1oh|1)
0h Eo CoTo 0
1Secf1oh = shp0b.AddSecf1oh|v1sSecf1ohI1sfCompohehf)
shp0b.AddPoW 1Secf1oh, v1sPoWI1sf + 0, v1sTagCompohehf
shp0b.AddPoW 1Secf1oh, v1sPoWvefex + 0, v1sTagMoveTo
Io 1 = 1 To 4
shp0b.AddPoW 1Secf1oh, v1sPoWvefex + 1, v1sTagL1heTo
hexf 1
shp0b.Ce11sSPC|1Secf1oh, v1sPoWvefex + 0, v1sX).Iomu1a = "Lageu " 0.2S"
shp0b.Ce11sSPC|1Secf1oh, v1sPoWvefex + 0, v1sY).Iomu1a = "haufeu " 0.S"
shp0b.Ce11sSPC|1Secf1oh, v1sPoWvefex + 1, v1sX).Iomu1a = "Lageu " 0.S"
shp0b.Ce11sSPC|1Secf1oh, v1sPoWvefex + 1, v1sY).Iomu1a = "haufeu " 0.2S"
shp0b.Ce11sSPC|1Secf1oh, v1sPoWvefex + 2, v1sX).Iomu1a = "Lageu " 0.7S"
shp0b.Ce11sSPC|1Secf1oh, v1sPoWvefex + 2, v1sY).Iomu1a = "haufeu " 0.S"
shp0b.Ce11sSPC|1Secf1oh, v1sPoWvefex + 3, v1sX).Iomu1a = "Lageu " 0.S"
shp0b.Ce11sSPC|1Secf1oh, v1sPoWvefex + 3, v1sY).Iomu1a = "haufeu " 0.7S"
shp0b.Ce11sSPC|1Secf1oh, v1sPoWvefex + 4, v1sX).Iomu1a = "Comf1e1.X1"
shp0b.Ce11sSPC|1Secf1oh, v1sPoWvefex + 4, v1sY).Iomu1a = "Comf1e1.Y1"
u1ffe 1a pocdue sahs passe dahs 1e gesf1ohha1e d`eeu
Ex1f Sub
ehoShp:
Msgox "S1ecf1ohhez uhe fome ef ecommehcez.", vb0K0h1y, 0vSTTTLE
Ehd Sub
AUTOMATI SATI ON DES FORMUL ES 353
Remarquez que visRowVertex sans dcalage ou avec un dcalage de 0 renvoie la
ligne DplacerVers. Lors de lajout des lignes de sommet, ajoutez toujours un dcalage
dune valeur au moins gale 1 visRowVertex de manire ce que vous ne
remplaciez pas par inadvertance la ligne DplacerVers ; vous vitez ainsi tout
comportement imprvisible de la forme. Pour crer un intervalle, vous pouvez insrer
des lignes DplacerVers supplmentaires dans la mme section Gomtrie. Pour plus
dinformations sur lutilisateur des formules de la section Gomtrie, reportez-vous
au chapter 5, Contrle de la gomtrie des formes laide de formules , ou
recherchez section Gomtrie dans laide en ligne fournie avec Visio.
Suppression de sect ions et de lignes
La suppression dune section supprime automatiquement toutes ses lignes et ses
cellules. Vous pouvez supprimer toutes les sections sauf visSectionObj ; vous pouvez
nanmoins supprimer des lignes de cette section. Pour supprimer une section, utilisez
la mthode DeleteSection dun objet Shape. Par exemple, linstruction suivante
supprime la section Montage dune forme :
La suppression dune section qui nexiste pas nentrane pas derreur.
Vous pouvez aussi supprimer une ligne dune section, sauf celles des sections
visSectionParagraph, visSectionCharacter, visSectionTextField et visSectionTab.
Par exemple, vous pouvez supprimer le sommet dune forme en supprimant la ligne
qui le dfinit dans la section Gomtrie de la forme. Linstruction suivante supprime
le dernier sommet dun rectangle :
Suppression de la ligne dun
sommet
A Ce sommet est reprsent par visRowVertex + 3.
B Aprs la suppression de la ligne du sommet, la forme change daspect.
shp0b.0e1efeSecf1oh v1sSecf1ohScafch
shp0b.0e1efePoW v1sSecf1ohI1sfCompohehf + 0, v1sPoWvefex + 3
A
B
354 CHAP I TRE 17
Modif icat ion du t ype dun segment
Vous pouvez dfinir un segment sous la forme dune ligne, dun arc dellipse, dune
courbe spline, dune ellipse, dune ligne infinie, dune polyligne, dune ligne
DplacerVers ou NURBS en paramtrant le type de la ou des lignes qui reprsentent le
segment. A partir du programme, vous pouvez effectuer cette opration en
paramtrant la proprit RowType de lobjet Shape.
Par exemple, linstruction suivante convertit le premier segment dune forme en un
segment de ligne.
Modification du type de ligne pour
une ligne de sommet
A Ce segment darc est reprsent par visRowVertex + 1.
B Une fois que le type de ligne est modifi, la forme change daspect.
shp0b.PoWType|v1sSecf1ohI1sfCompohehf + 0,
v1sPoWvefex + 1) = v1sTagL1heTo
A B
AUTOMATI SATI ON DES FORMUL ES 355
Exemple dit rat ion dans une collect ion de sect ions et de
lignes
Vous pouvez effectuer la mme opration sur plusieurs sections ou plusieurs lignes
laide dune itration, les proprits de lobjet Shape permettant de limiter la boucle :
GeometryCount reprsente le nombre de sections Gomtrie dune forme.
RowCount reprsente le nombre de lignes dune section.
RowsCellCount reprsente le nombre de cellules dune ligne.
Lexemple suivant effectue une itration dans les lignes et les cellules dune section
Gomtrie dune forme et utilise CellsSRC pour extraire chaque cellule. Il affiche
ensuite chaque formule de cellule dans une zone de liste sur un formulaire utilisateur.
Pour obtenir la liste des constantes de positions logiques, reportez-vous lAnnexe B,
Indices de section, de ligne et de cellule ShapeSheet .
Sub Tfaf1ohComf1e |)
Cef exemp1e suppose que 1a page acf1ve cohf1ehf uhe fome
01m shp0b As v1s1o.Shape 0bef Shape
01m cuCeomSecf As Thfege humo de secf1oh pou accde
a 1a secf1oh de gomf1e
01m cuCeomSecfThdx As Thfege va1ab1e de bouc1e pou 1es secf1ohs
de gomf1e
01m hPoWs As Thfege hombe de 11ghes dahs uhe secf1oh
01m hCe11s As Thfege hombe de ce11u1es dahs uhe 11ghe
01m cuPoW As Thfege humo de 11ghe |a paf1 de 0)
01m cuCe11 As Thfege Thdex de ce11u1e couahfe |a paf1 de 0)
01m hSecfs As Thfege hombe de secf1ohs de gomf1e dahs 1a
fome
Sef shp0b = Acf1vePage.Shapes|1)
useIom1.L1sfox1.C1ea
hSecfs = shp0b.CeomefyCouhf
Io cuCeomSecfThdx = 0 To hSecfs - 1
cuCeomSecf = v1sSecf1ohI1sfCompohehf + cuCeomSecfThdx
hPoWs = shp0b.PoWCouhf|cuCeomSecf)
Io cuPoW = 0 To |hPoWs - 1)
hCe11s = shp0b.PoWsCe11Couhf|cuCeomSecf, cuPoW)
Io cuCe11 = 0 To |hCe11s - 1)
useIom1.L1sfox1.AddTfem
shp0b.Ce11sSPC|cuCeomSecf, cuPoW, cuCe11).Loca1hame &
": " & shp0b.Ce11sSPC|cuCeomSecf, cuPoW, cuCe11).Iomu1a
hexf cuCe11
hexf cuPoW
hexf cuCeomSecfThdx
useIom1.ShoW
Ehd Sub
356 CHAP I TRE 17
Ut ilisat ion de donnes hrit es
Il arrive quune forme nait pas de copie locale de toutes ses donnes figurant dans la
fentre ShapeSheet

ou des donnes auxquelles vous accdez partir du programme.


La forme se comporte comme si les donnes taient locales, mais certaines peuvent
tre hrites dune forme de base ou dun style.
Toutes les oprations que vous effectuez lors de laddition, de la modification ou de la
suppression des donnes se font localement. Si les donnes nexistent pas localement,
en dautres termes si la forme hrite des donnes dune forme de base ou dun style, le
moteur Visio cre dabord une copie locale des donnes, puis excute laction
demande. Une fois que les donnes existent localement, lhritage de ces donnes est
rompu et les modifications des donnes dans la forme de base nont pas dincidence
sur les donnes locales de la forme.
Par exemple, si une forme est une occurrence dune forme de base qui comporte des
points de connexion, la forme hrite des points de connexion de la forme de base. Les
points de connexion de la forme ont le mme comportement que ceux de la forme de
base et sa section Points de connexion affiche dans la fentre ShapeSheet est hrite
de la forme de base. En revanche, la forme ne possde pas de copie locale des donnes
Points de connexion ; la place, elle hrite des donnes de la forme de base. Si vous
tentez de supprimer la section Points de connexion de cette forme, les donnes Points
de connexion ne changent pas car il nexiste pas de copie locale supprimer, et la
forme continue hriter des donnes Points de connexion de la forme de base.
Pour remplacer lhritage dune section tout entire, supprimez toutes les lignes de la
section ou lintgralit de la section et ajoutez une nouvelle section vierge du mme
type. Dans le dernier cas, supprimez la section pour vous assurer quaucune copie
locale nexiste dj car une erreur surviendrait si vous essayiez dajouter la section.
Pour rtablir une section hrite, supprimez la copie locale. La forme hrite alors
nouveau de cette section de la forme de base ou du style.
CONSEIL : lors des premires utilisations de Microsoft

Visio

2000, les formes hritent des


formules gomtriques de la forme de base, ce qui permet dobtenir des formes plus petites
et plus rapides. Comme lindiquent les informations ci-dessus, tous les remplacements
locaux de ces formules gomtriques font que la forme rcupre une copie locale et
augmente en taille. Pour cette raison, veillez apporter les modifications importantes la
forme de base.
Sommaire
18
Crat ion de dessins
par aut omat isat ion
Quel que soit le dessin ralis, vous devez gnralement suivre certaines tapes dans
votre programme. Vous ajoutez des formes au dessin, en gnral en faisant glisser des
formes de base dun gabarit. Vous dterminez lemplacement des formes et pouvez
calculer leur position laide de donnes externes.
Le prsent chapitre dcrit les techniques fondamentales entrant en jeu dans la cration
dun dessin depuis un programme, notamment lutilisation des formes, des pages
darrire-plan et des calques. Si vos dessins comprennent des formes connectes,
reportez-vous au chapitre 19, Automatisation des connexions dune solution
Visio . Pour plus dinformations sur lassociation de donnes aux formes dun
dessin, reportez-vous au chapitre 20, Intgration de donnes et dune solution
Visio .
Cration automatise de dessins laide de formes de base............................ 358
Choix de la position des formes sur un dessin.................................................... 361
Utilisation de formes slectionnes ..................................................................... 363
Pages darrire-plan............................................................................................... 367
Calques.................................................................................................................... 371
358 CHAP I TRE 18
Crat ion aut omat ise de dessins laide de f ormes de base
Pour crer des formes depuis un programme, le plus simple est dinsrer des formes
de base dun gabarit dans la page de dessin. Une forme de base, directement utilisable
dans un dessin, occasionne trs peu de traitement dans votre programme. Vous
pouvez utiliser les formes de base des gabarits que vous dveloppez et diffusez avec
votre programme, ou celles des gabarits accompagnant le programme Microsoft


Visio

.
Pour insrer une f orme de base dans une page :
1 Crez un objet Document reprsentant le gabarit qui contient la forme de base
placer.
2 Crez un objet Master reprsentant cette forme de base.
3 Crez un objet Page reprsentant la page de dessin dans laquelle insrer la forme
de base.
Rcuprat ion du gabarit
Vous pouvez rcuprer une rfrence tout gabarit ouvert en lextrayant de la
collection Documents de lobjet Application. Par exemple
Lexemple ci-dessus utilise une variable nomme stnObj plutt que docObj pour
distinguer les gabarits des autres types de fichier. Cette convention peut permettre
dviter des erreurs ultrieures.
Comme dans toutes les oprations sur des fichiers, il est prfrable de vrifier que le
gabarit est disponible avant dessayer de lutiliser. Linstruction Set prcdente
renvoie une erreur si Formes de base.vss nest pas ouvert. Pour vrifier ce point,
procdez comme suit :
Sef sfh0b = 0ocumehfs|"Iomes de base.vss)
S1 1e f1ch1e h`esf pas ouvef, ouvez-1e
0h Eo Pesume hexf
L1e uhe fehce dahs 1`obef Sfehc11 |Caba1f)
Sef sfh0b = 0ocumehfs|"Iomes de base.vss")
Le gaba1f h`fa1f pas ouvef, 11 fauf 1`ouv1
Tf sfh0b = hofh1hg Theh
0pehEx h`a pas pu ouv1 1e f1ch1e
0h Eo Co To e111handJe1
Sef sfh0b = 0ocumehfs.0pehEx |"Iomes de base.vss", v1s0pehP0)
Ehd Tf
CRATI ON DE DESSI NS P AR AUTOMATI SATI ON 359
Un gabarit est gnralement enregistr en lecture seule pour viter toute
modification ; lutilisateur peut nanmoins ouvrir loriginal et modifier lespace de
travail, ou dplacer ou supprimer un fichier, ce qui pourrait influer sur le nombre de
gabarits ouverts durant lutilisation du modle.
Rcuprat ion de la f orme de base
Un objet Document comporte une proprit Masters qui renvoie une collection
Masters regroupant les formes de base du gabarit du document. Vous pouvez faire
rfrence un objet Master par son nom ou par son indice dans la collection Masters.
Par exemple :
Une erreur commune consiste accder la collection Masters du fichier de dessin
plutt qu celle du fichier de gabarit. Tous les documents Visio possdent un gabarit ;
cest pourquoi tous les objets Document ont une collection Masters. Cependant, la
collection Masters dun fichier de dessin contient seulement les formes de base dj
insres dans le dessin ; ainsi, la collection Masters dun nouveau document est
gnralement vide. Quoi quil en soit, cette collection Masters risque fort de ne pas
contenir la forme de base qui vous intresse. Si votre programme ne parvient pas
accder un objet Master, vrifiez que vous le recherchez bien dans le fichier de
gabarit, et non dans le fichier de dessin.
Insert ion de la f orme de base dans la page
Pour insrer une forme de base dans une page, vous devez tout dabord rcuprer
lobjet Page reprsentant la page de dessin, puis appliquer la mthode Drop de cet
objet. La mthode Drop quivaut dposer une forme laide de la souris. La
mthode Drop reconnat trois arguments : une rfrence un objet et un couple de
coordonnes indiquant o placer laxe de lobjet sur la page de dessin si cet objet est
une forme de base. Dans les autres cas, le couple de coordonnes indique le centre du
plan largeur-hauteur de lobjet.
Les coordonnes sont mesures depuis langle infrieur gauche de la page. Dans notre
exemple, les valeurs 4,25 et 5,5 placent laxe de la forme au centre dune page de dessin
de 8po. sur 11 po. dans un dessin sans chelle. (Dans un dessin chelle, vous
indiquez les coordonnes en units de dessin exprimes en pouces. Par exemple, si
lchelle de dessin est de 1 pied = 1 pouce, vous indiqueriez les coordonnes 51, 66
pour placer la forme au centre de la page.) Pour plus dinformations sur les
coordonnes des formes, reportez-vous au chapitre 2, Cration de formes Visio .
Sef masf0b = sfh0b.Masfes|"Efo11e S")
Sef pag0b = Th1s0ocumehf.Pages|1)
Sef shp0b = pag0b.0op|masf0b, 4.2S, S.S)
360 CHAP I TRE 18
Laxe de la forme est plac aux
coordonnes 4,25, 5,5 (A) indiques
avec la mthode Drop.
s
Pour plus de simplicit, cet exemple place une forme au milieu de la page de dessin et
utilise des constantes pour indiquer sa position. La dtermination de la position des
formes peut cependant tre complexe, notamment dans un diagramme connect avec
de nombreuses formes. Une approche possible est prsente la section Choix de la
position des formes sur un dessin , page 361.
Outre linsertion de formes de base dans une page de dessin, la mthode Drop permet
galement deffectuer les oprations suivantes :
Cration dune forme partir dune forme existante.
Ajout dune forme un groupe.
Cration dune forme de base la vole par insertion dune forme dans un gabarit
(le fichier de gabarit doit tre ouvert avec loption Original, et non Lecture seule).
Modification dune forme de base par insertion dun objet dans une forme de base
ouverte.
Pour insrer plusieurs formes, appliquez la mthode DropMany, qui quivaut
dposer plusieurs formes laide de la souris.
REMARQUE : lorsquun programme dessine ou insre une forme dans un dessin
lchelle, il doit convertir les coordonnes des mesures du dessin en pouces. Par exemple,
linstruction suivante trace un rectangle de 3 pieds, 4 5 pieds, et 6 pieds sur un dessin
mis lchelle en pouces :
Pag0b.0aWPecfahg1e|36, 4, 60, 72)
1 2 3 4
1
1
1
0
9
8
5 6 7 8
7
6
5
4
3
2
1
0
0
A
CRATI ON DE DESSI NS P AR AUTOMATI SATI ON 361
Choix de la posit ion des f ormes sur un dessin
Le calcul de la position des formes peut tre lune des tches les plus complexes dun
programme crant des dessins Visio, notamment dans des diagrammes connects et
dans les autres dessins comportant des relations complexes entre les formes. Lobjectif
final reste le mme : vous devez calculer deux coordonnes de page pour toutes les
formes places sur la page de dessin. Lapproche adopte dpend du type de dessin
crer et des donnes qui le sous-tendent.
Par ailleurs, Visio propose des fonctionnalits de prsentation automatique
contrlant le mode dinteraction entre les formes et les liens reliant ces formes dans le
dessin. Vous pouvez afficher les paramtres de prsentation par dfaut dans les
sections Mise en page et Mise en page des formes de la fentre Feuille ShapeSheet

.
Vous pouvez personnaliser ces paramtres dans votre programme laide des
formules de ces sections. Pour plus dinformations sur les formes et leur prsentation
automatique, reportez-vous la section Cration de formes et mise en page
automatique , page 243. Pour plus dinformations sur les sections Mise en page et
Mise en page des formes, reportez-vous laide en ligne Rfrence du dveloppeur
(accessible via ? (Aide) > Rfrence du dveloppeur) fournie avec Visio.
La procdure CreateDrawing suivante prsente un exemple de positionnement des
formes dans un diagramme de rseau simple. Cet exemple lit les donnes dans un
tableau en deux dimensions (le premier lment du tableau rpertorie le nom dune
forme de base du gabarit Formes de rseau de base 3D, et le second correspond au
libell de la forme). CreateDrawing positionne un concentrateur au centre de la page,
puis les autres composants en cercle autour de ce concentrateur.
Cet exemple prsente plusieurs techniques de positionnement des formes,
notamment les suivantes :
Pour placer le concentrateur au centre de la page, le programme utilise les valeurs
des cellules HauteurPage et LargeurPage de la feuille de page.
Pour espacer les formes rgulirement autour du concentrateur, la variable
dblDegreeInc a t calcule en fonction du nombre dlments prsents dans le
tableau. Cette variable a ensuite servi dfinir les coordonnes x et y pour insrer
la forme.
Remarquez lutilisation des proprits de feuille de page pour obtenir des
informations sur le positionnement sur la page. Par ailleurs, les formes sont
rgulirement espaces autour du concentrateur grce la variable dblDegreeInc qui
permet de calculer les coordonnes x et y en fonction du nombre dlments du
tableau.
362 CHAP I TRE 18
REMARQUE : pour calculer les coordonnes de page visibles dans la fentre de dessin,
appliquez la mthode GetViewRect de lobjet window. Vous pouvez utiliser ces
coordonnes pour positionner les formes au centre de la fentre. Pour plus dinformations,
reportez-vous la section relative la mthode GetViewRect dans laide en ligne
Rfrence du dveloppeur (accessible via ? (Aide) > Rfrence du dveloppeur) fournie
avec Visio.
Pub11c Sub Crea1e0raW1ng|ahef0afa As Sf1hg)
01m shp0bhu As v1s1o.Shape
01m shp0bhodes As v1s1o.Shape
01m msf0b As v1s1o.Masfe
01m sfh0b As v1s1o.0ocumehf
01m db1X, db1Y As 0oub1e
01m db10egeeThc As 0oub1e
01m db1Pad As 0oub1e
01m db1PageW1dfh, db1Pagehe1ghf As 0oub1e
01m 1 As Thfege
Cohsf PT = 3.141S
Cohsf C1c1ePad1us = 2
01v1se 1e cec1e pa 1e hombe d`obefs dahs 1e fab1eau. A1hs1 11s sohf gu11emehf espacs
db10egeeThc = 360 / uouhd|ahef0afa)
L1e 1es pop1fs PageW1dfh ef Pagehe1ghf
db1PageW1dfh = Acf1vePage.PageSheef.Ce11s|"LageuPage").Pesu1fTu
db1Pagehe1ghf = Acf1vePage.PageSheef.Ce11s|"haufeuPage").Pesu1fTu
0uv1 1e gaba1f fome de seau de base 30
Sef sfh0b = App11caf1oh.0ocumehfs.0pehEx|"as1c hefWok Shapes 30.vss", v1s0peh0ocked)
Ta1fe 1a fome hub/commufafeu
Sef msf0b = sfh0b.Masfes|ahef0afa|0, 0))
Sef shp0bhu = Acf1vePage.0op|msf0b, db1PageW1dfh / 2, db1Pagehe1ghf / 2)
0f1h1 1e fexfe de 1a fome hub/commufafeu
shp0bhu.Texf = ahef0afa|0, 1)
Ta1fe 1es hoeuds
Io 1 = 1 To uouhd|ahef0afa)
Sef msf0b = sfh0b.Masfes|ahef0afa|1, 0))
I1xe 1es va1eus X, Y pou p1acemehf |dahs uh cec1e aufou du hub/commufafeu)
db1Pad = |db10egeeThc " 1) " PT / 10
db1X = C1c1ePad1us " Cos|db1Pad) + |db1PageW1dfh / 2)
db1Y = C1c1ePad1us " S1h|db1Pad) + |db1Pagehe1ghf / 2)
Aoufe, au boh ehdo1f, 1a fome au dess1h
Sef shpob = Acf1vePage.0op|msf0b, db1X, db1Y)
0f1h1 1e fexfe de 1a fome
shpob.Texf = ahef0afa|1, 1)
hexf
Ehd Sub
CRATI ON DE DESSI NS P AR AUTOMATI SATI ON 363
Ut ilisat ion de f ormes slect ionnes
Vous pouvez accder aux proprits et aux mthodes dune forme partir dun
programme, que la forme soit slectionne ou non. Vous pouvez galement crer un
objet Selection pour travailler sur plusieurs formes. Lobjet Selection est similaire
une collection Shapes car il reprsente un ensemble dobjets Shape, et comporte des
proprits Item et Count. Un objet Selection ne reprsente cependant que les formes
slectionnes.
Objet Selection et objets connexes
un niveau suprieur du modle
dobjet de Visio
Vous pouvez obtenir un objet Selection reprsentant les formes slectionnes dans
une fentre ou en crer en choisissant les formes qui y figurent dans une collection
Shapes. Lordre des lments dans un objet Selection correspond lordre de la
slection des objets. Le premier lment renvoy est la premire forme slectionne.
Obt ent ion des f ormes slect ionnes dans une f ent re
Pour travailler sur les formes slectionnes dans la fentre, lisez la proprit Selection
de lobjet window.
Window.Selection reprsente les
formes slectionnes dans la
fentre de dessin.
Global
Application
Window
Windows
Selection
ActiveWindow
Windows
364 CHAP I TRE 18
Lexemple suivant obtient lobjet Selection de la fentre active :
Si toutes les formes dune page sont slectionnes, lobjet Selection de la fentre et la
collection Shapes de la page rassemblent les mmes formes. Si rien nest slectionn,
lobjet Selection est vide et sa proprit Count renvoie 0. Sil est ncessaire pour le
programme quune forme soit slectionne, vous pouvez tester la proprit Selection
de la fentre active pour vrifier quelle contient au moins un objet.
Un objet Selection rcupr dans une fentre reprsente les formes slectionnes dans
la fentre. Les instructions ultrieures modifiant la slection dans la fentre nont
aucune incidence sur lobjet Selection rcupr.
Si la mme page de dessin est affiche dans plusieurs fentres, vous pouvez
slectionner des formes diffrentes dans chaque fentre.
Par dfaut, seuls les groupes et les formes slectionns sont inclus dans lobjet
Selection ; les formes slectionnes lintrieur dun groupe ne sont pas incluses.
Pour inclure les formes slectionnes lintrieur dun groupe (une forme enfant
dans un groupe) ou un groupe parent dune forme, vous pouvez modifier les
paramtres par dfaut de la proprit IterationMode de lobjet Selection. Pour
obtenir des informations sur lobjet Selection et ses proprits, reportez-vous laide
en ligne Rfrence du dveloppeur (accessible via ? (Aide) > Rfrence du
dveloppeur) fournie avec Visio.
se1ecf0b = Acf1veW1hdoW.Se1ecf1oh
Sef se1ecf0b = Acf1veW1hdoW.Se1ecf1oh
Tf se1ecf0b.Couhf = 0 Theh
Msgox "vous devez d`abod s1ecf1ohhe uhe fome.", , "S1ecf1ohhe uhe
fome"
E1se
Pousu1ve 1e fa1femehf
Ehd Tf
CRATI ON DE DESSI NS P AR AUTOMATI SATI ON 365
Ajout et suppression de f ormes dans les slect ions
Pour ajouter un lment une slection, appliquez la mthode Select correspondante
et indiquez lobjet Shape slectionner. Vous pouvez ajouter une forme une
slection ou annuler sa slection sans affecter les autres formes slectionnes.
Les constantes visSelect et visDeselect, dfinies dans la bibliothque de types de Visio,
contrlent laction excute. Par exemple, linstruction suivante ajoute une forme
celles figurant dj dans lobjet Selection :
Linstruction suivante annule la slection de cette forme :
Pour slectionner une forme dfinie explicitement :
Slect ion et dslect ion de f ormes dans une f ent re
Pour slectionner une forme dans la fentre dun programme, appliquez la mthode
Select de lobjet window et indiquez lobjet Shape slectionner. Vous pouvez ajouter
une forme une slection ou dslectionner une forme sans affecter les autres formes
slectionnes. Par exemple, linstruction suivante ajoute une forme celles dj
slectionnes dans la fentre de dessin :
Pour slectionner toutes les formes dune page de dessin, appliquez la mthode
SelectAll de lobjet window ; pour dslectionner toutes les formes slectionnes,
appliquez la mthode DeselectAll. Si vous rcuprez un objet Selection aprs
lutilisation de SelectAll, le nouvel objet Selection inclut un objet Master pour
chaque forme de la page de dessin affiche dans la fentre. Si vous rcuprez un objet
Selection aprs lutilisation de DeselectAll, le nouvel objet Selection est vide.
se10b.Se1ecf shp0b,v1sSe1ecf
se10b.Se1ecf shp0b,v1s0ese1ecf
se10b.Se1ecf shp0b, v1sSe1ecf + v1s0ese1ecfA11
W1h0b.Se1ecf shp0b,v1sSe1ecf
366 CHAP I TRE 18
Excut ion doprat ions sur les f ormes slect ionnes
Une fois que vous disposez dun objet Selection, vous pouvez appliquer aux formes
slectionnes des oprations similaires aux actions excutes dans une fentre de
dessin.
Par exemple, vous pouvez appliquer les mthodes Copy, Cut, Delete ou Duplicate
dun objet window ou Selection pour copier, couper, supprimer ou dupliquer des
formes slectionnes :
Vous pouvez galement excuter des oprations boolennes, telles que lunion, la
combinaison et la fragmentation laide des mthodes Union, Combine et
Fragment. Ces mthodes correspondent aux commandes Union, Combinaison et
Fragmentation de Visio, qui crent une ou plusieurs formes remplaant les formes
slectionnes :
Avant dutiliser Union, Combine ou Fragment, vrifiez que seules les formes
modifier sont slectionnes. Ces mthodes suppriment les formes dorigine, toutes les
formules intelligentes disparaissent et lobjet Selection reprsentant les formes nest
plus courant.
Pour obtenir des informations sur lutilisation de lobjet Selection ainsi que sur les
objets, proprits et mthodes mentionns ici, reportez-vous laide en ligne
Rfrence du dveloppeur (accessible via ? (Aide) > Rfrence du dveloppeur)
fournie avec Visio.
Df init ion de la port e dune slect ion
Pour dterminer si un objet Selection rcupre ses formes dans un objet Page, Master
ou Shape (groupe), vrifiez les proprits ContainingPage, ContainingMaster et
ContainingShape de lobjet Selection.
Si les formes sont sur une page, la proprit ContainingPage renvoie cet objet
Page et ContainingMaster renvoie Nothing.
Si les formes sont dans une forme de base, la proprit ContainingMaster renvoie
cet objet Master et ContainingPage renvoie Nothing.
Si les formes sont dans un groupe, la proprit ContainingShape renvoie un objet
Master reprsentant le groupe. Sinon, cette proprit renvoie un objet Master qui
reprsente la feuille de page de la forme de base ou la page contenant ces formes.
se1ecf0b.0e1efe
se1ecf0b.uh1oh
CRATI ON DE DESSI NS P AR AUTOMATI SATI ON 367
Pages darrire-plan
Un document Visio peut contenir plusieurs pages. Chaque page dun document peut
contenir un dessin diffrent, mais certaines pages peuvent galement tre
larrire-plan dautres pages.
Vous pouvez crer un document multipage depuis un programme en ajoutant des
pages et en leur associant des arrire-plans. Vous pouvez galement modifier des
paramtres de page tels que lchelle du dessin, ou la hauteur et la largeur du dessin.
Crat ion et associat ion de pages darrire-plan
Pour quun ensemble de formes apparaisse dans plusieurs dessins, vous pouvez le
placer sur une page darrire-plan. Par exemple, si le programme cre des dessins sur
plusieurs pages, vous pouvez crer une page darrire-plan comportant des formes
den-tte et de pied de page, ou de bloc de titre et de bordure.
Vous pouvez associer la mme page darrire-plan plusieurs pages de premier plan.
Une page de premier plan ne peut avoir quune page darrire-plan, mais cette
dernire peut elle-mme avoir un arrire-plan. Vous pouvez donc construire un
dessin avec beaucoup de pages darrire-plan. Pour crer une page darrire-plan,
ajoutez une page au dessin et associez la valeur True la proprit Background. Par
exemple :
Pour associer la page darrire-plan une autre page pour que les formes de
larrire-plan apparaissent dans le fentre de dessin lorsque la page est affiche,
paramtrez la proprit BackPage de la page de premier plan sur le nom de la page
darrire-plan. Par exemple :
backPag0b.ackgouhd = Tue
pag0b.ackPage = "P1ah damhagemehf 1hf1eu"
368 CHAP I TRE 18
Exemple dit rat ion dans la collect ion Pages
Les lments dune collection Pages sont indexs partir des pages de premier plan
dans lordre dans lequel elles sont rpertories dans la bote de dialogue Redisposer les
pages, suivies des pages darrire-plan classes dans un ordre arbitraire. (Pour afficher
la bote de dialogue Redisposer les pages, cliquez avec le bouton droit sur un onglet de
page de la fentre de dessin, puis choisissez Redisposer les pages.)
Lexemple suivant excute une itration dans la collection Pages du document actif et
rpertorie les noms de toutes les pages de premier plan dans une zone de liste sur un
formulaire dutilisateur.
Exemple de conf igurat ion de pages et darrire-plans
Supposez que vous souhaitez crer un dessin multipage comportant une occurrence
de chaque forme de base dun gabarit. La procdure formValid cre la page
darrire-plan et dfinit une chelle et une taille de page correspondant lchelle des
formes de base du rapport.
Cette procdure rcupre les chelles de la forme de base et de la page darrire-plan
dans leur feuille de page respective. La variable globale gDocDraw a t pralablement
dfinie pour dsigner un nouveau document qui nest pas lchelle.
Sub TfeafePages |)
01m pags0b As v1s1o.Pages
01m pag0b As v1s1o.Page
Sef pags0b = Th1s0ocumehf.Pages
useIom1.L1sfox1.C1ea
Io Each pag0b Th pags0b
Tf pag0b.ackgouhd = Ia1se Theh
useIom1.L1sfox1.AddTfem pag0b.hame
Ehd Tf
hexf
useIom1.ShoW
Ehd Sub
CRATI ON DE DESSI NS P AR AUTOMATI SATI ON 369
Sub 1ormVa11d |)
Les dc1aaf1ohs ef 1hsfucf1ohs sahs appof sohf om1ses.
Toufes 1es fomes de base ohf 1a mme che11e.
Sef masfe = masfes|1)
Sef masfeSheef = masfe.Shapes|"LaPage")
0f1h1 1a Page eh a1e-p1ah.
Sef gPageack = g0oc0aW.Pages.Tfem|1)
gPageack.hame = STPACKCP0uh0
gPageack.ackgouhd = Tue
0f1h1 1`che11e ef 1a d1mehs1oh de 1a page d`a1e p1ah.
Sef pageSheef = gPageack.Shapes|"LaPage")
masfe0aW1hgSca1e = masfeSheef.Ce11s|"Eche11e0ess1h").Iomu1a
masfePageSca1e = masfeSheef.Ce11s|"Eche11ePage").Iomu1a
page0aW1hgSca1e = pageSheef.Ce11s|"Eche11e0ess1h").Iomu1a
pagePageSca1e = pageSheef.Ce11s|"Eche11ePage").Iomu1a
Aps avo1 cup 1es che11es de 1a fome de base ef de 1a page, fomva11d compae
1`che11e de 1a fome de base avec ce11e de 1a page. S1 e11es d1ffehf comme, pa exemp1e,
dahs 1e cas d`uh gaba1f de fomes ach1fecfua1es, fomva11d mef 1a page a 1`che11e de
`1a fome de base. Ceffe pocdue cohvef1f auss1 1a haufeu ef 1a 1ageu de page pou passe
de va1eus bufes a des va1eus a 1`che11e |lau!eu1Page " theJJe0ess1n / theJJePage).
Tf |masfe0aW1hgSca1e <> page0aW1hgSca1e 0 masfePageSca1e <> pagePageSca1e) Theh
Eche11e de dess1h = Ausfemehf
pageSheef.Ce11s|"TypeEche11e0ess1h").Iomu1a = 3
pageSheef.Ce11s|"Eche11e0ess1h").Iomu1a = masfe0aW1hgSca1e
pageSheef.Ce11s|"Eche11ePage").Iomu1a = masfePageSca1e
Ta111e du dess1h = 01mehs1ohs
daW1hgSca1e = masfeSheef.Ce11s|"Eche11e0ess1h")
pageSca1e = masfeSheef.Ce11s|"Eche11ePage")
pagehe1ghf = pageSheef.Ce11s|"haufeuPage")
pageW1dfh = pageSheef.Ce11s|"LageuPage")
pageSheef.Ce11s|"haufeuPage").Iomu1a = pagehe1ghf " daW1hgSca1e / pageSca1e
pageSheef.Ce11s|"LageuPage").Iomu1a = pageW1dfh " daW1hgSca1e / pageSca1e
Ehd Tf
Ehd Sub
370 CHAP I TRE 18
Modif icat ion des paramt res de page
En gnral, les programmes Microsoft

Visual Basic

pour Applications (VBA)


utilisent un modle Visio pour crer un dessin. Il est donc rarement ncessaire de
modifier les paramtres, tels que lchelle de dessin ou de page car le modle fournit
les valeurs appropries pour les dessins crs par votre programme. Si vous modifiez
ces paramtres, ou si vous crez un dessin sans modle et avec des paramtres
diffrents des valeurs par dfaut de Visio, vous pouvez changer les paramtres de la
page en modifiant les formules de page.
Pour modifier une formule de page, lisez la proprit PageSheet de lobjet Page, qui
renvoie un objet Shape indiquant les formules de la page. Utilisez ensuite la proprit
Cells de lobjet Shape pour extraire une cellule de page par son nom, comme vous le
feriez pour une forme sur la page de dessin.
Un objet Master comporte galement une proprit PageSheet permettant dobtenir
les mmes paramtres (chelle de dessin, chelle de page, etc.) pour la forme de base
et pour la page. Cela permet, par exemple, de savoir si lchelle dune forme de base
est approprie pour la page de dessin avant dinsrer la forme dans la page de dessin.
REMARQUE : vous pouvez galement accder aux paramtres de page laide dune forme
spciale appele LaPagede la collection Shapesdes objets Pageet Master. Cela quivaut
rcuprer la proprit PageSheet dun objet Pageou Master.
Par exemple, supposez que votre programme autorise lutilisateur modifier lchelle
dun plan damnagement depuis le programme plutt que depuis le moteur Visio.
Les instructions suivantes modifient lchelle de pagObj pour que 1 pied dans le dessin
corresponde
1
/8 de pouce sur la page de dessin.
Les cellules de page les plus utilises dfinissent la taille et lchelle du dessin. Dautres
cellules de page dfinissent la prcision des rgles et la densit de la grille, les calques
de la page et les actions, ou sont dfinies par lutilisateur. Pour obtenir la liste des
cellules et des sections de page, reportez-vous lannexe B, Indices de section, de
ligne et de cellule ShapeSheet .
Sef pagSheef0b = pag0b.PageSheef
Sef pagCe1PageSca1e = pagSheef0b.Ce11s|"Eche11ePage")
Sef pagCe10aWSca1e = pagSheef0b.Ce11s|"Eche11e0ess1h")
pagCe1PageSca1e.Pesu1f|"po") = 0.12S
pagCe10aWSca1e.Pesu1f|"p1") = 1.0
CRATI ON DE DESSI NS P AR AUTOMATI SATI ON 371
Calques
Une page peut comporter des calques, qui permettent dorganiser les formes sur la
page. En attribuant des formes un calque, vous pouvez les rpartir en catgories de
formes nommes afin de les afficher ou de les masquer, de les imprimer, ou
dempcher leur modification), sans pour autant avoir placer les formes sur une
page darrire-plan ou les grouper. Le calque dune forme est indpendant de son
ordre dempilement ou mme de son appartenance un groupe.
Une forme de base peut tre associe des calques. Lorsquelle est insre dans un
dessin, loccurrence de cette forme de base est associe aux calques indiqus. Si ces
calques nexistent pas, la copie de Visio les cre automatiquement.
Lorsque vous utilisez les calques dans un programme, vous pouvez vrifier quels sont
les calques disponibles dans une page de dessin ou dans une forme de base, et savoir
quels calques est associe une forme dans un dessin. Vous pouvez associer des formes
des calques, ajouter des calques et en supprimer. Vous pouvez galement afficher ou
masquer un calque, le rendre imprimable ou modifiable, et modifier dautres
paramtres, comme vous dfinissez les proprits des calques dans la bote de
dialogue Proprits des calques ou dans la section Calques de la fentre Feuille
ShapeSheet

.
Ident if icat ion des calques dune page ou dune f orme de base
Pour identifier les calques dfinis pour une page ou une forme de base, rcuprez sa
proprit Layers. Cette proprit renvoie une collection Layers, qui contient un objet
Layer pour chaque calque dfini pour la page ou la forme de base. Si la page ou la
forme de base ne comporte pas de calque, sa collection Layers est vide. Un objet Layer
a une proprit Name qui renvoie le nom du calque sous forme de chane. Il sagit de
la proprit par dfaut de lobjet.
Vous pouvez obtenir un objet Layer de la collection Layers en indiquant son nom ou
son indice dans la collection. Par exemple, pour obtenir lobjet Layer dun calque
appel plomberie :
Sef 1aye0b = 1ayes0b.Tfem|"P1ombe1e")
372 CHAP I TRE 18
Lexemple suivant extrait tous les calques dune collection et affiche leur nom dans la
fentre de dbogage de lEditeur Visual Basic.
Comme dans la plupart des collections, les objets de la collection Layers sont indexs
partir de 1. Chaque calque de la collection est reprsent par une ligne dans la
section Calques de la page ou de la forme de base.
La proprit Index dun objet Layer indique lindice dun calque dans la collection
Layers. La proprit Row de cet objet indique la ligne correspondante de la section
Calques de la feuille de page. Ces deux valeurs sont gnralement diffrentes.
Ident if icat ion des calques auxquels une f orme est at t ribue
Utilisez la proprit LayerCount dun objet Shape pour dterminer le nombre total
de calques auxquels la forme est attribue. La proprit Layer du mme objet permet
dobtenir un calque spcifique. Par exemple, linstruction suivante obtient le
deuxime calque auquel est attribue la forme :
Consultez les proprits de lobjet Layer, comme Name, pour plus dinformations sur
ce calque.
Si la forme nest attribue aucun calque, sa proprit LayerCount renvoie 0 (zro) et
une erreur se produit si vous essayez de lire sa proprit Layer.
At t ribut ion de f ormes un calque et suppression
Pour attribuer une forme un calque, appliquez la mthode Add de lobjet Layer. Par
exemple :
Sub CefLayes |)
01m pag0b As v1s1o.Page
01m 1ayes0b As v1s1o.Layes
01m 1aye0b As v1s1o.Laye
01m 1ayehame As Sf1hg
Sef 1ayes0b = pag0b.Layes
Io Each 1aye0b Th 1ayes0b
1ayehame = 1aye0b.hame
0ebug.P1hf 1ayehame
hexf
Ehd Sub
Sef 1aye0b = shp0b.Laye|2)
1aye0b.Add shp0b, peseveMembesI1ag
CRATI ON DE DESSI NS P AR AUTOMATI SATI ON 373
Largument preserveMembersFlag doit tre diffrent de zro (True) si vous attribuez
un groupe au calque sans modifier lappartenance des formes du groupe. Sinon,
utilisez 0 (False) pour attribuer ce calque une forme, ou un groupe et chacune des
formes qui le composent.
Pour annuler lattribution dune forme un calque, appliquez la mthode Remove de
lobjet Layer. Les arguments sont les mmes pour la suppression et pour lajout dun
calque. Par exemple :
Ajout et suppression de calques dans les pages et les f ormes
de base
Pour ajouter un calque une page ou une forme de base, appliquez la mthode Add
de la collection Layers dun objet Page ou Master. Par exemple, pour ajouter un
calque nomm Plomberie une page :
Le nom du nouveau calque doit tre unique dans la page ou dans la forme de base. Si
elle russit, la mthode Add renvoie un objet Layer reprsentant le nouveau calque.
Pour supprimer un calque dune page ou dune forme de base, appliquez la mthode
Delete de lobjet Layer. Par exemple :
Largument deleteShapesFlag doit tre diffrent de zro (True) pour que les formes
attribues au calque soient supprimes. Sinon, utilisez la valeur 0 (False) pour
conserver les formes. Les attributions de forme au calque sont mises jour pour que
ces formes ne fassent plus rfrence au calque supprim.
Modif icat ion des paramt res de calque
Vous pouvez modifier les paramtres de la bote de dialogue Proprits des calques
afin de rendre un calque visible ou imprimable, de dfinir sa couleur de surbrillance,
etc.
Pour modifier les paramtres de calque depuis un programme, dfinissez les formules
des cellules contrlant ces paramtres. Pour ce faire, utilisez la proprit CellsC dun
objet Layer pour obtenir la cellule contenant le paramtre modifier, puis dfinissez
la formule de cette cellule.
1aye0b.Pemove shp0b, peseveMembesI1ag
Sef 1ayes0b = pag0b.Layes
Sef 1aye0b = 1ayes0b.Add|"P1ombe1e")
1aye0b.0e1efe de1efeShapesI1ag
374 CHAP I TRE 18
Par exemple, pour accder la cellule contenant le nom du calque, utilisez une
instruction du type :
CONSEIL : vous pouvez galement accder aux paramtres des calques via la proprit
CellsSRC dun objet Shapereprsentant une feuille de page. Pour plus dinformations,
reportez-vous au chapitre 17, Automatisation des formules .
Pour dterminer la visibilit dun calque, utilisez des instructions telles que :
Pour masquer un calque :
Les constantes visLayerName et visLayerVisible sont dfinies dans la bibliothque de
types de Visio. Pour obtenir la liste des constantes contrlant les paramtres de
calque, reportez-vous lannexe B, Indices de section, de ligne et de cellule
ShapeSheet . Pour plus dinformations sur la modification des paramtres de calque
dans Visio, recherches les mots zone des proprits de calque dans laide en ligne
fournie avec Visio.
Sef 1ayeCe110b = 1aye0b.Ce11sC|v1sLayehame)
Tf 1aye0b.Ce11sC|v1sLayev1s1b1e).Pesu1fTu = 0 Theh
fexf1.Texf = "1hv1s1b1e"
E1se
fexf1.Texf = "v1s1b1e"
Ehd Tf
Sef 1ayeCe110b = 1aye0b.Ce11sC|v1sLayev1s1b1e)
1ayeCe110b.Iomu1a = Ia1se o 0
Sommaire
19
Aut omat isat ion des connexions
dune solut ion Visio
Les dessins avec connexion ou que vous crez avec Microsoft

Visio

font partie des


types de dessin les plus utiliss. Ils illustrent souvent des relations dans un systme,
que ce soit entre les individus dune entreprise ou entre les tapes dun procd de
fabrication. Il est souvent plus simple de crer des liens en les schmatisant, puis
dutiliser le diagramme cr comme source de donnes pour ces liens. Dans le moteur
Visio, lopration de liaison des formes sappelle le collage des formes, et la relation
entre deux formes est reprsente par un objet Connect.
Ce chapitre dcrit lutilisation des objets Connect et de leurs proprits qui
permettent danalyser un dessin avec connexions. Il prsente galement les modalits
de cration de dessins avec connexions par lintermdiaire du collage de formes issues
du programme.
Utilisation dun objet Connect............................................................................... 376
Rcupration dinformations dun dessin avec connexions............................... 378
Exemples ditration dans les connexions sur une page ................................... 382
Cration dun dessin avec connexions partir dun programme...................... 384
Exemple de connexion de formes dans un diagramme de flux ........................ 389
376 CHAP I TRE 19
Ut ilisat ion dun objet Connect
Dans un dessin, une forme Visio peut tre lie ou colle une autre forme Visio. Dans
le modle dobjet Visio, cette relation est reprsente par lobjet Connect.
Objet Connect et objets de
niveau suprieur associs dans
le modle dobjet Visio
Lorsque vous avez rcupr la rfrence un objet Connect, vous pouvez savoir
quelles formes sont lies et leur mode de liaison. En rcuprant les proprits des
objets Connect sur les objets Shape, Master et Page, vous pouvez aussi analyser des
graphiques orients, comme des diagrammes de flux, ou des schmas relis, comme
des organigrammes.
La proprit Connects de lobjet Page renvoie une collection Connects contenant un
objet Connect pour chaque connexion prsente sur la page. La proprit Connects de
lobjet Master renvoie, quant elle, une collection Connects contenant un objet
Connect pour chaque connexion de la forme de base.
Lobjet Shape comporte deux proprits relies par des connexions :
Une proprit Connects qui renvoie une collection Connects contenant un objet
Connect pour chaque forme, groupe ou repre auquel cette forme est colle.
Une proprit FromConnects qui renvoie une collection Connects contenant un
objet Connect pour chaque forme, groupe ou repre coll cette forme.
Par exemple, prenons un dessin qui contient deux formes appeles A et B, et une
forme en une dimension (1D) appele C qui relie A et B.
Deux formes relies
par une forme 1D
Document
Documents
Page
Pages
ThisDocument
Shape
Shapes
Connect
Connects
Master
Masters
Documents
Pages
Shapes
Connects
Masters
A
C
B
AUTOMATI SATI ON DES CONNEXI ONS D UNE SOL UTI ON VI SI O 377
La collection Connects de la forme C contient deux objets Connect : un qui
reprsente sa connexion A et lautre qui reprsente sa connexion B. Les collections
Connects de A et de B sont vides car ces formes ne sont pas colles. En revanche, les
collections Connects renvoyes de la proprit FromConnects des formes A et B vont
contenir un objet Connect qui reprsente sa connexion issue de la forme C ; la
collection Connects renvoye de la proprit FromConnects pour la forme C sera
vide.
Prenons maintenant un dessin qui contient quatre formes appeles A, B, C et D.
Chaque forme possde une poigne de contrle colle une forme nomme E.
La collection Connects de la
forme E est vide, car elle nest pas
colle A, B, C et D : ce sont
ces formes qui sont colles la
collection. Les collections
Connects de A, B, C et D
contiennent chacune un
objet Connect.
Pour rcuprer la collection Connects de la forme A, rcuprez la proprit Connects
de cet objet Shape. Par exemple :
La collection Connects de la forme A contient un objet Connect qui reprsente la
connexion de A E. Cela est valable galement pour les collections Connects des
formes B, C et D. La collection Connects de la forme E est vide car elle nest pas colle
dautres formes : ce sont les formes qui lui sont colles.
Sef cohs0b = shp0b.Cohhecfs
E
A B C D
378 CHAP I TRE 19
Rcuprat ion dinf ormat ions dun dessin avec connexions
Un objet Connect comporte plusieurs proprits qui renvoient des informations sur
la connexion quil reprsente. Vous pouvez dterminer les formes connectes et les
parties de forme, par exemple le sommet ou le ct dune forme.
Dt erminat ion des f ormes relies
Les proprits FromSheet et ToSheet font rfrence aux objets Shape qui
reprsentent les formes connectes. La forme est dfinie de manire interne dans une
feuille de calcul semblable celle affiche dans une fentre ShapeSheet

. Ces
proprits tirent leurs noms de cette feuille de calcul interne.
FromSheet renvoie la forme dorigine de la connexion et ToSheet la forme avec
laquelle la connexion est effectue. Prenons, par exemple, un dessin qui contient deux
formes nommes Cadre et Poste, et supposons que cette dernire est colle la forme
Cadre. La collection Connects de la forme Poste contient un objet Connect dont la
proprit FromSheet renvoie Poste et dont la proprit ToSheet renvoie Cadre.
Pour savoir quelles formes sont colles une forme spcifique, utilisez la proprit
FromConnects qui renvoie sa collection Connects. La proprit FromSheet de
chaque objet Connect de la collection identifie les formes auxquelles la forme est
colle. Pour reprendre lexemple des quatre formes A, B, C et D, chacune tant colle
E, la proprit FromSheet de chaque objet Connect renvoy de la proprit
FromConnects de E fait rfrence A, B, C et D.
CONSEIL : lors de lutilisation des objets Connect situs dans une collection renvoye par
la proprit Connects dune forme, il convient gnralement de rechercher les formes
auxquelles une forme est relie. Cest la proprit ToSheet de chaque objet Connect qui
fournit ces informations, la proprit FromSheet restant toujours la mme.
Lors de lutilisation des objets Connect situs dans une collection renvoye par la
proprit FromConnectsdune forme, les formes les plus intressantes sont gnralement
celles relies une autre forme. Dans ce cas, cest la proprit FromSheet de chaque objet
Connect qui fournit ces informations, la proprit ToSheet restant toujours la mme.
AUTOMATI SATI ON DES CONNEXI ONS D UNE SOL UTI ON VI SI O 379
Dt erminat ion des part ies connect es des f ormes
Les proprits FromPart et ToPart renvoient des constantes entires qui identifient
lemplacement gnral dune connexion sur une forme. FromPart identifie la partie
de la forme do provient une connexion tandis que ToPart identifie la partie de la
forme cible de la connexion. Les constantes des valeurs FromPart et ToPart valides
sont dfinies dans la bibliothque de types Visio.
Lillustration suivante indique les valeurs FromPart et ToPart renvoyes pour
indiquer les parties concernes par les connexions classiques dun dessin.
Val eurs FromPart et ToPart pour l es
connexi ons cl assi ques d un dessi n
A visGuideX
B visGuideY
C visLeftEdge
D visControlPoint+n
E visConnectionPoint+n
F visBegin
G visEnd
A
C
B
D
E
F
G
380 CHAP I TRE 19
Le tableau suivant rpertorie les connexions entre les formes et les constantes des
valeurs renvoyes par les proprits FromPart et ToPart des formes de lillustration
prcdente.
Une forme pouvant avoir plusieurs poignes de contrle, visControlPoint est une
base qui reprsente la premire poigne de contrle dfinie pour une forme. Si la
valeur renvoye par FromPart est suprieure visControlPoint, elle reprsente la
(n+1)ime poigne de contrle de cette forme (pour obtenir n, soustraire
visControlPoint de la valeur renvoye par FromPart). Cela est valable aussi pour
visConnectionPoint : si la valeur renvoye par ToPart est suprieure
visConnectionPoint, elle reprsente le (n+1)ime point de connexion.
Lopration de collage une poigne de slection, un sommet ou un emplacement
dune forme cre automatiquement un point de connexion ; aucune constante nest
donc dfinie pour ces lments. Pour obtenir des informations sur les parties dune
forme pouvant tre colles, reportez-vous Elments dorigine et de destination
dun collage , page 385 de ce chapitre.
Rcuprat ion des cellules dune connexion
Les proprits FromCell et ToCell dun objet Connect font rfrence des objets Cell
qui reprsentent les cellules ShapeSheet concernes par une connexion. Vous pouvez
rcuprer ou paramtrer la formule dune cellule, son rsultat ou toute autre
proprit de lobjet Cell et lutiliser comme vous le feriez pour toute autre objet Cell,
par exemple sous la forme dun argument pour la mthode GlueTo.
Constantes FromPart et ToPart pour les connexions
Connexion FromPart ToPart
Poigne de contrle colle un
point de connexion, un repre ou
un point de repre
visControlPoint + n visConnectionPoint + n
visGuideX
visGuideY
Forme 1D colle un point de
connexion
visBegin
visEnd
visConnectionPoint + n
Forme 2D colle un repre ou
un point de repre
visRightEdge
visLeftEdge
visTopEdge
visBottomEdge
visMiddleEdge
visCenterEdge
visGuideX
visGuideY
Forme 1D colle un repre ou
un point de repre
visBeginX
visEndX
visBeginY
visEndY
visGuideX
visGuideY
Forme 1D colle en mode
dynamique une forme
visBegin
visEnd
visWholeShape
AUTOMATI SATI ON DES CONNEXI ONS D UNE SOL UTI ON VI SI O 381
Inst ruct ions danalyse dun dessin avec connexions
Lorsque vous tracez un dessin comportant des connexions, retenez les lments
suivants :
Prenez connaissance des types des formes contenues dans le dessin.
Par exemple, le dessin utilise-t-il des formes 1D comme liens entre les formes 2D
ou les poignes de contrle 2D permettent-elles de tracer des lignes dune forme
une autre ? Les lignes figurent-elles toutes entre les occurrences dune forme de
base lien ou certaines sont-elles dessines avec loutil Trait ?
Sachez que les donnes de connexion runies partir dun dessin peuvent avoir des
connexions diffrentes de leur apparence lcran.
Par exemple, les formes ont sur la page un ordre dempilage qui peut avoir une
incidence sur llment auquel la forme est colle. Si lutilisateur colle plusieurs
formes sur le mme point dune autre forme, certaines formes peuvent, comme
lindique la figure suivante, tre colles dautres formes au lieu de la forme
prvue.
Lordre dempilage des formes peut
avoir une incidence sur leurs
connexions.
A Si la rsistance tait colle en premier, elle serait colle au repre.
B Cette diode peut tre colle au repre ou la rsistance.
Prenez en considration lorientation du schma ; dans un graphique orient
comme un diagramme de flux, les parties des formes qui sont colles peuvent ne
pas correspondre aux orientations indiques visuellement.
Par exemple, vous pouvez coller le point de dpart ou le point de fin dune
forme 1D une autre forme et formater le point de dpart ou le point de fin avec
une pointe de flche. Si vous considrez que, sur un dessin, une pointe de flche
indique le point de fin dune forme 1D, vous nobtenez pas ncessairement une
analyse prcise du dessin.
A
B
382 CHAP I TRE 19
Exemples dit rat ion dans les connexions sur une page
La macro ShowPageConnections ci-dessous effectue une itration dans les objets
Connect situs sur la premire page du document actif Visio. Pour chaque objet
Connect, ShowPageConnections extrait les formes relies (FromSheet et ToSheet) et
la partie de chaque forme qui est relie (FromPart et ToPart). A laide des constantes
issues de la bibliothque de types Visio, elle compare ensuite les valeurs de FromPart
et de ToPart chaque valeur possible et affiche, dans la zone de liste dun formulaire
utilisateur, la chane correspondante, ainsi que les autres donnes pour la connexion.
Sub ShoWPageCohhecf1ohs |)
01m pags0b As v1s1o.Pages Co11ecf1oh de Page du documehf
01m pag0b As v1s1o.Page Page de fava11
01m fom0b As v1s1o.Shape 0bef de dpaf de 1a cohhex1oh
01m fo0b As v1s1o.Shap 0bef de desf1haf1oh de 1a cohhex1oh
01m cohs0b As v1s1o.Cohhecfs Co11ecf1oh Cohhecfs
01m coh0b As v1s1o.Cohhecf 0bef Cohhecf de 1a co11ecf1oh
01m fom0afa As Thfege Type de cohhex1oh de dpaf
01m fomSf As Sf1hg Cha1he cohfehahf 1a desc1pf1oh de
1a cohhex1oh de dpaf
01m fo0afa As Thfege Type de cohhex1oh d`a1ve
01m foSf As Sf1hg Cha1he cohfehahf 1a desc1pf1oh 1a
cohhex1oh de desf1haf1oh
L1e 1a co11ecf1oh Pages du documehf
hofez 1`uf111saf1oh de Th1s0ocumehf pou se fe au documehf
couahf
Sef pags0b = Th1s0ocumehf.Pages
L1e uhe fehce dahs 1a pem1e page de 1a co11ecf1oh
Sef pag0b = pags0b|1)
11e 1a co11ecf1oh Cohhecfs de 1a page
Sef cohs0b = pag0b.Cohhecfs
v1de 1a zohe de 11sfe
useIom1.L1sfox1.C1ea
ouc1e pou passe eh evue 1a co11ecf1oh Cohhecfs
Io Each coh0b Th cohs0b
L1e 1`obef Cohhecf couahf dahs 1a co11ecf1oh
Sef coh0b = cohs0b|cuCohhThdx)
L1e 1`1hfomaf1oh Iom
Sef fom0b = coh0b.IomSheef
fom0afa = coh0b.IomPaf
L1e 1`1hfomaf1oh To
Sef fo0b = coh0b.ToSheef
fo0afa = coh0b.ToPaf
Avec fom0afa dfem1he 1e fype de cohhex1oh
Tf fom0afa = v1sCohhecfEo Theh
fomSf = "eo"
E1seTf fom0afa = v1shohe Theh
fomSf = "hohe"
AUTOMATI SATI ON DES CONNEXI ONS D UNE SOL UTI ON VI SI O 383
Exemple de code (suite)
Tesfe fom0afa pou v1sP1ghfEdge,v1soffomEdge,v1sM1dd1eEdge,
v1sTopEdge,v1sLeffEdge,v1sCehfeEdge, v1seg1hX, v1seg1hY,
v1seg1h, v1sEhdX, v1sEhdY,v1sEhd
E1seTf fom0afa >= v1sCohfo1Po1hf Theh
fomSf = "cohfo1Pf" & CSf|fom0afa - v1sCohfo1Po1hf + 1)
E1se
fomSf = "???"
Ehd Tf
Avec fo0afa dfem1he 1e fype de fome auque1 1e 11eh esf
cohhecf
Tf fo0afa = v1sCohhecfEo Theh
foSf = "eo"
E1seTf fo0afa = v1shohe Theh
foSf = "hohe"
E1seTf fo0afa = v1sCu1deX Theh
foSf = "gu1deX"
E1seTf fo0afa = v1sCu1deY Theh
foSf = "gu1deY"
E1seTf fo0afa >= v1sCohhecf1ohPo1hf Theh
foSf = "cohhecfPf" & CSf|fo0afa - v1sCohhecf1ohPo1hf + 1)
E1se
foSf = "???"
Ehd Tf
Aoufe 1`1hfomaf1oh dahs 1a zohe de 11sfe
useIom1.L1sfox1.AddTfem "dpaf " & fom0b.hame & " "
& fomSf & " desf1haf1oh " & fo0b.hame & " " & foSf
hexf
useIom1.ShoW
Ehd Sub
384 CHAP I TRE 19
Crat ion dun dessin avec connexions part ir dun programme
Pour crer un dessin avec connexions partir dun programme, vous insrez des
formes de base sur une page de dessin, puis collez ces formes. Le collage est une
opration o lorientation est un facteur important ; il est donc indispensable de
connatre les deux lments de chaque collage. Une fois que les formes sont colles,
vous pouvez dplacer une forme laquelle dautres formes sont colles sans rompre
leurs connexions, mais la rciproque nest pas vraie. Cela reste valable si vous dplacez
les formes depuis un programme ou dans une fentre de dessin Visio. Prenons, par
exemple, une ligne colle un rectangle. Le dplacement du rectangle ne rompt pas la
connexion, la ligne reste colle au rectangle et stire en consquence. En revanche, le
dplacement de la ligne rompt la connexion.
Ce dessin montre le dplacement
des formes lies. La ligne est colle
au rectangle (A). Si vous dplacez
le rectangle (B), ces formes restent
lies. Si vous dplacez la ligne (C),
la connexion est rompue.
Pour coller des f ormes part ir dun programme :
1 Choisissez la forme coller une autre forme, dterminez cette autre forme et
choisissez lemplacement de liaison.
2 Rcuprez un objet Cell qui reprsente la partie de la forme (comme un point de
fin, un point de contrle ou un bord de la forme) sur laquelle vous souhaitez
effectuer le collage.
3 Utilisez la mthode GlueTo pour spcifier la partie de lautre forme (comme un
point de connexion, un sommet ou une poigne de slection) ou la mthode
GlueToPos pour spcifier un emplacement visant crer la connexion entre les
formes.
A B C
AUTOMATI SATI ON DES CONNEXI ONS D UNE SOL UTI ON VI SI O 385
Elment s dorigine et de dest inat ion dun collage
Seules certaines parties dune forme peuvent tre colles. Par exemple, un point de fin
dune forme 1D ou une poigne de contrle dune forme 2D peut tre colle un
point de connexion, mais le ct dune forme 2D peut seulement tre coll un
repre ou un point de repre.
Le moyen le plus simple de coller un objet un autre consiste utiliser une forme de
base avec une poigne de contrle qui tend une ligne que vous pouvez coller lautre
forme. Lillustration suivante contient, par exemple, la forme de base Poste issue du
gabarit Organigrammes (Formes dorganigramme.vss). La poigne de contrle situe
dans la partie suprieure de cette forme de base peut tre colle une autre forme. La
forme de base comporte aussi quatre points de connexion nomms ainsi que des
emplacements sur lesquels dautres formes peuvent tre colles. Les rfrences de
cellule utiliser pour coller ces emplacements figurent dans lillustration suivante.
Rfrences de cellule pour la
poigne de contrle et les points de
connexion sur la forme de base
Poste
A Connections.haut
B Connections.gauche
C Connections.droite
D Connections.bas
E Connections.X1
Les poignes de contrle fonctionnent pour de nombreux types de diagramme li. En
revanche, si vous nutilisez pas de poignes de contrle dans cet objectif, vous pouvez,
la place, utiliser des formes 1D. Collez le point de dpart et le point de fin de chaque
forme 1D entre deux formes 2D, comme lindique lillustration suivante.
Rfrences de cellule pour les
points de dpart et de fin dune
forme 1D
A DpartX ou DpartY
B FinX ou FinY
A
B C
D
E
A B
386 CHAP I TRE 19
Collage sur la partie dune forme reprsente par deux cellules
De nombreux points sur une forme, les poignes de contrle, les points de connexion,
les points de fin, les sommets gomtriques, etc. sont spcifis par deux cellules
ShapeSheet

, une pour chacune des coordonnes x,y du point. Chaque fois que vous
effectuez un collage sur la partie de la forme reprsente par une paire de cellules,
vous pouvez spcifier lune de ces cellules. Par exemple, pour indiquer la premire
poigne de contrle de la forme Poste, vous pouvez spcifier Points de contrle.X1 ou
Points de contrle.Y1.
Le tableau suivant rpertorie les cellules ShapeSheet qui reprsentent les parties dune
forme susceptibles de faire lobjet de collages.
Collage une poigne de slection
Une cellule dalignement correspond la poigne de slection situe au milieu de la
partie spcifie de la forme. Par exemple, AlignHaut correspond la poigne de
slection situe au milieu du bord suprieur de la forme. Dans un programme, le
collage une cellule dalignement revient effectuer un collage sur la poigne de
slection correspondante de la forme dans une fentre de dessin.
Vous neffectuez pas rellement le collage sur la poigne de slection elle-mme, mais
vous utilisez la poigne de slection pour crer un point de connexion cet
emplacement de la forme. Cela reste toujours valable, que vous colliez les formes
partir dun programme ou dans une fentre de dessin Visio. Une ligne est ajoute la
section Points de connexion de la forme pour reprsenter le nouveau point de
connexion.
Cellules types pour le collage des parties dune forme
Elment coller Cellule rcuprer
Cellule de destination dune autre
forme
Point de dpart
ou de fin d une
forme 1D
DpartX ou DpartY, FinX ou
FinY
Connections.Xn ou Connections.Yn
Gomtrie.Xn ou Gomtrie.Yn
AlignGauche, AlignCentre,
AlignDroite, AlignHhaut, AlignM ilieu
ou AlignBas
AxeX ou AxeY ( coller en mode
dynamique)
Poigne de
contrle
Points de contrle.Xn ou
Points de contrle.Yn, n tant
le numro de ligne de cette
poigne de contrle
Connections.Xn ou Connections.Yn
Gomtrie.Xn ou Gomtrie.Yn
AlignGauche, AlignCentre,
AlignDroite, AlignHhaut, AlignM ilieu
ou AlignBas
AxeX ou AxeY ( coller en mode
dynamique)
Bord d une
forme
AlignGauche, AlignCentre,
AlignDroite, AlignHaut,
AlignM ilieu ou AlignBas
Toute cellule Repre
AUTOMATI SATI ON DES CONNEXI ONS D UNE SOL UTI ON VI SI O 387
Collage un repre ou un point de repre
Un repre est une ligne non imprimable pouvant tre dplace dans la fentre de
dessin Visio depuis la rgle et servant aligner des formes. Vous pouvez coller des
formes un repre, puis dplacer le repre et les formes qui lui sont lies. Lorsque
vous collez une forme 1D un repre, vous pouvez indiquer toute cellule du repre.
Par exemple :
Collage avec des objet s Cell
Une fois que vous avez choisi la partie de la forme coller lautre forme, rcuprez
lobjet Cell qui reprsente cette partie de la forme. Pour rcuprer cet objet, rcuprez
la proprit Cells de lobjet Shape et indiquez un nom cellule. Par exemple,
linstruction suivante rcupre un objet Cell qui reprsente la coordonne x de la
premire poigne de contrle de la forme reprsente par shpObj1 :
Si, sur une forme, un point est reprsent par deux cellules, vous pouvez nindiquer
quune seule cellule, quelle quelle soit. Dans lexemple ci-dessus, Points de
contrle.Y1 fonctionne aussi correctement.
Pour plus dinformations sur lutilisation des objets Cell, reportez-vous au
chapitre 17, Automatisation des formules .
Collage dune f orme une aut re f orme
Pour coller une forme une autre, vous pouvez utiliser la mthode GlueTo ou
GlueToPos dun objet Cell. Avec la mthode GlueTo, spcifiez une rfrence de
cellule une partie de lautre forme ; la mthode dfinit ensuite la formule de lobjet
Cell en fonction de la rfrence cette cellule. Avec la mthode GlueToPos, indiquez
deux valeurs proportionnelles du plan largeur-hauteur de lautre forme. La mthode
GlueTo ou GlueToPos cre un point de connexion sur cette partie de la forme ou cet
emplacement.
Par exemple, la formulation suivante utilise GlueTo pour coller la partie dune forme
reprsente par celObj, la poigne de contrle de lillustration, la forme reprsente
par shpObj2, au quatrime point de connexion de cette forme, lequel a t renomm
plus explicitement, cest--dire Connections.bas.
10Shp.Ce11s|"0pafX").C1ueTo Cu1deShp.Ce11s|"AxeX")
20Shp.Ce11s|"A11ghCauche").C1ueTo Cu1deShp.Ce11s|"AxeX")
Sef ce10b = shp0b1.Ce11s|"Po1hfs de cohf1e.X1")
ce10b.C1ueTo shp0b2.Ce11s|"Cohhecf1ohs.bas")
388 CHAP I TRE 19
Collage laide de la mthode
GlueTo dune poigne de contrle
un point de connexion
.
A celObj reprsente la poigne de contrle Points de contrle.X1 de shpObj1.
B celObj.GlueTo shpObj2.Cells ( Connections.bas ) colle la poigne de contrle de shpObj1 au
point de connexion de shpObj2 qui a t nomm bas .
Linstruction suivante utilise GlueToPos pour coller la mme forme au centre de
shpObj2, crant un nouveau point de connexion cet emplacement. Lemplacement
est spcifi sous la forme de valeurs proportionnelles du plan largeur-hauteur de la
forme, et non sous la forme de coordonnes x,y. Pour crer un point de connexion
hors de ce plan, utilisez des fractions du plan ngatives ou suprieures 1.
Collage avec la mthode
GlueToPos dune poigne de
contrle un emplacement
A celObj reprsente la poigne de contrle Points de contrle.X1 de shpObj1.
B GlueToPos (shpObj2,.5,.5) colle la poigne de contrle de shpObj1 au centre de shpObj2.
REMARQUE : pour coller la forme de manire dynamique, utilisez la mthode GlueTo
avec la cellule AxeX ou AxeY comme cellule de destination du collage. Le collage sur AxeX
indique une prfrence de dplacement horizontal alors que le collage sur AxeY indique
une prfrence de dplacement vertical. Toutes les autres rfrences de cellule seront par
dfaut paramtres sur le collage statique. Pour plus dinformations sur les collages
statique et dynamique, effectuez une recherche dans laide en ligne livre avec Visio.
ce10b.C1ueToPos shp0b2, .S, .S
B
A
B
A
AUTOMATI SATI ON DES CONNEXI ONS D UNE SOL UTI ON VI SI O 389
Exemple de connexion de f ormes dans un diagramme de f lux
Le programme Microsoft

Visual Basic

pour Applications (VBA) permet de dessiner


sur la page de dessin Visio un diagramme de flux simple daprs les donnes contenues
dans un tableau transmis cette procdure sous la forme dun argument. Le tableau est
en deux dimensions ; le premier lment contient le nom de la forme de base et le
second, le texte de la forme. Avant de crer le diagramme de flux, la procdure lit les
donnes du tableau et les affiche dans la fentre Excution de lEditeur Visual Basic.
Diagramme de flux cr par
CreateFlowchart
Pub11c Sub CeafeI1oWchaf|aI1oWChaf |) As Sf1hg)
01m vPevShape As v1s1o.Shape Iome d`ou paf Ta cohhex1oh {Iom)
01m vhexfShape As v1s1o.Shape Iome ou a1ve Ta cohhex1oh {fo))
01m vCohhecfo As v1s1o.Shape Iome epsehfahf Ta cohhex1oh
01m vI1oWChafMasfe As v1s1o.Masfe Rfehce a Ta fome de base
0gah1gamme
01m vCohhecfoMasfe As v1s1o.Masfe Rfehce a Ta fome de base L1eh
01m vSfehc11 As v1s1o.0ocumehf Caba1f cohfehahf Tes fomes de base
01m db1XLocaf1oh As 0oub1e LocaT1saf1oh de AxeX de Ta fome de
base
01m db1YLocaf1oh As 0oub1e LocaT1saf1oh de AxeY de Ta fome de
base
01m bCe11 As v1s1o.Ce11 CeTTuTe 0paf du L1eh
01m eCe11 As v1s1o.Ce11 CeTTuTe I1h du L1eh
01m 1Couhf As Thfege
Dbut du
processus
demprunt
Vrif.
crdit ?
Vrification
du crdit
Envoi du
refus
Fin du
processus
390 CHAP I TRE 19
Exemple de code (suite)
0h Eo CoTo ehahd1e
Th1f1a11se 1a pos1f1oh X, Y qu1 sea passe a 1a mfhode 0op
db1XLocaf1oh = 4.2S
db1YLocaf1oh = 10.S
Tmp1me fab1eau dahs 1a fehfe Excuf1oh
Io 1Couhf = Louhd|aI1oW0afa) To uouhd|aI1oW0afa)
0ebug.P1hf aI1oW0afa|1Couhf, 0) & " " aI1oW0afa|1Couhf, 1)
hexf
0uv1 1e gaba1f ogah1gamme
Sef vSfehc11 = App11caf1oh.0ocumehfs.0pehEx
|"as1c I1oWchaf Shapes.vss", v1s0peh0ocked)
`Aoufe uhe fome au dess1h pou chaque 1mehf du fab1eau
Io 1Couhf = Louhd|aI1oW0afa) To uouhd|aI1oW0afa)
L1e 1a fome de base su 1a base de Masfehame dahs 1e fab1eau des
dohhes.
Sef vI1oWChafMasfe = vSfehc11.Masfes|aI1oW0afa|1Couhf, 0))
Aoufe 1a fome a 1a page
Sef vhexfShape = Acf1vePage.0op|vI1oWChafMasfe, db1XLocaf1oh,
db1YLocaf1oh)
0f1h1 1e fexfe de 1a fome dpose
vhexfShape.Texf = aI1oW0afa|1Couhf, 1)
Se cohhecfe a 1a fome d`o1g1he dpose, s1 hcessa1e
Tf hof vPevShape Ts hofh1hg Theh
L1e 1a fome de base L1eh, s1 hcessa1e
Tf vCohhecfoMasfe Ts hofh1hg Theh
Sef vCohhecfoMasfe = vSfehc11.Masfes|"L1eh")
Ehd Tf
Aoufe 1e 11eh a 1a page |peu 1mpofe o pou cef exemp1e)
Sef vCohhecfo = Acf1vePage.0op|vCohhecfoMasfe, 0, 0)
Cohhecfe 1e po1hf de dpaf
Sef bCe11 = vCohhecfo.Ce11s|"0pafX")
bCe11.C1ueTo vPevShape.Ce11s|"A11ghas")
Cohhecfe 1e po1hf de f1h
Sef eCe11 = vCohhecfo.Ce11s|"I1hX")
eCe11.C1ueTo vhexfShape.Ce11s|"A11ghhauf")
vCohhecfo.SehdToack
Ehd Tf
Sef vPevShape = vhexfShape
Sef vhexfShape = hofh1hg
0f1h1 1a pos1f1oh Y de 1a fome d`a1ve
db1YLocaf1oh = db1YLocaf1oh - 1.S
hexf
Ex1f Sub
ehahd1e:
0ebug.P1hf Eo
Ehd Sub
Sommaire
20
Int grat ion de donnes et dune
solut ion Visio
Si vous dveloppez une solution qui combine des dessins Microsoft

Visio

avec une
autre source de donnes, comme une base de donnes, vous serez intress par
diffrents moyens dassocier des donnes des formes et des pages. A laide des
proprits personnalises et des cellules ShapeSheet

dfinies par lutilisateur, vous


pouvez associer des donnes une forme ; lutilisation dun ID unique permet
dtablir une liaison permanente entre une forme et des donnes externes qui lui sont
associes. Vous pouvez en outre, laide dune grande varit de proprits Visio,
stocker des donnes pour des documents, des pages, des formes de base, des
raccourcis, des formes et du texte.
Ce chapitre contient galement deux exemples de code concernant lextraction des
donnes dun dessin et la cration dun dessin partir de donnes externes. Ces
exemples reprsentent les deux moyens les plus utiliss par les dveloppeurs de
solution qui travaillent avec Visio et avec des donnes issues dautres applications. Les
deux exemples prsentent quelques approches gnrales concernant lintgration de
donnes et dune solution Visio, et sont prvus pour vous donner un aperu de
lensemble des solutions quil est possible de crer.
Association de donnes avec des formes laide dAutomation....................... 392
Proprits Visio pour le stockage et lextraction des donnes........................... 395
Ecriture de code pour lextraction des donnes dun dessin Visio.................... 396
Ecriture de code pour la cration dun dessin Visio partir de donnes.......... 401
Intgration dune solution Visio et dune base de donnes ............................... 406
392 CHAP I TRE 20
Associat ion de donnes avec des f ormes laide dAut omat ion
Vous pouvez crer des proprits personnalises, ou rcuprer et paramtrer des
valeurs de proprits personnalises exclusivement partir dun programme ; vous
pouvez galement collecter des valeurs fournies par lutilisateur de la solution Visio.
Vous pouvez, par exemple, fournir des formes de base qui invitent lutilisateur
remplir certaines donnes lorsquune forme de base est insre dans un dessin, puis
utiliser un programme pour rassembler ces donnes partir des dessins de
lutilisateur. Pour tablir des liaisons permanentes entres les donnes dun dessin et
une source de donnes externe, vous pouvez utiliser des ID uniques associs aux
formes et aux formes de base.
Pour plus dinformations sur la cration de cellules dfinies par lutilisateur et de
proprits personnalises, reportez-vous au chapitre 7, Amlioration du
comportement des formes .
Ajout de lignes de proprit s personnalises et df inies par
lut ilisat eur
Les proprits personnalises servent associer les champs dune base de donnes
une forme ou une page et peuvent surtout savrer pratiques si vous envisagez de
collecter des valeurs saisies par un utilisateur. Vous pouvez, par exemple, crer une
forme de base qui invite lutilisateur saisir des donnes lorsquune forme est
dplace sur la page, puis utiliser le programme Microsoft

Visual Basic

pour
Applications (VBA) pour rassembler les donnes saisies partir du dessin termin.
Dans les lignes dfinies par lutilisateur, les cellules Valeur et Message permettent de
stocker une valeur et de la retrouver ultrieurement dans le mme tat. Comme vous
pouvez associer des noms uniques des lignes dfinies par lutilisateur, il est peu
vraisemblable que dautres programmes connaissent lexistence des cellules de ces
lignes, et encore moins quils tentent dcrire dans ces cellules. Les cellules Montage,
au contraire, sont susceptibles de servir dans de nombreux programmes ; les valeurs
stockes dans ces cellules peuvent donc tre remplaces lorsque vous vous y attendez
le moins.
A laide de la mthode AddNamedRow, vous pouvez ajouter une ligne de proprit
personnalise ou dfinie par lutilisateur dans un objet Shape. Si la section Proprits
personnalises ou Cellules personnalises nexiste pas, la mthode AddNamedRow
lajoute la feuille de calcul ShapeSheet

. Par exemple, pour ajouter une forme une


ligne dfinie par lutilisateur nomme Latitude :
Ce code correspond linsertion dune section Cellules personnalises dans la feuille
de calcul ShapeSheet et au remplacement du nom par dfaut Util.Ligne1 par
Util.Latitude.
shp0b.AddhamedPoW v1sSecf1ohuse, "Laf1fude", 0
I NTGRATI ON DE DONNES ET D UNE SOL UTI ON VI SI O 393
Pour rcuprer la cellule Valeur de la nouvelle ligne Latitude :
Une fois que vous disposez de la rfrence lobjet Cell qui est la cellule Valeur, vous
pouvez utiliser la proprit Formula de cet objet Cell pour rcuprer ou paramtrer
des valeurs. Par exemple :
Vous pouvez utiliser la mme technique pour grer les lignes de proprits
personnalises depuis votre programme.
Pour plus dinformations sur la mthode AddNamedRow, reportez-vous
lAnnexe B, Indices de section, de ligne et de cellule ShapeSheet et laide en ligne
Rfrence du dveloppeur (choisissez ? (Aide) > Rfrence du dveloppeur) fournie
avec Visio.
Gnrat ion et ut ilisat ion dID uniques
Les formes et les formes de base peuvent avoir des ID uniques que vous pouvez
utiliser pour distinguer des formes identiques dans un dessin ou pour effectuer le
suivi de la source originale dune forme de base. Les solutions de base de donnes plus
labores utilisent gnralement des ID uniques pour crer une liaison permanente
entre une forme ou une forme de base et un enregistrement dans une base de donnes
externe. Les ID uniques permettent aux applications de relier des donnes aux formes
de manire plus fiable quavec les noms de formes et les ID. Les applications de base
de donnes pouvant utiliser des ID uniques incluent celles relatives lamnagement,
aux systmes dinformation gographique et aux assemblages mcaniques, dans
lesquelles les formes prsentes dans un dessin sont associes aux diffrents
enregistrements dune base de donnes.
LID unique est stock en interne sous la forme dune valeur code sur 128 bits et est
transmis sous la forme dune chane de 39 caractres zro terminal, format comme
dans lexemple suivant :
Sef ce10b = shp0b.Ce11s|"uf11.Laf1fude")
ce10b.Iomu1a = """4"""
{2270C42-167-11CE-E9-0020AI000917}
394 CHAP I TRE 20
REMARQUE : si une forme dispose dun ID unique, aucune autre forme du mme
document ne doit normalement disposer de cet ID. Tout comme OLE garantit des ID
dobjet uniques, le moteur Visio utilise la mme technologie pour gnrer des ID uniques
et les utiliser une seule fois.
Toutefois, dans certaines circonstances, il est possible de dupliquer un ID unique. Si vous
copiez un fichier de dessin ou lenregistrez sous un nom de fichier diffrent, toutes ses
formes et leurs ID uniques associs sont copis. Si vous coupez par la suite une forme issue
du nouveau fichier et la collez dans loriginal, le fichier original contient deux formes avec
des ID uniques identiques. Pour garantir des ID uniques aprs avoir copi un fichier,
supprimez tous les ID uniques de lun des fichiers et rgnrez-les.
ID uniques pour les formes
Par dfaut, les formes nont pas dID uniques, cest le programme qui doit les gnrer.
Pour gnrer lID unique dune forme, utilisez la mthode UniqueID dun objet
Shape. Par exemple :
Si la forme a dj un ID unique, cette instruction rcupre lID ; si elle nen a pas,
linstruction le cre.
Pour savoir si une forme a un ID unique, utilisez linstruction suivante. Si elle nen a
pas, cette formulation renvoie une chane Null ("").
Pour supprimer lID unique dune forme, utilisez linstruction suivante :
Certaines oprations provoquent la suppression automatique de lID unique de la
forme par le moteur Visio. Si vous coupez une forme pour la placer dans le
Presse-papiers Windows et la collez une fois, ou si vous dplacez une forme dans une
autre fentre de dessin, son ID unique est conserv. En revanche, si vous collez une
deuxime fois la mme forme stocke dans le Presse-papiers ou dupliquez la forme en
maintenant la touche Ctrl enfonce et en effectuant le dplacement, la nouvelle forme
naura pas dID unique.
T0Sf1hg = shp0b.uh1queT0|v1sCef0MakeCuT0)
T0Sf1hg = shp0b.uh1queT0|v1sCefCuT0)
shp0b.uh1queT0 v1s0e1efeCuT0
I NTGRATI ON DE DONNES ET D UNE SOL UTI ON VI SI O 395
Proprits UniqueID et BaseID des formes de base
Une forme de base comporte la fois une proprit UniqueID et une proprit
BaseID ; les deux sont automatiquement gnres par le moteur Visio lorsquune
nouvelle forme de base est cre.
La proprit UniqueID dune forme de base ne peut pas tre supprime ou attribue
nouveau ; elle change seulement lorsque vous modifiez la forme de base ou attribuez
une nouvelle BaseID. La proprit BaseID dune forme de base ne change pas la
suite dune opration utilisateur ; elle permet dtablir un lien avec la forme de base
originale, laquelle est permanente, contrairement au nom dune forme de base ou
une proprit UniqueID. Les proprits BaseID peuvent tre modifies par deux
proprits : BaseID et NewBaseID. Pour plus dinformations, effectuez une recherche
dans laide en ligne Rfrence du dveloppeur (choisissez ? (Aide) > Rfrence du
dveloppeur) fournie avec Visio.
Vous pouvez transmettre un ID unique sous la forme dun argument dans la mthode
Item dune collection Shapes ou Masters. Par exemple :
Proprit s Visio pour le st ockage et lext ract ion des donnes
Cette section contient des informations sur lutilisation de proprits pour le stockage
des donnes dun dessin Visio. Le tableau suivant rpertorie les proprits les plus
frquentes qui renvoient des chanes et indique pour chaque chane sa taille
maximale.
Sef shp0b = shps0b.Tfem|""{2270C42-167-11CE-E9-0020AI000917}")
Extraction et stockage des proprits de texte
Proprit
Elment auquel sapplique
la proprit dobjet Taille maximale
Title, Subject, Author, Manager,
Company, Category, Keywords,
Description, HyperlinkBase,
AlternateName
Document 63 caractres
Data1, Data2, Data3 Shape I llimite
Formula Cell I llimite
FullName Document 255 caractres
Name Document 255 caractres
Name Layer, Master, Shortcut, Page,
Shape, Style
31 caractres
NameID Shape 36 caractres
Path Document 255 caractres
396 CHAP I TRE 20
Le moteur Visio renvoie la fois des nombres rels et des entiers sous la forme de
nombres virgule flottante avec 15 chiffres significatifs. Pour rduire le risque
derreur darrondi, attribuez des nombres aux variables Variant ou Double et stockez
les nombres dans des champs avec le type de donnes appropri.
Les proprits True/false comme ReadOnly, Saved ou OneD et les valeurs
boolennes contenues dans les cellules ShapeSheet

ont la valeur FALSE si elles sont


gales 0 et TRUE si elles sont diffrentes de zro.
Ecrit ure de code pour lext ract ion des donnes dun dessin Visio
Dans les dessins Visio, les formes contiennent de nombreuses informations. A laide
dAutomation, vous pouvez crire des programmes qui extraient ces informations du
dessin Visio pour les utiliser dans une autre application. Vous pouvez, par exemple,
utiliser les formes dun dessin pour gnrer automatiquement des bons de
commande. De mme, vous pouvez extraire les informations des formes contenues
dans un diagramme de flux pour les placer dans une feuille de calcul afin destimer les
cots associs un procd de fabrication. Vous pouvez aussi extraire des
informations sur des types de donnes dans une solution, et viter toute modification
des donnes dun dessin en enregistrant une copie des donnes dans un fichier
externe.
Quelle que soit la manire dont vous envisagez dutiliser les donnes extraites du
dessin, le processus de base pour les rassembler est toujours le mme. Le code
prsent dans cet exemple met en vidence le regroupement des donnes dun dessin
Visio ; les oprations que vous effectuez sur ces donnes dpendent du mode
dinteraction du programme avec les autres applications.
Prompt Master, Shortcut 255 caractres
Text Shape, Characters I llimite
UniqueID Master, Shortcut, Shape 39 caractres
Extraction et stockage des proprits de texte (suite)
Proprit
Elment auquel sapplique
la proprit dobjet Taille maximale
I NTGRATI ON DE DONNES ET D UNE SOL UTI ON VI SI O 397
Exemple dext ract ion de donnes dun dessin
Supposons que vous souhaitiez crire une application qui collecte dans un dessin les
informations relatives aux composants dun rseau afin que lutilisateur puisse
gnrer des bons de commande. Le commercial et le client pourraient collaborer sur
un dessin qui reprsente un nouveau systme de rseau, comme celui reprsent
ci-dessous.
Dessin Visio do sont extraites les
donnes
Sachez que vous pouvez crire un programme Automation comme celui de lexemple
ci-dessous qui sexcute lorsque le dessin est enregistr et qui collecte des
informations sur les formes du dessin et les place dans un tableau. Vous pouvez
ensuite crire du code supplmentaire qui utilise les donnes de ce tableau pour
gnrer automatiquement une commande de composants.
Donnes sur les formes sur la page
de dessin
Ordinateur portable
Imprimante laser
Ordinateur
Ordinateur portable
Ordinateur Ordinateur
Rfrence Fabricant Cot
XYZ-543341 Dell 1995
XYZ-543342 Dell 1995
XYZ-543343 Dell 1995
ABC-499891 Dell 2150
ABC-499892 Dell 2150
ZWY-123121 Hewlet Packard 3200
398 CHAP I TRE 20
Avec Microsoft Visual Basic pour Applications (VBA), vous pouvez crire du code
semblable celui de lexemple suivant qui sexcute lorsque le dessin Visio est
enregistr. Aprs avoir dfini des variables et rcupr la collection Shapes associe
la premire page du dessin, ce code dfinit le tableau OrderInfo pour stocker les
donnes des formes qui seront rassembles dans la collection. Le nom de chaque
forme est identifi et ajout au tableau avec, pour chacune dentre elles, les
informations regroupes concernant trois proprits personnalises : la rfrence, le
fabricant et le cot. Une fois que vous avez regroup ces informations pour chaque
forme de la page, les rsultats sont affichs dans la fentre Excution pour vrification.
Enfin, les donnes du tableau sont transmises une autre application ou enregistres
sur disque sous la forme dun fichier texte.
Pour une explication dtaille de ce code, reportez-vous la section suivante intitule
Examen du code servant lextraction des donnes dun dessin , page 399
P1vafe Sub 0ocumehf0ocumehfSaved|yva1 doc As Tv0ocumehf)
01m pag0b As v1s1o.Page 0bef Page v1s1o
01m shps0b As v1s1o.Shapes Co11ecf1oh Shapes v1s1o
01m shp0b As v1s1o.Shape 0bef Shape v1s1o
01m ce10b As v1s1o.Ce11 0bef Ce11 v1s1o
01m 0deThfo|) As Sf1hg Tab1eau qu1 eceva 1es 11ghes du boh
de commahde
01m 1ShapeCouhf As Thfege Compfeu
01m 1 As Thfege Compfeu
Sef pag0b = Acf1vePage L1e 1a page acf1ve
Sef shps0b = pag0b.Shapes L1e 1a co11ecf1oh Shapes de 1a page
TshapeCouhf = shps0b.Couhf hombe fofa1 de fomes
0f1h1 1a fa111e du fab1eau qu1 eceva 1es 1hfomaf1ohs e1af1ves a 1a
fome.
Thd1ce de fab1eau commehahf a 0. 4 co1ohhes pou chaque fome
Pe01m 0deThfo|3, 1ShapeCouhf - 1)
Pou chaque fome de 1a page ecue1111 1e hom, 1a Pfehce, 1e Iab1cahf,
ef 1e Cof
Io 1 = 1 To 1ShapeCouhf
L1e 1a 1me fome
Sef shp0b = shps0b|1)
L1e 1e hom de 1a fome
0deThfo|0, 1 - 1) = shp0b.hame
L1e 1a pop1f Pfehce pu1s meffe 1a va1eu dahs uhe cha1he
Tf shp0b.Ce11Ex1sfs|"Pop.Pfehce", v1sEx1sfsLoca11y) Theh
Sef ce10b = shp0b.Ce11s|"Pop.Pfehce")
0deThfo|1, 1 - 1) = ce10b.Pesu1fSf|"")
Ehd Tf
I NTGRATI ON DE DONNES ET D UNE SOL UTI ON VI SI O 399
Exemple de code (suite)
Examen du code servant lext ract ion des donnes dun
dessin
Lexemple de code prcdent peut tre divis en plusieurs parties : dfinition des
variables et du tableau qui contiendra les donnes ; parcours par itration des formes
de la collection Shapes de la page, afin de rassembler les donnes et de les placer dans
un tableau ; affichage du tableau pour vrifier la collection des donnes et
lexportation des donnes dans une autre application.
Dfinition des variables
Dans la premire section du code, linstruction Dim sert dfinir des variables pour
lobjet Page, une collection Shapes, un objet Shape et un objet Cell. Par ailleurs, un
tableau appel OrderInfo est dfini, ainsi quun entier pour litration de la premire
boucle.
L1e 1a pop1f Iab1cahf pu1s meffe 1a va1eu dahs uhe cha1he
Tf shp0b.Ce11Ex1sfs|"Pop.Iab1cahf", v1sEx1sfsLoca11y) Theh
Sef ce10b = shp0b.Ce11s|"Pop.Iab1cahf")
0deThfo|2, 1 - 1) = ce10b.Pesu1fSf|"")
Ehd Tf
L1e 1a pop1f Cof pu1s pehde 1a va1eu
Tf shp0b.Ce11Ex1sfs|"Pop.Cof", v1sEx1sfsLoca11y) Theh
Sef ce10b = shp0b.Ce11s|"Pop.Cof")
0deThfo|3, 1 - 1) = ce10b.Pesu1fTu
Ehd Tf
L1be 1`obef Shape
Sef shp0b = hofh1hg
hexf
Aff1che dahs 1a fehfe Excuf1oh pou v1f1e 1es dohhes co11ecfes
Io 1 = 0 To pag0b.Shapes.Couhf - 1
0ebug.P1hf 0deThfo|0, 1) & ","
& 0deThfo|1, 1) & ","
& 0deThfo|2, 1) & ","
& 0deThfo|3, 1)
hexf
Appe1e uhe fohcf1oh pou c1e 1es dohhes ves h`1mpofe que1
suppof de dohhes, passe 1e fab1eau des dohhes co11ecfes
Expof0afa 0deThfo
Ehd Sub
400 CHAP I TRE 20
Une fois que les variables sont dfinies, la variable de la page est paramtre sur la
page active du document. La variable shpsObj dfinit une collection constitue de
toutes les formes de la page active et iShapeCount adapte le nombre de formes
propos desquelles les informations seront rassembles. Enfin, le tableau OrderInfo
dfinit un tableau servant stocker les donnes relatives aux quatre proprits de
chaque forme contenues de la collection Shapes de la page. Si vous travailliez dans un
document contenant plusieurs pages, vous pourriez dfinir une boucle incrmenter
dans chaque page du document. Dans ce cas, vous pourriez soit agrandir le tableau
pour quil contienne plusieurs collections Shapes, soit crer un tableau par page.
Rassemblement des informations sur les formes laide dune boucle
La section suivante du code complte le tableau OrderInfo avec des informations
concernant toutes les formes dune page. La variable iShapeCount stocke le nombre de
formes sur la page ; lentier de comptabilisation est dfini en fonction de cette plage.
Avec une instruction ForNext, lentier commence par la premire forme de la
collection, rassemble des informations la concernant, libre la forme, puis rassemble
les informations sur la forme suivante, jusqu la dernire forme de la collection.
Pour chaque forme de la collection, ce code ajoute quatre lments dinformations
dans le tableau. La proprit shpObj.Name collecte simplement le nom de la forme.
Les trois champs suivants sont dessins partir des champs de proprits
personnalises. Le code vrifie tout dabord lexistence des cellules Prop.Rfrence,
Prop.Fabricant et Prop.Cot ; si elles sont prsentes, la variable celObj est attribue
tour tour chaque valeur de cellule, et les chanes obtenues sont ajoutes au tableau.
Dans ce code, si une cellule nexiste pas, le champ est simplement ignor. Dans une
solution plus complte, vous souhaiterez peut-tre que le code rponde diffremment
si les cellules nexistent pas.
Vrification de la collection des donnes
Avec une deuxime instruction ForNext, la section suivante du code affiche
simplement pour chaque forme de la fentre Excution les informations contenues
dans le tableau, spares par des virgules. Selon lutilisation que vous prvoyez des
informations contenues dans le tableau, cette opration peut constituer une
technique utile pour la rsolution des problmes.
Exportation de donnes dans une autre application
Cet exemple de code ne comporte pas de code destin lexportation des donnes
dans un tableau dune autre application, car lapproche varie considrablement en
fonction de lutilisation prvue des informations et de lapplication de destination.
I NTGRATI ON DE DONNES ET D UNE SOL UTI ON VI SI O 401
Ecrit ure de code pour la crat ion dun dessin Visio
part ir de donnes
Tout comme vous pouvez extraire des donnes dun dessin Visio pour les utiliser dans
une autre application, vous pouvez utiliser des donnes issues dautres sources pour
crer un diagramme. Vous pouvez, par exemple, utiliser les informations provenant
dun bon de commande de composants de rseau afin de gnrer un schma
dinstallation ou extraire des donnes dune base de donnes demploys pour gnrer
un organigramme.
Quelle que soit la manire dont vous envisagez de crer le dessin, vous devez, avant de
crer du code, rpondre aux questions suivantes car elles conditionnent le mode de
conception :
La cration du dessin est-elle incluse dans le code ou sagit-il dune opration
pralable effectue par lutilisateur ?
La source externe des donnes est-elle toujours la mme ou peut-elle tre
slectionne par lutilisateur ?
Comment choisissez-vous le gabarit contenant les formes de base ncessaires au
dessin et comment ces formes sadaptent-elles aux donnes ? Notez que vous
pouvez crer un gabarit dans le cadre de la solution.
Lexemple de code prsent dans cette partie montre comment, partir du contenu
dune base de donnes, vous pouvez crer un diagramme simple.
Exemple de crat ion dun dessin part ir de donnes
Supposons que vous souhaitiez crire une application qui gnre le dessin dune
installation en rseau partir des donnes importes dun bon de commande.
Lorsque la vente est termine et que la commande est saisie dans la base de donnes, le
programme utilisant Automation, comme celui en exemple ci-dessous, peut extraire
les enregistrements de cette base de donnes et les utiliser pour crer un dessin qui
servira lquipe dinstallation. Dans cet exemple, le code associe un champ de
lenregistrement de la base de donnes une forme dun gabarit, puis insre les
occurrences des formes dans la page de dessin et ajoute les informations provenant
dautres champs sous forme de proprits personnalises des formes.
Enregistrements dans une base de
donnes
Hub / switch Lyon
PC PC de Jeremy
Ordinateur portable Portable de Suzanne
PDA PC de Judith
Serveur Serveur de groupe
Imprimante Laser
402 CHAP I TRE 20
Le rsultat est un dessin qui configure les nouveaux lments du rseau client en
fonction des donnes saisies par le commercial.
Schma dinstallation gnr
partir des enregistrements de la
base de donnes
Avec Microsoft Visual Basic pour Applications (VBA), vous pouvez crire du code
ressemblant lexemple suivant : il cre un dessin partir dun modle contenant le
gabarit utiliser, puis il insre les formes choisies daprs les donnes lues dans la base
de donnes. Dans cet exemple, la forme dun hub est place au centre de la page, puis
des noeuds sont lis au hub dans un cercle. Chaque forme affiche du texte qui, dans
cet exemple, pourrait inclure des notes du commercial concernant la configuration
souhaite par le client. Pour obtenir une explication dtaille de ce code, reportez-
vous la section suivante ainsi qu Examen du code servant lextraction des
donnes dun dessin , page 399
Lyon
Ordinateur de Jeremy
Ordinateur portable de Suzanne
PC de Judith
Serveur de groupe
Imprimante laser
I NTGRATI ON DE DONNES ET D UNE SOL UTI ON VI SI O 403
Pub11c Sub Ceafe0aW1hg|)
01m shp0bhu As v1s1o.Shape
01m shp0bhodes As v1s1o.Shape
01m shp0bCohhecfo As v1s1o.Shape
01m msf0bCohhecfo As v1s1o.Masfe
01m msf0b As v1s1o.Masfe
01m sfh0b As v1s1o.0ocumehf
01m dX, dY As 0oub1e
01m d0egeeThc As 0oub1e
01m dPad As 0oub1e
01m dPageW1dfh, dPagehe1ghf As 0oub1e
01m 1 As Thfege
Cohsf PT = 3.141S
Cohsf C1c1ePad1us = 2
01m ahef0afa|) As Sf1hg
L1e 1es dohhes
Th1f0afa ahef0afa
Pou d1spose 1es fomes eh cec1e, hous d1v1sohs 360 pa 1e hombe fofa1
d`ehfes du fab1eau
d0egeeThc = 360 / uouhd|ahef0afa)
L1e 1es pop1fs 1ageu ef haufeu de page
dPageW1dfh = Acf1vePage.PageSheef.Ce11s|"LageuPage").Pesu1fTu
dPagehe1ghf = Acf1vePage.PageSheef.Ce11s|"haufeuPage").Pesu1fTu
0uv1 1e gaba1f Iomes de seau de base 30
Sef sfh0b = App11caf1oh.0ocumehfs.0pehEx|"Iomes de seau de base 30.vss", v1s0peh0ocked)
404 CHAP I TRE 20
Exemple de code (suite)
Ta1fe 1a fome hub
Sef msf0b = sfh0b.Masfes|ahef0afa|0, 0))
Sef shp0bhu = Acf1vePage.0op|msf0b, dPageW1dfh / 2, dPagehe1ghf / 2)
0f1h1 1e fexfe de 1a fome hub
shp0bhu.Texf = ahef0afa|0, 1)
L1e 1a fome de base L1eh
Sef msf0bCohhecfo = sfh0b.Masfes|"as ves hauf avec ahg1e")
Ta1fe 1es hoeuds
Io 1 = 1 To uouhd|ahef0afa)
Sef msf0b = sfh0b.Masfes|ahef0afa|1, 0))
0f1h1 1es va1eus X, Y pou p1acemehf |dahs uh cec1e aufou du hub)
dPad = |d0egeeThc " 1) " PT / 10
dX = C1c1ePad1us " Cos|dPad) + |dPageW1dfh / 2)
dY = C1c1ePad1us " S1h|dPad) + |dPagehe1ghf / 2)
Aoufe 1a fome pou dess1he au boh ehdo1f
Sef shp0b = Acf1vePage.0op|msf0b, dX, dY)
0f1h1 1e fexfe de 1a fome
shp0b.Texf = ahef0afa|1, 1)
Cohhecfe 1e hoeud couahf au hub
Sef shp0bCohhecfo = Acf1vePage.0op|msf0bCohhecfo, 0, 0)
shp0bCohhecfo.SehdToack
Co11e 1e po1hf de dbuf a 1a fome hub
shp0bCohhecfo.Ce11s|"0pafX").C1ueTo shp0bhu.Ce11s|"Cohhecf1ohs.X1")
Co11e 1e po1hf de f1h au hoeud aouf
shp0bCohhecfo.Ce11s|"I1hX").C1ueTo shp0b.Ce11s|"Cohhecf1ohs.X1")
hexf
Ehd Sub
I NTGRATI ON DE DONNES ET D UNE SOL UTI ON VI SI O 405
Examen du code pour la crat ion dun dessin part ir de
donnes
Lexemple de code prcdent peut tre divis en trois parties distinctes : le
paramtrage du programme, lajout de la forme de hub sur la page et lajout des
formes de noeud sur la page et leur liaison au hub.
Paramtrage du programme
La premire section du code permet de dfinir les constantes et les variables que le
programme utilise. Ensuite, le tableau contenant les donnes servant la cration du
dessin est dfini et initialis. Enfin, les dimensions de la page sont dtermines (ces
informations serviront ultrieurement de base pour le centrage de la forme du hub),
et le gabarit utilis par ce dessin est ouvert. Dans une solution plus labore, il serait
possible de crer un code qui permette lutilisateur de choisir le gabarit ouvrir. De
mme, les informations du gabarit pourraient tre importes en tant que donnes,
plutt que dtre codes comme cest le cas ici.
Ajout de la forme de hub sur la page
Dans ce programme, les noeuds sont relis un hub qui est centr sur la page du
document. La section suivante du code lit le tableau import pour identifier la forme
de base utiliser pour la forme du hub, insre une occurrence de cette forme de base
au centre de la page et paramtre le texte de la forme. La forme de lien est ensuite
identifie, mais ses occurrences ne sont pas dplaces sur la page tant que les formes
de noeud ne sont pas ajoutes au dessin.
Ajout de formes de noeud sur la page et liaison de ces formes au hub
La partie finale de ce programme contient une boucle qui correspond un champ
contenu dans chaque enregistrement du tableau import avec une forme de base dans
le gabarit ouvert. Une fois la forme de base identifie, le code dtermine
lemplacement de loccurrence de la forme ; les formes sont ajoutes sur la page et
sont organises en cercle autour du hub. Une fois la forme place lemplacement
exact, la forme du lien identifie ci-dessus est ajoute sur la page. Son point de dpart
est reli la forme du hub et son point de fin la nouvelle forme de noeud. Ce
procd est rpt pour chaque enregistrement du tableau, jusqu ce que le dessin
soit termin.
406 CHAP I TRE 20
Int grat ion dune solut ion Visio et dune base de donnes
Lintgration dune solution Visio avec une base de donnes exige une planification
qui permette de synchroniser les dessins avec la base de donnes. Il est important de
connatre la base de donnes utiliser, les lments modifier, ainsi que le mode et le
moment de la modification.
Vous pouvez, par exemple, dvelopper une solution dans laquelle chaque forme de
base correspond une pice rfrence dans un catalogue de fabricant. Si vous stockez
un numro de rfrence en tant que proprit personnalise de chaque forme de base,
il devient plus facile de consulter les informations relatives aux pices dans une
version du catalogue stocke sous forme de base de donnes. En revanche, la
correspondance entre la base de donnes et les dessins crs partir de la solution
nest pas ncessairement 1-1 ; il peut en effet y avoir 20 occurrences dune forme de
base dans un dessin, toutes possdant le mme numro de rfrence. La suppression
dune forme dans le diagramme ne doit pas supprimer cette pice de la base de
donnes, mais une mise jour de la base de donnes doit identifier les composants
utiliss dans le dessin et qui ne sont plus disponibles.
Par ailleurs, pour vrifier lexactitude dun dessin, le dveloppeur de solutions peut
crer un modle externe des composants et de leurs interconnexions, et stocker le
modle externe dans un rfrentiel de donnes ou le placer provisoirement en
mmoire. Comme le modle doit reprsenter la fois linventaire des pices et leurs
interconnexions, il peut tre compos de plusieurs tableaux lis. Dans ce modle,
chaque composant du dessin ncessite un identificateur unique en plus de son
numro de rfrence, afin que les composants identiques du dessin puissent tre
distingus les uns des autres dans le modle. Le plus judicieux est de synchroniser le
modle externe avec le dessin en temps rel de manire ce que, lorsque lutilisateur
ajoute des formes de composant dans le dessin, la solution puisse ajouter un noeud
correct au modle et se comporter de manire identique si lutilisateur a supprim
une forme ou une connexion.
En revanche, la suppression dune forme a gnralement plus de consquences que la
simple suppression dun enregistrement dans le tableau contenant lensemble des
composants ; le tableau qui enregistre les connexions entre les composants devra
galement tre modifi. En gnral, une opration effectue dans le dessin correspond
une transaction excuter dans la base de donnes, non pas une simple insertion
ou suppression denregistrement.
De mme, dans la solution dune entreprise organise en services, la suppression dun
poste de directeur de lorganigramme ne justifie pas, tant que la nouvelle organisation
na pas t cre et approuve par la direction, la suppression de lenregistrement de
lemploy de la base de donnes des ressources humaines de lentreprise. A linverse,
les organigrammes doivent tre synchroniss avec un modle de donnes central
reprsentant la rorganisation.
I NTGRATI ON DE DONNES ET D UNE SOL UTI ON VI SI O 407
Aprs la cration des interactions entre une solution et une base de donnes, la
solution peut apporter des modifications en effectuant les oprations suivantes :
Elle gre ShapeAdded, ShapesDeleted, ConnectionsAdded,
ConnectionsDeleted, TextChanged et les autres vnements Visio et met jour la
base de donnes au fur et mesure que lutilisateur modifie le dessin.
Elle gre les vnements DocumentOpen et BeforeDocumentClose et effectue des
mises jour automatiques ou synchronise la base de donnes lorsque lutilisateur
ouvre et ferme le dessin.
Elle cre un programme externe qui effectue une requte dans le dessin Visio pour
extraire les donnes si ncessaire, par exemple la demande de lutilisateur.
Elle stocke toutes les donnes de la solution dans une base de donnes externe et
utilise les donnes associes des formes Visio, comme une proprit
personnalise, sous la forme dun attribut-cl permettant daccder aux
enregistrements de la base de donne externe.
LAssistant Base de donnes livr avec le produit Visio permet dajouter des cellules
dfinies par lutilisateur et de lier des cellules de proprits personnalises aux champs
de la base de donnes pour obtenir des solutions simples ou pour effectuer le
prototype de solutions plus complexes. Pour accder aux bases de donnes par
lintermdiaire dODBC (Open Database Connectivity) ou laide du moteur Jet,
vous pouvez utiliser la bibliothque dobjets DAO (Data Access Objects) fournie par
Microsoft. Vous pouvez aussi paramtrer la solution Visio pour quelle appelle un
serveur Automation qui met jour la base de donnes et la synchronise, ce qui vous
permet davoir un contrle plus prcis sur lintgrit de la base de donnes.
Sommaire
21
Gest ion des vnement s dans Visio
Un vnement est un fait qui se produit. Dans Microsoft

Visio

, les vnements
rsultent des actions de lutilisateur : ouvrir ou fermer des documents, insrer ou
supprimer des formes dans la page de dessin, modifier le texte ou les formules des
formes. Il est trs utile de savoir que ces vnements se produisent : votre solution
peut ainsi grer des actions utilisateur qui seraient sinon difficiles prvoir.
Vous pouvez grer les vnements dans un programme ou par lintermdiaire des
formules Visio. Comme pour toutes les solutions Visio, commencez par intgrer le
maximum de la fonctionnalit dans des formules. Pour plus dinformations sur la
gestion des vnements laide de formules, reportez-vous au chapitre 7,
Amlioration du comportement des formes
Visio propose deux modes de gestion des vnements dans un programme :
Dans Microsoft

Visual Basic

pour Applications (VBA) ou dans les programmes


Microsoft

Visual Basic

, lapproche la plus simple consiste utiliser le


mot-cl WithEvents car il permet de dclarer des variables objet pouvant
recevoir des vnements. Cela sappelle rdiger du code pour les vnements.
Le mot-cl WithEvents a t introduit dans VBA 5.0 (fourni avec Visio 4.5) et
Visual Basic 5.0.
Vous pouvez crer des objets Event Visio qui permettent de lancer un programme
complmentaire ou de signaler un programme le dclenchement dun
vnement. Cette technique peut tre utilise dans tout environnement de
dveloppement. Elle reprsentait lunique moyen de grer les vnements Visio via
Automation dans les versions antrieures VBA ou Visual Basic 5.0.
Pour plus dinformations sur la gestion des vnements dans un programme C++,
reportez-vous au chapitre 27, Programmation de Visio avec C++
Prsentation des vnements............................................................................... 410
Rdaction du code pour les vnements............................................................. 411
Objets Event Visio .................................................................................................. 420
410 CHAP I TRE 21
Prsent at ion des vnement s
Au cours des chapitres prcdents, vous avez vu comment contrler les objets Visio
laide dAutomation de manire rcuprer et dfinir des proprits, et appeler des
mthodes. Cette communication unidirectionnelle a des limites : le programme peut
donner des instructions Visio, mais ne peut pas savoir ce qui se passe dans Visio sans
vrifier de manire explicite tous les cas de figure possibles. Les vnements
permettent aux objets et leurs clients dtablir une communication bidirectionnelle.
La diffrence entre lutilisation des vnements dun objet, dune part, et celle des
mthodes et des proprits de cet objet, dautre part, est la suivante : les proprits et
les mthodes sont dfinies et mises en place par Visio ; les vnements, en revanche,
sont dfinis par Visio, mais il vous incombe de rdiger le code qui permet de les
mettre en oeuvre.
La figure suivante illustre comment un programme appelle Visio afin de mettre en
oeuvre les proprits et les vnements, et comment Visio appelle ce programme afin
de mettre en oeuvre les vnements.
Interaction entre Visio et un
programme client
Un vnement comporte un sujet et une source, qui sont gnralement des objets
distincts. Le sujet dun vnement est lobjet sur lequel porte lvnement. Par
exemple, le sujet dun vnement ShapeAdded est lobjet Shape qui est ajout.
La source dun vnement est lobjet qui produit cet vnement. La plupart des
vnements ont plusieurs sources potentielles. Lobjet source slectionn dtermine la
porte du dclenchement de lvnement : plus lobjet source est un niveau lev
dans la hirarchie des objets, plus sa porte est importante. Par exemple, si la source
est un objet Page, lvnement ShapeAdded est dclench chaque fois quune forme
est insre dans cette page. Si la source est lobjet Application, lvnement
ShapeAdded est dclench chaque fois quune forme est insre dans lune des pages
dun document ouvert dans Visio.
Programme client
Objet Visio
Proprits et
mthodes
Evnements
GESTI ON DES VNEMENTS DANS VI SI O 411
Evidemment, plus un vnement est dclench souvent, plus il risque davoir des
consquences sur les performances de la solution. Il est donc conseill, lorsque vous
choisissez un objet source, de rflchir la porte de lvnement pour le grer au
mieux.
Les vnements pouvant tre dclenchs par un objet source constituent le groupe
dvnements de cet objet. Vous pouvez les afficher dans lexplorateur dobjets de
lEditeur Visual Basic dans Microsoft Visual Basic pour Applications (VBA) ou dans
Visual Basic. Un objet Visio pouvant dclencher des vnements repre les membres
de son groupe dvnements par le symbole dun clair. Pour rechercher des
vnements par objet ou par nom, ou pour afficher la liste complte des vnements,
reportez-vous laide en ligne Rfrence du dveloppeur (accessible via ? (Aide) >
Rfrence du dveloppeur) fournie avec Visio.
Rdact ion du code pour les vnement s
Si vous avez dj rdig du code en Microsoft Visual Basic, vous avez sans doute dj
crit des procdures dvnement. Une procdure dvnement contient du code qui
sexcute au dclenchement dun vnement. Par exemple, un bouton dun
formulaire Visual Basic comporte gnralement une procdure permettant de grer
lvnement Click. La rdaction du code pour les vnements dans lenvironnement
VBA de Visio est identique celle du code pour les vnements dans toute autre
application hte VBA (par exemple, dans toute application Microsoft

Office).
Chaque projet VBA dans Visio est conu pour capturer les vnements dclenchs par
lobjet Document associ au projet (ThisDocument). Pour rpondre aux vnements
dclenchs par dautres objets Visio, vous pouvez dclarer des variables objet laide du
mot-cl WithEvents, qui met disposition tous les vnements dfinis pour un type
dobjet donn et qui fournit la structure des procdures de gestion des vnements du
projet. Il ne vous reste plus qu rdiger le code pour les vnements grer.
Vous devez dclarer les variables objet WithEvents dans des modules de classe. Vous
pouvez les dclarer dans la classe ThisDocument, module de classe par dfaut de tout
projet VBA dans Visio, ou dans un autre module de classe que vous insrez dans le
projet.
La rdaction du code pour des vnements est galement un moyen de grer les
vnements dclenchs par des contrles Microsoft

ActiveX

que vous avez insrs


dans un projet. Pour plus dinformations sur la gestion des vnements pour un
contrle ActiveX, reportez-vous au chapitre 23, Utilisation de contrles ActiveX
dans une solution Visio
412 CHAP I TRE 21
REMARQUE : la rdaction du code pour des vnements laide du mot-cl WithEvents
est une fonctionnalit propre VBA et Visual Basic. Si vous rdigez un programme dans
un autre environnement, reportez-vous la section Objets Event Visio , page 420, ou
consultez votre documentation COM (Component Object Model) pour obtenir des
informations sur la mise en oeuvre dinterfaces prenant en charge les objets connectables
COM.
Toutes les informations fournies dans cette section sont galement valables pour les
projets Visual Basic autonomes, lexception suivante prs : vous devez dfinir une
rfrence une bibliothque de types Visio dans votre projet Visual Basic. Choisissez
Projet > Rfrences, puis slectionnez Visio 2000 Type library (la bibliothque de
types Microsoft

Visio

2000).
Gest ion des vnement s dclenchs par ThisDocument
Tous les projets VBA dans Visio comportent un module de classe ThisDocument qui
rpond automatiquement aux vnements dclenchs par lobjet Document associ
au projet.
Pour plus dinformations sur lutilisation de lEditeur Visual Basic, reportez-vous au
chapitre 15, Programmation dans Visio avec Microsoft VBA .
Pour crer une procdure dvnement dans ThisDocument :
1 Double-cliquez sur ThisDocument dans lexplorateur de projet : la fentre de code
associe au document apparat. (Si lexplorateur de projet napparat pas dans
lEditeur Visual Basic, choisissez Affichage > Explorateur de projet.)
La zone de liste dans langle suprieur gauche de la fentre de code est la zone des
objets ; la zone de liste dans langle suprieur droit est la zone des procdures.
2 Cliquez sur Document dans la zone de liste des objets ; lvnement dfini pour un
objet Document apparat dans la zone des procdures.
GESTI ON DES VNEMENTS DANS VI SI O 413
3 Slectionnez un vnement dans la zone de liste des procdures : VBA cre alors
une procdure dvnement vide dans laquelle vous pouvez rdiger le code de
gestion de lvnement. Les procdures dvnement sont toujours intitules
object_event.
Fentre de code ThisDocument
A Zone des objets
B Structure de la procdure
C Zone des procdures
Par exemple, le programme suivant gre deux vnements, DocumentOpened et
ShapeAdded, qui permettent de faire le suivi du nombre de formes venant de la
forme de base appele Carr et que lutilisateur ajoute au dessin :
Le gestionnaire dvnements DocumentOpened est excut lors de la cration
dun document laide du modle contenant ce code. Le gestionnaire cre une
variable de type entier, intSquares, qui stocke le dcompte.
A B C
414 CHAP I TRE 21
Le gestionnaire dvnements ShapeAdded est excut chaque fois quune forme
est insre dans la page de dessin, quelle vienne dun gabarit, quelle soit dessine
directement sur la page laide dun outil de dessin ou quelle soit colle depuis le
Presse-Papiers de Windows. Le gestionnaire vrifie la proprit Forme de base du
nouvel objet Shape et, si cette forme est base sur la forme de base Carr,
incrmente la valeur de la variable intSquares.
Pour grer les vnement s dclenchs par ThisDocument (rcapit ulat if ) :
1 Ouvrez lEditeur Visual Basic en cliquant sur le bouton Editeur Visual Basic (
de la barre doutils Dveloppeur ou choisissez Outils > Macros > Editeur
Visual Basic.
2 Dans lexplorateur de projet, double-cliquez sur ThisDocument pour ouvrir la
fentre de code correspondante.
3 Slectionnez Document dans la zone de liste des objets : les vnements dclenchs
par un document apparaissent dans la zone des procdures.
4 Slectionnez lvnement grer : Visio cre une procdure dvnement vide
pour cet vnement.
5 Remplissez la procdure dvnement en indiquant le code excuter lorsque
lvnement se produit.
hombe de cas aoufs au dess1h
01m 1hfSquaes As Thfege
P1vafe Sub 0ocumehf0ocumehf0pehed|yva1 0oc as Tv0ocumehf)
Th1f1a11saf1oh du hombe de cas aoufs
1hfSquaes = 0
Ehd Sub
P1vafe Sub 0ocumehfShapeAdded|yva1 Shape As TvShape)
01m masf0b As Masfe
L1e 1a pop1f Masfe de 1a fome
Sef masf0b = Shape.Masfe
v1f1e s1 1a fome a uhe fome de base.
S1 ce h`esf pas 1e cas 1a fome sea ce 1oca1emehf
Tf hof | masf0b Ts hofh1hg ) Theh
v1f1e s1 1a fome de base esf Ca
Tf masf0b.hame = "Squae" Theh
Thcmehfe 1e compfeu a chaque ca aouf
1hfSquaes = 1hfSquaes + 1
Ehd Tf
Ehd Tf
Msgox "hombe de cas : " & 1hfSquaes, vbThfomaf1oh
Ehd Sub
GESTI ON DES VNEMENTS DANS VI SI O 415
Dclarat ion dune variable objet laide du mot -cl
Wit hEvent s
Pour grer les vnements dclenchs par des objets Visio diffrents du document du
projet, vous pouvez utiliser le mot-cl VBA WithEvents pour dclarer une variable
objet correspondant lobjet Visio dont vous voulez grer les vnements. Lexemple
suivant dcrit la dfinition dune variable objet visant grer les vnements
dclenchs par un objet Page.
Dans ThisDocument, vous dclarez une variable objet en utilisant le mot-cl
WithEvents et un type dobjet Visio :
En plus de permettre daccder aux proprits et aux mthodes dun objet,
lutilisation du mot-cl WithEvents dans cette dclaration donne la variable objet la
possibilit de grer les vnements dclenchs par lobjet Page auquel elle est associe.
Tous les vnements du groupe dvnements de lobjet sont dclenchs et vous
fournissez le code de gestion des vnements.
En dclarant cette variable WithEvents comme type Visio.Page, VBA peut identifier la
bibliothque de types (Visio) et le groupe dvnements (Page) capturer. Dsormais,
lorsque vous slectionnez pageObj dans la zone de liste des objets de lEditeur Visual
Basic, les vnements dclenchs par lobjet Page apparaissent dans la zone des
procdures.
Par exemple, la procdure dvnement suivante indique le nom des formes
slectionnes dans la fentre Excution chaque fois quune forme est supprime de la
page active du projet, reprsente par pageObj :
Pour que cette procdure soit excute, toutefois, vous devez lier lobjet dclar
(pageObj) une occurrence de lobjet. Comme cette liaison doit tre excute avant le
dclenchement de lvnement BeforeShapeDelete, vous pouvez la placer dans une
procdure dvnement qui sera excute avant BeforeShapeDelete, par exemple
celle de lvnement DocumentOpened du document.
01m W1fhEvehfs page0b As v1s1o.Page
Pub11c Sub page0befoeShape0e1efe|yva1 Shape As TvShape)
0ebug.P1hf Shape.hame
Ehd Sub
P1vafe Sub 0ocumehf0ocumehf0pehed|yva1 doc As Tv0ocumehf)
Sef page0b = Acf1vePage
Ehd Sub
416 CHAP I TRE 21
Une fois que vous avez termin avec la rfrence dobjet, librez la rfrence de
variable. Cela correspond ce qui se passe gnralement dans le gestionnaire
dvnements BeforeDocumentClose. Par exemple :
Pour plus dinformations sur le mot-cl WithEvents, consultez votre documentation
Microsoft Visual Basic ou VBA.
Pour dclarer une variable objet Wit hEvent s dans ThisDocument
(rcapit ulat if ) :
1 Ouvrez lEditeur Visual Basic et double-cliquez sur lobjet ThisDocument dans
lexplorateur de projet.
2 Dans la fentre de code, dfinissez la variable objet laide du mot-cl Visual Basic
WithEvents dans la section Gnral du module.
3 Slectionnez lobjet dans la zone de liste des objets : les vnements dclenchs par
cet objet apparaissent dans la zone des procdures.
4 Slectionnez lvnement grer : Visio cre une procdure dvnement vide
pour cet vnement.
5 Remplissez la procdure dvnement en indiquant le code excuter lorsque
lvnement se produit.
6 Affectez la valeur de loccurrence de lobjet la variable objet.
7 Affectez la valeur Nothing la variable une fois que vous avez termin.
Df init ion dune classe recevant des vnement s
Vous pouvez acclrer le processus de traitement des vnements dclenchs par un
type prcis dobjet Visio en dfinissant une classe destine recevoir les variables
dvnement et le code de gestion de lvnement. La rdaction du code pour les
vnements dans un module de classe est trs semblable la rdaction du code pour
les vnements dans ThisDocument. Toutefois, lorsque vous utilisez un module de
classe destin recevoir des vnements, vous devez crer une occurrence de la classe
et lassocier un objet rel. (Lobjet ThisDocument est instanci et li lobjet
Document associ au projet par dfaut.)
Lorsque vous grez des vnements dans un autre module de classe, vous rdigez du
code deux endroits, dans le module de classe et dans le programme :
Le module de classe comporte des dclarations de variable WithEvents du niveau
du module, du code dans des procdures dvnement (code pour les vnements)
et du code pour lier la variable aux objets Visio qui dclenchent les vnements.
P1vafe Sub 0ocumehfefoe0ocumehfC1ose|yva1 doc As Tv0ocumehf)
sef page0b = hofh1hg
Ehd Sub
GESTI ON DES VNEMENTS DANS VI SI O 417
Le programme (gnralement ThisDocument) comporte des dclarations de
variable du niveau du module du type de classe, et du code qui cre et attribue une
occurrence de la classe ces variables.
Code dans le module de classe
Pour ajouter une classe un projet, choisissez Insertion > Module de classe. Vous
pouvez attribuer nimporte quel nom cette classe. Vous allez placer dans cette classe
la totalit du code de gestion des vnements. Prenez lexemple suivant : vous
souhaitez grer des vnements provenant de Visio dans un projet (dans ce cas, lobjet
source est un objet Application).
1 Dans le module de classe, dclarez une variable WithEvents du niveau du module
laide de linstruction suivante :
2 Une fois que vous avez dclar cette variable, appObj apparat dans la zone des
objets du module de classe. Lorsque vous le slectionnez, les vnements valides
pour cet objet apparaissent dans la zone des procdures. Slectionnez un
vnement dans cette zone : une procdure vide est ajoute au module de classe et
vous pouvez placer le code pour lvnement slectionn. Par exemple, la solution
peut collecter des informations relatives aux formes du dessin quelle traitera au
dclenchement de lvnement NoEventsPending.
3 Vous devez associer la variable WithEvents un objet source rel. Pour ce faire,
utilisez linstruction Set. La variable WithEvents est gnralement attribue dans
la procdure Initialize du module de classe et paramtre sur la valeur Nothing
dans lvnement Terminate du module.
Code dans le programme
Le gestionnaire dvnements est install, mais il ne sera pas activ tant que vous
naurez pas dfini et cr une occurrence de la classe.
1 Ajoutez une rfrence la classe laide de linstruction suivante (gnralement du
niveau du module) :
01m W1fhEvehfs app0b As v1s1o.App11caf1oh
Sef app0b = App11caf1oh
01m MaC1asse1 As MyS1hkC1ass
418 CHAP I TRE 21
2 Crez une occurrence de la classe. Par exemple, si vous souhaitez rpondre des
vnements dclenchs par lobjet Application comme lindique la section
prcdente, vous pouvez crer une occurrence du module de classe dans
lvnement DocumentOpened du document. Pour crer une occurrence du
module de classe, utilisez le mot-cl New :
Lorsque vous crez une occurrence de la classe, son vnement Initialize est
dclench et la variable WithEvents est lie un objet rel (reportez-vous
ltape 3 de la procdure indique la section prcdente). Une fois que vous avez
termin avec loccurrence de la classe, librez-la en lui attribuant la valeur
Nothing. Cela correspond ce qui se passe gnralement dans lvnement
BeforeDocumentClose du programme :
Pour plus dinformations sur le mot-cl New, consultez votre documentation
Visual Basic ou VBA.
Pour crer un module de classe dans un projet dest in recevoir des vne-
ment s (rcapit ulat if ) :
1 Insrez un module de classe dans le projet.
2 Dclarez une variable objet du niveau du module laide du mot-cl WithEvents
dans le module de classe.
3 Dans le module de classe, slectionnez la variable objet dans la zone de liste des
objets ; les vnements qui peuvent tre grs par cette variable apparaissent dans
la zone des procdures.
4 Slectionnez lvnement grer et placez le code dans la structure de la
procdure.
5 Crez une occurrence du module de classe dans le programme.
6 Paramtrez la variable WithEvents sur lobjet source dont vous souhaitez recevoir
les vnements.
Exemple de module de classe rpondant aux vnement s
Lexemple suivant prsente un projet Visio qui utilise une variable WithEvents pour
contrler les vnements se produisant dans Visio. Lorsque ce projet est excut, ce
gestionnaire dvnements affiche le document et le nom de toutes les formes ajoutes
tous les documents ouverts dans Visio.
Sef MaC1asse1 = heW MyS1hkC1ass
Sef MaC1asse1 = hofh1hg
GESTI ON DES VNEMENTS DANS VI SI O 419
Le projet dfinit une classe intitule Listener. Dans la classe Listener, procdez de la
manire suivante :
Dclarez une variable WithEvents prive de type Visio.Application.
Rdigez le code pour lvnement ShapeAdded de lapplication.
Liez la variable WithEvents un objet Application lorsque la classe Listener est
instancie et annulez cette liaison lorsque la classe est termine.
Dans ThisDocument :
Dfinissez une variable de type Listener.
Crez une occurrence de Listener lorsque le document entre en mode dexcution,
et librez lobjet lorsque le document entre en mode de conception ou que le
document est ferm.
Code dahs 1e modu1e de c1asse appe1 L1sfehe
01m W1fhEvehfs mapp As v1s1o.App11caf1oh
P1vafe Sub C1assTh1f1a11ze|)
Sef mapp = App11caf1oh
Ehd Sub
P1vafe Sub C1assTem1hafe|)
Sef mapp = hofh1hg
Ehd Sub
P1vafe Sub mappShapeAdded|yva1 Shape As TvShape)
0ebug.P1hf Shape.0ocumehf.hame "/" Shape.hame
Ehd Sub
Code dahs Th1s0ocumehf
01m m11sfehe As L1sfehe
P1vafe Sub 0ocumehfPuhModeEhfeed|yva1 doc As Tv0ocumehf)
Sef m11sfehe = heW L1sfehe
Ehd Sub
P1vafe Sub 0ocumehf0es1ghModeEhfeed|yva1 doc As Tv0ocumehf)
Sef m11sfehe = hofh1hg
Ehd Sub
P1vafe Sub 0ocumehfefoe0ocumehfC1ose|yva1 doc As Tv0ocumehf)
Sef m11sfehe = hofh1hg
Ehd Sub
420 CHAP I TRE 21
Objet s Event Visio
Un objet Event Visio associe un vnement une action, quil sagisse de lancer un
programme complmentaire ou de signaler un objet du programme (galement
appel objet rcepteur ou rcepteur dvnements) que lvnement sest produit. La
solution cre des objets Event dcrivant les vnements grer et indique
lapplication Visio laction quelle doit excuter. Lorsque lvnement se produit,
lobjet Event est dclench et lance son action.
Vous devez commencer par dterminer le type dobjet Event ncessaire votre
solution. Quel est lobjet source ? Quels vnements devez-vous recevoir ? Comment
la solution va-t-elle rpondre aux vnements quelle reoit ? Une fois que vous avez
dfini ces paramtres, crez un objet Event qui lance un programme complmentaire
ou qui reoit des notifications.
REMARQUE : dans les versions antrieures Microsoft Visual Basic 5.0 et Visual Basic
pour Applications (VBA) 5.0, cette procdure tait la seule faon de crer un gestionnaire
dvnements dans Visio. Si vous dveloppez des solutions dans un autre langage que
VBA, cela reste gnralement la meilleure technique. Mais si vous dveloppez des
solutions dans Visual Basic ou VBA 5.0 (ou versions ultrieures), vous prfrerez
peut-tre rdiger du code pour les vnements. Pour plus dinformations sur la rdaction
du code pour les vnements dans Visio, reportez-vous la section Rdaction du code
pour les vnements , page 411.
Df init ion de lobjet Event
Avant de crer un objet Event, vous devez dfinir les paramtres suivants :
La porte du dclenchement de lobjet Event.
Le ou les vnements que vous devez recevoir.
Laction excuter au dclenchement de lvnement : excution dun programme
complmentaire ou envoi dune notification un objet dans un programme en
cours dexcution.
Dfinition de la porte
La porte dtermine lobjet source dont la collection EventList reoit lobjet Event.
Tout objet comportant une collection EventList peut tre source dvnements. Pour
une question de performances, ajoutez lobjet Event la collection EventList de
lobjet le plus bas dans la hirarchie qui peut dclencher lobjet Event dans la porte
souhaite.
GESTI ON DES VNEMENTS DANS VI SI O 421
Indication du ou des vnements dclenchant une action
Vous indiquez lvnement qui vous intresse en fournissant son code dvnement
dans la mthode Add ou AddAdvise. Dans la bibliothque de types Visio, les codes
dvnement ont pour prfixe visEvt. Dans certains cas, le code dvnement est une
combinaison de plusieurs codes. Par exemple, le code dvnement pour ShapeAdded
est visEvtAdd + visEvtShape. Dans certains cas, vous pouvez combiner des codes de
manire indiquer un intrt dans plusieurs vnements par un mme objet Event.
Par exemple, le code dvnement visEvtAdd + visEvtPage + visEvtShape signale que
vous tes intress par ShapeAdded et par PageAdded.
Lors du dclenchement dun objet Event, le moteur Visio transmet le code de
lvnement qui sest produit, mme si le code dvnement de lobjet Event signale
plusieurs vnements. Pour reprendre le dernier exemple, lors de lajout dune page,
le moteur Visio transmet le code dvnement visEvtAdd + visEvtPage.
REMARQUE : Visual Basic et VBA renvoient un message derreur de dpassement
lorsquils excutent des instructions utilisant visEvtAdd. Par exemple :
Sef evf = evfL1sf.AddAdv1se|v1sEvfAdd + v1sEvfShape, s1hk0b, "", "")
Les facteurs suivants gnrent un problme de dpassement :
Le premier argument de la mthode AddAdviseest un nombre entier cod sur 2 octets.
Comme visEvtAdd est dclar comme membre dune numration de la bibliothque
de types Visio, il est trait comme un entier sur 4 octets.
La valeur de visEvtAdd est &H8000.
Visual Basic et VBA ne prennent pas en charge les valeurs arithmtiques sans signe.
Comme visEvtAdd est une valeur code sur 4 octets, que Visual Basic et VBA considrent
comme positive, visEvtAdd+visEvtShapeest trait comme 32768+64 = 32832, qui est en
dehors de la plage des valeurs possibles pour une valeur avec signe code sur 2 octets.
Si visEvtAdd est dclar de manire explicite en tant que quantit code sur 2 octets avec
la valeur &H8000, Visual Basic et VBA la considrent comme ngative, et
visEvtAdd+visEvtShapeest trait comme 32768+64 = 32704, qui est dans la plage des
valeurs avec signe codes sur 2 octets possibles.
Pour dclarer visEvtAdd en tant que valeur code sur 2 octets dans un programme,
ajoutez linstruction suivante :
C1oba1 Cohsf v1sEvfAddx = &h000
Un autre moyen permettant dutiliser visEvtAdd consiste inclure Visconst.bas dans le
projet. Pour localiser le fichier Visconst.bas, reportez-vous la section Matriaux de
rfrence en ligne , page 4. Pour ajouter un fichier un projet VBA, choisissez Fichier >
Importer un fichier. Pour ajouter un fichier un projet Visual Basic, choisissez Projet >
Ajouter un fichier.
422 CHAP I TRE 21
Choix de laction excuter
Laction dclencher dtermine la mthode employer pour crer lobjet Event, Add
ou AddAdvise. Une fois que vous avez choisi lobjet source, vous pouvez crer lobjet
Event en lajoutant la collection EventList de lobjet source.
Pour excuter un programme complmentaire ou un autre programme externe,
crez un objet Event laide de la mthode Add de la collection EventList de
lobjet source.
Pour envoyer une notification, crez un objet Event laide de la mthode
AddAdvise de la collection EventList de lobjet source. Vous devez galement
indiquer Visio lobjet quil faut notifier. Cela correspond une rfrence au
rcepteur dvnements.
Pour plus dinformations sur les mthodes Add et AddAdvise, reportez-vous laide
en ligne Rfrence du dveloppeur (accessible via ? > Rfrence du dveloppeur)
fournie avec Visio.
Obt ent ion dinf ormat ions concernant un objet Event
Une fois que vous avez cr un objet Event, vous pouvez obtenir des informations le
concernant en effectuant une requte sur ses proprits (en suivant la procdure
dcrite dans laide en ligne Rfrence du dveloppeur fournie avec Visio). Par ailleurs,
la proprit EventInfo de lobjet Application fournit des informations
supplmentaires sur certains vnements aprs leur dclenchement. Par exemple, une
fois que lvnement ShapesDeleted a t dclench, vous obtenez les noms des
formes supprimes de la proprit EventInfo.
Comme il nexiste quune proprit EventInfo pour de nombreux vnements
potentiels, vous devez prciser lvnement grer lorsque vous rcuprez EventInfo.
Pour ce faire, transmettez le numro de squence de lvnement (que Visio transmet
en tant que troisime argument lorsquil appelle VisEventProc sur lobjet rcepteur
correspondant), ou transmettez visEvtIDMostRecent pour lvnement le plus
rcent. Si vous ne prcisez aucune autre information pour lvnement, EventInfo
renvoie une chane vide.
Pour plus dinformations sur les donnes transmises par un vnement donn,
effectuez une recherche laide de cet vnement dans laide en ligne Rfrence du
dveloppeur fournie avec Visio.
GESTI ON DES VNEMENTS DANS VI SI O 423
Crat ion dun objet Event excut ant un programme
complment aire
Vous crez un objet Event qui lance un programme complmentaire laide de la
mthode Add de la collection EventList. Pour crer un objet Event qui lance un
programme complmentaire, vous appelez la mthode Add avec les arguments
suivants :
Le code du ou des vnements grer.
Le code daction visActCodeRunAddon.
Le nom du programme complmentaire excuter.
La chane darguments transmettre au programme complmentaire lorsque
lobjet Event est dclench (facultatif).
Lors du dclenchement de lobjet Event, Visio transmet la chane darguments en tant
quarguments de ligne de commande si le programme complmentaire est un
fichier .EXE, ou en tant que champ lpCmdLineArgs de la structure VAOV2LSTRUCT
transmise un programme complmentaire mis en oeuvre par une bibliothque
Visio (VSL).
Par exemple, le code suivant cre un objet Event qui excute le programme
complmentaire Showargs.exe et transmet la chane /args=Forme ajoute ! en tant
quargument de ligne de commande. Lobjet Event est ajout la collection EventList
du document.
Lorsquune forme est insre dans une page du document, lvnement ShapeAdded
dclenche le lancement du programme complmentaire Showargs.exe, dont lobjectif
est didentifier la forme ajoute avec la chane Forme ajoute ! .
P1vafe Sub IomLoad|)
01m evehfs0b As v1s1o.EvehfL1sf
01m doc0b As v1s1o.0ocumehf
Ce uh houveau dess1h
uhe occuehce a da f ass1ghe a gappv1s1o.
Sef doc0b = gappv1s1o.0ocumehfs.Add|"")
L1e 1a co11ecf1oh EvehfL1sf de ce documehf
Sef evehfs0b = doc0b.EvehfL1sf
Aoufe uh obef Evehf qu1 s`excufea au dc1ehchemehf d`vhemehf
evehfs0b.Add v1sEvfShape + v1sEvfAdd, v1sAcfCodePuhAddoh,
"Sh0WAPCS.EXE", "/ags=Iome aoufe !"
Ehd Sub
424 CHAP I TRE 21
Persist ance dun objet Event excut ant un programme
complment aire
Un objet Event excutant un programme complmentaire peut tre stock dans un
document Visio si la proprit PersistsEvents de lobjet source a la valeur TRUE.
Cette opration est parfois appele rendre un vnement persistant. Un objet Event
peut tre stock dans un document sil rpond aux conditions suivantes :
Laction de lobjet Event doit tre lexcution dun programme complmentaire.
Les objets Event de notification ne peuvent pas tre stocks. Si un objet Event peut
tre stock, sa proprit Persistable a la valeur TRUE.
La proprit PersistsEvents de lobjet source de lvnement doit avoir la valeur
TRUE. Dans Visio 2000, cest le cas des objets Document, Page et Master.
La persistance dun objet Event dpend du paramtrage de sa proprit Persistent. Si
la proprit Persistable de lobjet Event est vraie, Visio considre que lobjet doit tre
stock dans le document ; la valeur dorigine de sa proprit Persistent est TRUE. Si
vous ne souhaitez pas que Visio stocke lobjet Event, donnez la valeur FALSE sa
proprit Persistent.
REMARQUE : avant de tenter de modifier la proprit Persistent dun objet Event, vrifiez
que sa proprit Persistablea la valeur TRUE. Une erreur se produit si vous dfinissez la
proprit Persistent dun objet ne pouvant pas tre persistant.
Crat ion dun objet Event envoyant une not if icat ion
Un objet Event envoyant une notification est cr laide de la mthode AddAdvise
de la collection EventList et peut envoyer une notification un programme en cours
dexcution. La cration de ce type dobjet Event diffre sur plusieurs points de celle
dobjets excutant un programme complmentaire :
Vous dfinissez dans le programme lobjet (non-Visio) devant recevoir la
notification. Ce type dobjet est parfois appel rcepteur de notification ou objet
rcepteur.
Vous rdigez une procdure dvnement (VisEventProc) dans lobjet rcepteur
pour grer les notifications leur rception.
Votre programme cre dans Visio des occurrences dobjet rcepteur et Event lors
de lexcution. Comme ce type dobjet Event utilise des rfrences, il ne peut pas
tre stock dans un document Visio et doit tre recr chaque excution du
programme.
GESTI ON DES VNEMENTS DANS VI SI O 425
Le schma suivant montre linteraction entre le programme et les objets Visio lors de
la transmission de notifications dvnement.
Interaction entre un rcepteur
dvnements client et un objet
source Visio
Dans ce schma, la variable pSource est une rfrence lobjet source dans Visio. Elle
permet de rcuprer une rfrence la collection EventList de lobjet source, qui est
associe pEvtList.
Le programme utilise pEvtList.AddAdvise pour crer lobjet Event, qui est attribu
pEvt. A laide de AddAdvise, le programme transmet une rfrence lobjet rcepteur
auquel Visio envoie une notification lors du dclenchement de lobjet Event.
Dfinition de lobjet rcepteur de notification
Un objet rcepteur est un objet non-Visio dfini pour recevoir les notifications
envoyes par Visio. Il est indispensable que lobjet rcepteur soit programmable
(cest--dire quil prenne en charge linterface Automation IDispatch) et quil mette
disposition une procdure dvnement appele VisEventProc. Vous pouvez associer
lobjet rcepteur toute autre fonctionnalit adquate pour votre programme.
Vous pouvez structurer votre solution de plusieurs faons. Par exemple, vous pouvez
crer les lments suivants :
Une classe pour chaque vnement dclench par un objet source.
Une classe pour capturer tous les vnements dclenchs par un seul objet source.
Une classe pour capturer les vnements dclenchs par plusieurs objets source.
Une classe pour grer un vnement donn dclench par plusieurs objets source.
Programme client
pEvt
Objet
rcepteur
Objet source
Visio
Objet
EventList
Objet
Event
pSource
pEvtList
pSink
eventcode & pSink
pEvt
426 CHAP I TRE 21
Pour crer un objet rcept eur en Microsof t VBA ou en Visual Basic :
1 Choisissez Insertion > Module de classe dans le projet VBA ou Projet > Ajouter un
module de classe dans le projet Visual Basic.
2 Donnez un nom au nouvel objet qui constitue votre objet rcepteur.
Gnralement, la valeur de la proprit Public de lobjet est TRUE, mais cela nest
pas obligatoire. Si vous le souhaitez, vous pouvez ajouter au code des mthodes
prdfinies telles que Initialize et Terminate, ou ajouter vos propres mthodes la
classe.
REMARQUE : les projets Visual Basic utilisant la mthode AddAdvisedoivent tre
paramtrs en tant que projet ActiveX.EXE plutt quen tant que projet Standard.EXE
car ils doivent mettre disposition des objets publics (objets rcepteur). La proprit
Instancing des classes servant dobjets rcepteur doit gnralement tre paramtre sur
MultiUse.
Rdaction de la procdure dvnement VisEventProc
Dans le module de classe, rdigez une procdure dvnement intitule VisEventProc
pour grer les notifications provenant de Visio. Rdigez le code dans la procdure
VisEventProc de la manire adquate pour le programme. Visio nexige pas que vous
conceviez le gestionnaire dvnements de faon particulire. Toutes les techniques de
cration de boucle dans la procdure sont disponibles. Par ailleurs, en fonction du
nombre et de la catgorie des vnements grs par le programme, vous pouvez tre
amen dfinir un objet rcepteur diffrent pour chaque vnement. Lors du
dclenchement dun objet Event, Visio appelle la procdure VisEventProc associe
lobjet rcepteur correspondant.
GESTI ON DES VNEMENTS DANS VI SI O 427
Vous devez dclarer la procdure VisEventProc avec les paramtres suivants :
Cration dun objet Event envoyant une notification
Maintenant que lobjet rcepteur est dfini pour votre programme, vous devez crer
les objets Event inclure dans la collection EventList de lobjet source dont vous sou-
haitez recevoir les vnements.
Pour crer un objet Event envoyant une not if icat ion :
1 Crez une occurrence de lobjet rcepteur.
Vous pouvez utiliser la mme occurrence de lobjet rcepteur pour plusieurs objets
Event ou utiliser plusieurs occurrences de lobjet rcepteur.
2 Rcuprez une rfrence la collection EventList de lobjet source dans Visio.
3 Utilisez la mthode AddAdvise, et indiquez le code dvnement et une rfrence
lobjet rcepteur.
AddAdvise comporte deux autres arguments. Le troisime argument est rserv
une utilisation ultrieure et doit tre une chane Null (""). Le quatrime peut tre
une chane darguments destins au gestionnaire dvnements. Visio les attribue
la proprit TargetArgs de lobjet Event. Lorsque le programme reoit une
notification, VisEventProc peut rcuprer ces arguments dans lobjet Event qui la
appel.
Pub11c Sub v1sEvehfPoc|
evehfCode As Thfege, Code d`vhemehf de 1`vhemehf qu1 a dc1ehch
`1`obef Evehf
souce0b as obecf, Pfehce a 1`obef souce dohf 1a co11ecf1oh
EvehfL1sf cohf1ehf 1`obef Evehf dc1ehcheu.
evehfT0 As Lohg, Tdehf1f1ahf uh1que de 1`obef Evehf dahs sa
co11ecf1oh EvehfL1sf. A 1`1hvese de 1a pop1f
Thdex, ce1u1-c1 he chahge pas quahd des obefs
sohf aoufs a 1a co11ecf1oh ou supp1ms.
vous pouvez accde a 1`obef Evehf depu1s 1a
pocdue v1sEvehfPoc eh uf111sahf
souce.EvehfL1sf.TfemIomT0|1d).
seqhum As Lohg, Squehce de 1`vhemehf coespohdahf aux
vhemehfs dc1ehchs dahs ceffe occuehce
de v1s1o.
subecf0b As 0becf, Pfehce au suef de 1`vhemehf qu1 esf
1`obef o 1`vhemehf esf suvehu.
moeThfo As va1ahf) Comp1mehf d`1hfomaf1oh, s`11 y eh a,
accompaghahf 1a hof1f1caf1oh. Pou 1a p1upaf des
vhemehfs, cef agumehf cohf1ehf hofh1hg.
Ehd Sub
428 CHAP I TRE 21
Pour df inir un objet rcept eur et paramt rer une not if icat ion dvnement
dans VBA ou Visual Basic (rcapit ulat if ) :
1 Insrez un module de classe dans le projet.
2 Dans ce module de classe, rdigez une procdure dvnement intitule
VisEventProc.
Si vous utilisez linstruction Implements suivante dans le module de classe, vous
pouvez choisir IVisEventProc dans la zone de liste des objets et slectionner
VisEventProc dans la zone de liste des procdures.
Pour plus dinformations sur le mot-cl Implements, consultez votre
documentation Visual Basic.
3 Dans la procdure VisEventProc, rdigez le code permettant de grer les
notifications provenant de Visio de la manire adquate pour le programme.
4 Dans le programme, crez une occurrence du module de classe.
5 Rcuprez une rfrence la collection EventList de lobjet source.
6 Utilisez la mthode AddAdvise de la collection EventList pour crer lobjet Event.
Exemple de procdure VisEvent Proc
La procdure VisEventProc suivante utilise un bloc Select Case pour contrler trois
vnements : DocumentSaved, PageAdded et ShapeDeleted. Les autres vnements
dpendent du cas par dfaut (Case Else). Chaque bloc Case gnre une chane
(strDumpMsg) comportant le nom et le code de lvnement dclench. Enfin, la
procdure affiche cette chane dans une zone de message.
Tmp1emehfs v1s1o.Tv1sEvehfPoc
Pub11c Sub v1sEvehfPoc|evehfCode As Thfege,
souce0b As 0becf, evehfT0 As Lohg, seqhum As Lohg,
subecf0b As 0becf, moeThfo As va1ahf)
01m sf0umpMsg As Sf1hg
Cheche 1`vhemehf dc1ehch
Se1ecf Case evehfCode
Case v1sEvfCode0ocSave
sf0umpMsg = "Save|" & evehfCode & ")"
Case |v1sEvfPage + v1sEvfAdd)
sf0umpMsg = "Page Added|" & evehfCode & ")"
Case v1sEvfCodeShape0e1efe
sf0umpMsg = "Shape 0e1efed|" & evehfCode & ")"
Case E1se
sf0umpMsg = "0fhe|" & evehfCode & ")"
Ehd Se1ecf
Aff1che 1e hom de 1`vhemehf ef soh code
fmEvehf01sp1ay.EvehfTexf.Texf = sf0umpMsg
Ehd Sub
GESTI ON DES VNEMENTS DANS VI SI O 429
Pour obtenir un exemple de programme crant des objets Event qui peuvent appeler
cette procdure, reportez-vous la section Exemple dobjets Event envoyant des
notifications , page 429.
Exemple dobjet s Event envoyant des not if icat ions
Prenez lexemple suivant : lorsque vous avez cr lobjet rcepteur, vous avez intitul
le module de classe insr dans le projet CEventSamp. Le code suivant cre une
occurrence de lobjet rcepteur CEventSamp, ainsi que des objets Event pour notifier
les vnements suivants : DocumentSaved, PageAdded et ShapesDeleted.
Lorsque lvnement PageAdded, ShapesDeleted ou DocumentSaved est dclench,
Visio appelle VisEventProc de lobjet rcepteur g_sink. Pour obtenir un exemple de la
procdure VisEventProc correspondante, reportez-vous la section Exemple de
procdure VisEventProc , page 428
Ce uhe occuehce de 1a c1asse d`obef s1hk CEvehfSamp
01m gS1hk As CEvehfSamp
01m doc0b As v1s1o.0ocumehf
P1vafe Sub IomLoad|)
01m evehfs0b As v1s1o.EvehfL1sf
Ce uhe occuehce de 1a c1asse CEvehfSamp
gS1hk 1s g1oba1 fo fhe fom.
Sef gS1hk = heW CevehfSamp
Ce uh houveau dess1h
uhe occuehce v1s1o a da f aff1bue a gappv1s1o
Sef doc0b = gappv1s1o.0ocumehfs.Add|"")
L1e 1a co11ecf1oh EvehfL1sf de ce documehf
Sef evehfs0b = doc0b.EvehfL1sf
Aoufe des obefs Evehf qu1 ehveohf des hof1f1caf1ohs
Aoufe uh obef Evehf pou 1`vhemehf 0ocumehfSaved
evehfs0b.AddAdv1se v1sEvfCode0ocSave, gS1hk, "", "0ocumehf
eheg1sf..."
Aoufe uh obef Evehf pou 1`vhemehf Shapes0e1efed
evehfs0b.AddAdv1se v1sEvfCodeShape0e1efe, gS1hk, "", "Iome
supp1me..."
Aoufe uh obef Evehf pou 1`vhemehf PageAdded
evehfs0b.AddAdv1se |v1sEvfPage + v1sEvfAdd), gS1hk, "", "Page
aoufe..."
Ehd Sub
430 CHAP I TRE 21
Dure de vie dun objet Event envoyant une not if icat ion
Les objets Event crs laide de la mthode AddAdvise persistent jusqu ce que lun
des vnements suivants se produise :
Lobjet Event est supprim laide de la mthode Delete.
Toutes les rfrences lobjet source sont libres, notamment celles dtenues
indirectement par le biais dune rfrence la collection EventList de lobjet
source ou lun des objets Event de la collection.
Vous fermez Visio.
Lorsque vous fermez Visio, cette application met un vnement BeforeQuit, que le
programme doit grer en librant toutes ses rfrences aux objets source ou en
excutant toute autre tche de nettoyage. Une fois que Visio met BeforeQuit, toutes
les rfrences aux objets rcepteur dans le programme sont libres.
Sommaire
22
Personnalisat ion de
lint erf ace ut ilisat eur Visio
Pour simplifier lexcution de votre programme ou de Microsoft

Visio

, vous pouvez
personnaliser linterface utilisateur Visio (IU). Vous pouvez, par exemple, ajouter un
bouton de barre doutils personnalis ou une option de menu qui excute la solution,
ou encore supprimer des outils et des commandes de menu qui ne doivent pas tre
disponibles pendant lexcution de la solution.
Vous pouvez modifier linterface utilisateur Visio en effectuant lune des oprations
suivantes :
Utilisez la commande Affichage > Barres doutils > Personnaliser pour ajouter des
commandes de menu et des outils intgrs qui napparaissent pas par dfaut ou
pour laborer une barre doutils personnalise partir de commandes et doutils
intgrs Visio. Lutilisateur peut galement effectuer cette opration sil a accs la
commande Affichage > Barres doutils > Personnaliser.
Insrez dans la solution du code permettant daccder aux objets Visio UIObject
pour ajouter des options de menu, des outils ou des acclrateurs dans linterface
utilisateur Visio. Vous pouvez aussi utiliser des objets UIObject pour supprimer
des options de menu ou des outils intgrs Visio pendant lexcution de la
solution.
Crez un fichier dinterface utilisateur personnalis (.vsu) qui ne contient que les
options de menu et les boutons de barre doutils propres la solution, puis chargez
ce fichier chaque excution de la solution. Le fichier dinterface utilisateur
personnalis contient les donnes de linterface utilisateur ; il constitue un
instantan de votre interface utilisateur personnalise. Pour apporter des
modifications importantes linterface utilisateur Visio, vous pouvez coder ces
modifications dans un environnement de dveloppement externe et enregistrer un
fichier dinterface utilisateur personnalis.
Elments personnalisables ................................................................................... 432
Planification des modifications de linterface utilisateur.................................... 440
Modifications apportes linterface utilisateur ................................................. 443
Utilisation des fichiers dinterface utilisateur personnalise.............................. 457
432 CHAP I TRE 22
Ce chapitre traite de la personnalisation de linterface utilisateur Visio depuis un
programme, par lintermdiaire des objets UIObject ou dun fichier .VSU. Pour plus
dinformations sur lutilisation de la commande Affichage > Barres doutils >
Personnaliser, reportez-vous laide en ligne fournie avec Visio.
CONSEIL : si la solution est un programme externe qui utilise le moteur Visio comme
composant (contrairement un programme complmentaire qui est excut dans une
copie de Visio), vous pouvez, si vous le souhaitez, masquer dautres lments que les
menus et les barres doutils. Vous pouvez masquer en intgralit la copie de Visio en
paramtrant la proprit Application.Visiblesur FALSE. Les objets Window disposent
galement de la proprit Visible pour que vous puissiez, si besoin est, masquer une
fentre. Pour plus dinformations sur cette proprit Visible, recherchez Visible dans
laide en ligne Rfrence du dveloppeur (choisissez ? (Aide) > Rfrence du dveloppeur)
livr avec le produit Visio.
Elment s personnalisables
Vous pouvez personnaliser linterface utilisateur Visio depuis un programme laide
des objets UIObject. De mme que vous rcuprez des objets Document pour les
utiliser dans des documents ouverts dans une copie de Visio, vous pouvez aussi
rcuprer des objets UIObject pour utiliser les menus, les barres doutils, les barres
dtat et les acclrateurs de linterface utilisateur Visio.
Lillustration suivante prsente les objets UIObject du modle dobjet Visio.
Obj et s UIObject du modle dobjet
Visio
De nombreux objets du modle dobjet Visio correspondent aux lments visibles
dune copie de Visio. Par exemple, un objet Menu peut reprsenter le menu Edition
Visio et un objet MenuItem peut reprsenter la commande Copier situe dans ce
menu, un lment personnalis qui excute une macro ou un programme
complmentaire, ou encore un sous-menu.
UIObject
UIObject
StatusBar
StatusBars
ToolbarSet
ToolbarSets
AccelTable
AccelTables
MenuSet
MenuSets
StatusBarItem
StatusBarItems
Toolbar
Toolbars
AccelItem
AccelItems
Menu
Menus
ToolbarItem
ToolbarItems
MenuItem
MenuItems
MenuItem...
MenuItems
Document
Application
BuiltInMenus
CustomMenus
BuiltInToolbars
CustomToolbars
ToolbarItem
ToolbarItems
StatusBarItem
StatusBarItems
Objet
Collection
Explication
StatusBars
ToolbarSets
AccelTables
MenuSets
StatusBarItems
Toolbars
AccelItems
Menus
ToolbarItems
MenuItems MenuItems
ToolbarItems
StatusBarItems
P ERSONNAL I SATI ON DE L I NTERFACE UTI L I SATEUR VI SI O 433
De nombreux objets UIObject
correspondent aux lments
visibles dune copie de Visio.
Rcuprat ion dun objet UIObject
Les objets UIObject diffrent des autres objets du modle dobjet car la proprit
UIObject nest pas la seule renvoyer un objet UIObject. Les proprits
BuiltInMenus, CustomMenus, BuiltInToolbars et CustomToolbars renvoient en
effet chacune un objet UIObject qui reprsente des menus et des acclrateurs
(BuiltInMenus ou CustomMenus), ou des barres doutils et des barres dtat
(BuiltInToolbars ou CustomToolbars).
Pour modifier une copie de linterface utilisateur Visio intgre, utilisez la proprit
BuiltInMenus ou BuiltInToolbars de lobjet Application pour rcuprer un objet
UIObject. Par exemple, pour modifier une copie des menus intgrs Visio et
rcuprer un objet UIObject qui reprsente des menus et des acclrateurs Visio,
commencez par ce code :
Pour rcuprer un objet UIObject qui reprsente une copie des barres doutils
intgres Visio :
A Menu
B Barre doutils
C Bouton de barre doutils
D Barre dtat
E Elment de barre dtat
01m u10b As v1s1o.uT0becf
Sef u10b = v1s1o.App11caf1oh.u11fThMehus
01m u10b As v1s1o.uT0becf
Sef u10b = v1s1o.App11caf1oh.u11fThToo1bas|0)
A
E
B
C
D
434 CHAP I TRE 22
Pour modifier une interface utilisateur personnalise, utilisez la proprit
CustomMenus ou CustomToolbars dun objet Application ou Document afin
dobtenir un objet UIObject. Vous pouvez galement utiliser ces proprits pour
dterminer si une interface utilisateur personnalise est en vigueur, et si elle a t
personnalise par une autre solution ou par lutilisateur. Par exemple :
Pour rcuprer un objet UIObject qui reprsente les menus personnaliss dun objet
Document :
Un objet UIObject qui reprsente des menus (intgrs ou personnaliss) dispose de
deux proprits qui renvoient des collections : MenuSets et AccelTables. Un objet
UIObject qui reprsente des barres doutils (intgres ou personnalises galement)
dispose aussi de deux proprits qui renvoient des collections : ToolbarSets et
StatusBars.
REMARQUE : la diffrence de la plupart des collections dobjets Visio, les collections qui
reprsentent les objets UIObject sont indexes partir de 0. Spcifiez un indice de 0 avec
la proprit Itemde la collection pour obtenir le premier lment de lune des collections
suivantes : AccelTables, AccelItems, MenuSets, Menus, MenuItems, StatusBars,
StatusBarItems, ToolbarSets, Toolbars, ToolbarItems.
La branche UIObject du modle dobjet Visio est plutt labore, cest la raison pour
laquelle il est important de comprendre clairement les divers objets et leurs relations
rciproques avant de les personnaliser. Les sections suivantes dcrivent la hirarchie des
objets qui reprsentent les menus, les acclrateurs et les barres dtat Visio.
v1f1e s1 1e documehf compofe des mehus pesohha11ss
Tf Th1s0ocumehf.CusfomMehus Ts hofh1hg Theh
v1f1e s`11 ex1sfe des mehus pesohha11ss v1s1o
Tf v1s1o.App11caf1oh.CusfomMehus Ts hofh1hg Theh
uf111se 1es mehus 1hfgs
Sef v1suT0b = v1s1o.App11caf1oh.u11fThMehus
E1se
uf111se 1es mehus pesohha11ss v1s1o
Sef v1suT0b = v1s1o.App11caf1oh.CusfomMehus
01m u10b As v1s1o.uT0becf
Sef u10b = Th1s0ocumehf.CusfomMehus
Pehvo1e hofh1hg s1 1e documehf h`a aucuh mehu pesohha11s
P ERSONNAL I SATI ON DE L I NTERFACE UTI L I SATEUR VI SI O 435
Objet s relat if s aux menus
Des fentres diffrentes (fentre de dessin, fentre ShapeSheet

ou fentre de gabarit)
affichent des menus diffrents. Le tableau suivant rpertorie les objets relatifs aux
menus dans le modle dobjet Visio.
Objets relatifs aux menus dans le modle dobjet Visio
Objet Description
M enuSets Collection de tous les ensembles de menus Visio possibles. Pour
rcuprer une collection MenuSets, obtenez la proprit MenuSets d un
objet UIObject reprsentant des menus et des acclrateurs.
M enuSet Ensemble de menus disponibles dans une fentre. Par exemple, un objet
MenuSet peut reprsenter l ensemble des menus disponibles lorsqu une
fentre de dessin est active. Pour rcuprer un objet MenuSet, utilisez la
proprit ItemAtID d une collection MenuSets et spcifiez l I D du contexte
souhait. Pour accder au tableau rpertoriant les contextes et les
identificateurs pouvant tre utiliss avec ItemAtID, recherchez I temAtI D
dans l aide en ligne Rfrence du dveloppeur (choisissez ? (Aide) >
Rfrence du dveloppeur) fournie avec Visio.
Tous les objets MenuSet correspondent un certain contexte de fentre
sauf un objet MenuSet qui reprsente un menu contextuel (qui apparat
lorsque vous cliquez avec le bouton droit sur une forme, une page ou une
fentre de gabarit).
REMARQUE : dans M icrosoft

Visio

2000, la proprit Position d un


objet MenuSet permet d indiquer si la barre de menus qu il reprsente est
ancre ( gauche, droite, en haut ou en bas) ou flottante. La proprit
RowIndex permet d indiquer l emplacement de la barre de menus par
rapport aux autres barres affiches dans la fentre Visio. Pour plus
d informations sur ces proprits, recherchez-les dans l aide en ligne
Rfrence du dveloppeur (choisissez ? (Aide) > Rfrence du
dveloppeur) fournie avec Visio.
M enus Collection des menus d un ensemble. Par exemple, les options de la
collection Menus peuvent reprsenter les menus Fichier, Edition et
O ptions. Pour rcuprer une collection Menus, rcuprez la proprit
Menus d un objet MenuSet.
M enu M enu. Par exemple, les options d un objet Menu qui reprsentent un menu
Fichier peuvent tre O uvrir, Fermer et Edition. Pour rcuprer un objet
Menu, utilisez la proprit Item d une collection Menus avec l indice du
menu souhait. Les menus sont indexs dans l ordre o ils apparaissent :
de gauche droite ou de haut en bas dans une copie de Visio. Par
exemple, dans la plupart des fentres, le menu Fichier porte un indice
de 0. Pour ajouter un objet Menu, utilisez la mthode Add ou AddAt d une
collection Menus.
M enuI tems Ensemble des options d un menu Visio. Pour rcuprer une collection
MenuItems, rcuprez la proprit MenuItems d un objet Menu.
436 CHAP I TRE 22
Dans Visio 2000, les objets Menu et MenuItem possdent tous les deux les mmes
proprits :
La proprit IconFileName qui spcifie licne afficher avec loption dans le
menu.
La proprit Style qui indique si le menu affiche licne et le texte, ou le texte
seulement.
La proprit State qui spcifie si loption est active (sil sagit dune icne) ou
coche (sil ny a que du texte).
La proprit Enabled qui indique si la commande est grise.
Pour plus dinformations sur ces proprits, recherchez-les dans laide en ligne
Rfrence du dveloppeur fournie avec Visio.
M enuI tem O ption, lment ou commande d un menu Visio. Pour rcuprer un objet
MenuItem, utilisez la proprit Item de la collection MenuItems avec l indice
de l option souhaite. Les options de menu sont indexes dans l ordre o
elles apparaissent dans le menu, c est--dire de haut en bas. Par exemple,
la commande Annuler du menu Edition Visio a un indice de 0.
Pour ajouter un objet MenuItem, utilisez la mthode Add ou AddAt de la
collection MenuItems. La proprit CmdNum d un objet MenuItem permet de
spcifier un I D de commande correct, correspondant la dclaration
effectue dans la bibliothque de types Visio, ou 0 si l lment est un
sparateur. Si l option excute un programme, sa proprit AddOnName
spcifie le nom d une macro ou d un programme excutable lorsque
l utilisateur choisit cette option ; sa proprit AddOnArgs spcifie les
arguments transmettre.
Si une option Visio comporte un objet MenuItem qui reprsente ce
sous-menu, elle dispose d une collection MenuItems avec des objets
MenuItem. La proprit CmdNum d un objet MenuItem doit tre paramtre
sur visCmdHierarchical, et les proprits et mthodes restantes pouvant
tre utilises sont : Caption, Index, MenuItems, Parent et Delete. Toutes les
autres proprits et mthodes sont ignores.
Objets relatifs aux menus dans le modle dobjet Visio (suite)
Objet Description
P ERSONNAL I SATI ON DE L I NTERFACE UTI L I SATEUR VI SI O 437
Objet s relat if s aux acclrat eurs
Un acclrateur est une combinaison de touches qui, lorsquelle est utilise, excute
une commande. Par exemple, lacclrateur de la commande Copier est Ctrl+C, et
lacclrateur de la commande Coller est Ctrl+V. Le tableau suivant rpertorie les
objets relatifs aux acclrateurs du modle dobjet Visio.
Objet s relat if s aux barres dout ils
Les diffrentes fentres affichent des ensembles de barres doutils diffrents. Par
exemple, lorsquune fentre ShapeSheet

est active, les boutons de barre doutils sont


diffrents de ceux dune fentre de dessin active. Le tableau suivant rpertorie les
objets relatifs aux barres doutils du modle dobjet Visio.
CONSEIL : dans Visio 2000, vous pouvez associer une barre doutils personnalise un
document Visio en utilisant le bouton Associer de la bote de dialogue Personnaliser. Pour
plus dinformations sur la cration et lassociation des barres doutils, recherchez la bote de
dialogue Personnaliser dans laide en ligne fournie avec Visio.
Objets relatifs aux acclrateurs du modle dobjet Visio
Objet Description
AccelTables Collection de toutes les tables d acclrateurs Visio. Les acclrateurs
diffrent en fonction des fentres. Pour rcuprer une collection
AccelTables, rcuprez la proprit AccelTables d un objet UIObject.
AccelTable Table des acclrateurs disponibles pour une fentre. Les objets
AccelTable existent seulement pour les contextes de fentre, comme la
fentre de dessin, et ne sont pas disponibles pour les menus
contextuels. Pour rcuprer un objet AccelTable, utilisez la proprit
ItemAtID d une collection AccelTables et spcifiez l I D du contexte
souhait.
AccelI tems Collection d acclrateurs dans une table d acclrateurs. Pour rcuprer
une collection AccelItems, rcuprez la proprit AccelItems d un objet
AccelTable.
AccelI tem Elment d acclrateur unique. Les lments d acclrateur, comme
Ctrl+ C (Copier) et Ctrl+ V (Coller), sont disponibles lorsqu une fentre de
dessin est active. Pour rcuprer un objet AccelItem, utilisez la proprit
Item d une collection AccelItems avec l indice du menu souhait.
REMARQUE : dans Visio 2000, l objet AccelItem dispose dsormais des
proprits AddOnName et AddOnArgs. Vous pouvez ainsi associer une
macro ou un programme complmentaire M icrosoft

Visual Basic

pour
Applications (VBA) un acclrateur. Dans les versions prcdentes
Visio, seules les commandes intgres pouvaient tre associes aux
acclrateurs.
438 CHAP I TRE 22
Objets relatifs aux barres doutils du modle dobjet Visio
Objet Description
ToolbarSets Collection de tous les ensembles de barres d outils Visio possibles. Pour
rcuprer une collection ToolbarSets, rcuprez la proprit ToolbarSets
d un objet UIObject qui reprsente des barres d outils et des barres d tat.
Utilisez la proprit ShowToolbar de l objet Application pour vrifier si les
barres d outils Visio sont visibles.
ToolbarSet Ensemble de barres d outils disponibles dans un contexte de fentre. Par
exemple, un objet ToolbarSet peut reprsenter l ensemble des barres
d outils disponible lorsqu une fentre ShapeSheet est active. Pour
rcuprer un objet ToolbarSet, utilisez la proprit ItemAtID d une
collection ToolbarSets et spcifiez l I D du contexte souhait.
Toolbars Collection de barres d outils Visio dans un ensemble de barres d outils.
Pour rcuprer une collection Toolbars, rcuprez la proprit Toolbars
d un objet ToolbarSet.
Toolbar Barre d outils Visio. Pour rcuprer un objet Toolbar, utilisez la proprit
Item d une collection Toolbars avec l indice de la barre d outils souhaite.
Les barres d outils intgres sont indexes dans l ordre o elles seraient
initialement ancres dans la fentre Visio si toutes les barres d outils
intgres taient visibles. Les barres d outils personnalises sont
indexes dans l ordre o elles sont ajoutes la collection.
Pour ajouter une barre d outils, utilisez la mthode Add ou AddAt d une
collection Toolbars.
La proprit Caption d un objet Toolbar reprsente la lgende qui apparat
dans le sous-menu de l option de menu Affichage > Barres d outils
disponible dans la fentre de dessin Visio.
REMARQUE : dans Visio 2000, la proprit Position d un objet Toolbar
permet d indiquer si la barre d outils qu elle reprsente est ancre (
gauche, droite, en haut ou en bas) ou flottante. La proprit RowIndex
concerne l emplacement de la barre d outils par rapport aux autres barres
affiches dans la fentre Visio. Pour plus d informations sur ces
proprits, recherchez-les dans l aide en ligne Rfrence du dveloppeur
en ligne (choisissez ? (Aide) > Rfrence du dveloppeur) fournie avec
Visio.
ToolbarI tems Collection d lments d une barre d outils Visio. Pour rcuprer une
collection ToolbarItems, rcuprez la proprit ToolbarItems d un objet
Toolbar.
ToolbarI tem Contrle d une barre d outils Visio. Pour rcuprer un objet ToolbarItem,
utilisez la proprit Item de la collection ToolbarItems avec l indice de
l lment de barre d outils souhait. Les lments de barre d outils sont
indexs dans l ordre o ils apparaissent sur la barre d outils, c est--dire
de gauche droite. Pour la plupart des contextes, l lment de barre
d outils Dessin vide a un indice de 0. Pour ajouter un lment une barre
d outils, utilisez la mthode Add ou AddAt d une collection ToolbarItems.
REMARQUE : dans Visio 2000, les objets ToolbarItem disposent d une
proprit Style qui concerne l affichage (icne et texte, ou texte
seulement). Les objets ToolbarItem disposent aussi d une proprit State
qui indique si l lment apparat activ (s il a une icne) ou coch (s il
ne s agit que de texte). Pour plus d informations sur ces proprits,
recherchez-les dans l aide en ligne Rfrence du dveloppeur fournie
avec Visio.
P ERSONNAL I SATI ON DE L I NTERFACE UTI L I SATEUR VI SI O 439
Objet s relat if s aux barres dt at
Une barre dtat affiche des informations sur le statut dune forme, dun menu ou dun
outil, comme lemplacement du pointeur sur la page ou langle et la longueur dune
ligne. Le tableau suivant rpertorie les objets relatifs aux barres dtat du modle dobjet
Visio.
Objets relatifs aux barres dtat du modle dobjet Visio
Objet Description
StatusBars Collection de toutes les barres d tat Visio possibles. Pour rcuprer
une collection StatusBars, utilisez la proprit StatusBars d un objet
UIObject.
StatusBar Barre d tat d un contexte de fentre. Par exemple, un objet
StatusBar peut reprsenter la barre d tat affiche lorsqu une forme
est slectionne. Pour rcuprer un objet StatusBar, utilisez la
proprit ItemAtID d une collection StatusBars et indiquez l I D du
contexte souhait.
StatusBarI tems Collection des lments d une barre d tat Visio. Pour rcuprer une
collection StatusBarItems, rcuprez la proprit StatusBarItems d un
objet StatusBar.
StatusBarI tem Elment d une barre d tat Visio. Pour rcuprer un objet
StatusBarItem, utilisez la proprit Item de la collection StatusBarItems
avec l indice de l lment de barre d tat souhait. Les lments de
barre d tat sont indexs dans l ordre o ils apparaissent sur une
barre d tat, c est--dire de gauche droite. Par exemple, lorsqu une
forme en deux dimensions (2D) est slectionne, l lment de la
barre d tat correspondant sa largeur apparat gauche et a un
indice de 0.
REMARQUE : dans Visio 2000, les objets StatusBarItem disposent
d une proprit Style qui concerne l affichage (icne et texte, ou
texte seulement). Les objets StatusBarItem disposent galement
d une proprit State qui indique si l lment apparat activ (s il a
une icne) ou coch (s il ne s agit que de texte). Pour plus
d informations sur ces proprits, recherchez-les dans l aide en ligne
Rfrence du dveloppeur fournie avec Visio.
440 CHAP I TRE 22
Planif icat ion des modif icat ions de lint erf ace ut ilisat eur
Lorsque vous crez une interface utilisateur personnalise, vous devez vous poser les
questions suivantes :
Allez-vous personnaliser une copie de linterface utilisateur Visio intgre ou une
interface utilisateur personnalise existante ? La rponse cette question
conditionne en effet la faon dont vous rcuprez un objet UIObject, le modifiez
et comment vous restaurez linterface originale la fin de lexcution de la
solution.
Linterface utilisateur personnalise doit-elle tre disponible seulement pour
certains documents Visio ou pour tous les documents dune copie de Visio ? La
rponse permet de dterminer sa porte, cest--dire le contexte dans lequel votre
interface utilisateur personnalise est disponible.
Linterface utilisateur personnalise doit-elle tre disponible seulement lorsquun
document est actif dans une seule copie de Visio, ou chaque dmarrage de
lapplication Visio ? Cette rponse dtermine sa persistance, cest--dire la dure de
la disponibilit de votre interface utilisateur personnalise.
Dif f rences ent re la personnalisat ion dune copie de
lint erf ace ut ilisat eur Visio int gre et celle dune int erf ace
personnalise
Avant de personnaliser une interface utilisateur Visio, commencez par dterminer si
linterface utilisateur courante est linterface utilisateur Visio intgre ou une interface
personnalise. Sil sagit dune interface personnalise, il est conseill de modifier
linterface existante de votre solution, puis de la rtablir dans son tat original, plutt
que de personnaliser linterface utilisateur Visio intgre.
Lorsque vous rcuprez les barres doutils ou les menus intgrs de Visio, vous
rcuprez en fait une copie, ou un instantan de linterface utilisateur intgre Visio
que vous pouvez manipuler. Linterface utilisateur intgre Visio dorigine reste
intacte, de manire ce que vous puissiez la restaurer ultrieurement. Lorsque vous
rcuprez une interface utilisateur personnalise, vous rcuprez linterface active (y
compris toutes les barres doutils personnalises ventuellement ajoutes), non pas
une copie.
Pour dterminer linterface utilisateur en cours dutilisation, vrifiez les proprits
CustomMenus et CustomToolbars de tous les objets Document de la collection
Documents. Vrifiez ensuite les mmes proprits de lobjet Application. Si un objet
nutilise pas dinterface utilisateur personnalise, les deux proprits renvoient
Nothing, et vous pouvez, dans ce cas, simplement rcuprer une copie de linterface
utilisateur Visio intgre.
Si linterface active est une interface utilisateur personnalise, vous pouvez dcider de la
remplacer par la vtre ou de lui ajouter simplement des lments de votre interface.
P ERSONNAL I SATI ON DE L I NTERFACE UTI L I SATEUR VI SI O 441
Lexemple suivant indique comment rcuprer linterface utilisateur active de votre
document sans remplacer lventuelle interface utilisateur personnalise de niveau
application. Pour ajouter des lments de linterface utilisateur personnalise, vous
devez crire du code supplmentaire.
Pour plus dinformations sur les proprits CustomMenus et CustomToolbars,
reportez-vous laide en ligne Rfrence du dveloppeur (choisissez ? (Aide) >
Rfrence du dveloppeur) fournie avec Visio.
Cont rle de la port e de lint erf ace ut ilisat eur
De mme que vous pouvez rcuprer un objet UIObject de lobjet Document ou
Application, vous pouvez appliquer les modifications de linterface utilisateur
personnalise lobjet Document ou Application en utilisant sa mthode
SetCustomMenus ou SetCustomToolbars. La porte souhaite dtermine lobjet
auquel vous appliquez vos modifications.
Vous pouvez dcider que votre interface utilisateur personnalise sera disponible
pour un seul document ou pour lapplication. Pour utiliser linterface utilisateur
personnalise lchelle de lapplication, appliquez-la lobjet Application.
v1f1e s1 1e documehf compofe des mehus pesohha11ss
Tf Th1s0ocumehf.CusfomMehus Ts hofh1hg Theh
v1f1e s`11 ex1sfe des mehus pesohha11ss v1s1o
Tf v1s1o.App11caf1oh.CusfomMehus Ts hofh1hg Theh
uf111se 1es mehus 1hfgs
Sef v1suT0b = v1s1o.App11caf1oh.u11fThMehus
E1se
uf111se 1es mehus pesohha11ss v1s1o
Sef v1suT0b = v1s1o.App11caf1oh.CusfomMehus.C1ohe
Ehd Tf
E1se
uf111se 1es mehus pesohha11ss du f1ch1e
Sef v1suT0b = Th1s0ocumehf.CusfomMehus
Ehd Tf
442 CHAP I TRE 22
Pour utiliser linterface utilisateur personnalise uniquement lorsquun document est
actif, appliquez linterface utilisateur personnalise un objet Document. Cette
mthode est celle que vous utilisez gnralement lorsque vous programmez dans
Microsoft Visual Basic pour Applications (VBA). Lexemple suivant indique
comment paramtrer les menus personnaliss de lobjet ThisDocument :
Cont rle de la persist ance de lint erf ace ut ilisat eur
Lapproche utiliser pour personnaliser linterface utilisateur Visio dpend de
ltendue des modifications que vous avez lintention dapporter et de
lenvironnement de dveloppement dans lequel vous programmez. En fonction de la
porte des modifications de votre interface utilisateur, vous pouvez faire en sorte que
les modifications soient en vigueur pendant quun document est actif, pendant
lexcution dune copie de Visio ou chaque lancement de lapplication Visio.
Persistance de linterface utilisateur lorsquun document est actif
Un document peut disposer dune interface utilisateur personnalise prioritaire sur
linterface utilisateur (personnalise ou intgre) de lapplication Visio. Par exemple,
si un utilisateur cre un document partir dun modle, vous pouvez ajouter un
bouton de barre doutils qui excute un Assistant pour aider lutilisateur crer un
dessin. Ds que lutilisateur ferme le document, linterface utilisateur intgre reprend
le pas jusqu ce quune interface utilisateur personnalise soit dfinie pour
lapplication ou pour le document actif suivant.
Lorsque vous personnalisez linterface utilisateur Visio partir de VBA, vous
travaillez gnralement au niveau du document. Par consquent, vous pouvez
paramtrer linterface utilisateur personnalise de lobjet ThisDocument ou charger
un fichier dinterface utilisateur personnalise (.vsu) lorsque lvnement
DocumentOpened se produit. De cette manire, linterface utilisateur personnalise
persiste pendant quun document est actif. Pour plus dinformations sur les
vnements, reportez-vous au chapitre 21, Gestion des vnements dans Visio .
Persistance de linterface utilisateur pendant lexcution dune copie
de Visio
Si votre interface utilisateur doit persister au cours dune seule copie de Visio,
paramtrez linterface utilisateur personnalise de lobjet Application partir dune
macro VBA ou dun programme autonome.
01m u10b as v1s1o.uT0becf
Ia1e uhe cop1e des mehus 1hfgs v1s1o
Sef u10b = v1s1o.App11caf1oh.u11fThMehus
... Appofe des mod1f1caf1ohs af1h de pesohha11se 1`1hfeface
0f1h1 1es mehus pesohha11ss de Th1s0ocumehf
Th1s0ocumehf.SefCusfomMehus u10b
P ERSONNAL I SATI ON DE L I NTERFACE UTI L I SATEUR VI SI O 443
Persistance de linterface utilisateur chaque lancement de
lapplication Visio
Si vous souhaitez que les modifications de linterface utilisateur remplacent linterface
utilisateur Visio de manire permanente, vous pouvez activer linterface personnalise
de lobjet Application chaque lancement de lapplication Visio ou crer un fichier
dinterface utilisateur personnalise.
Aprs avoir cr un fichier dinterface utilisateur personnalise, spcifiez le nom du
fichier en paramtrant la proprit CustomMenusFile ou CustomToolbarsFile de
lobjet Application. Le fichier dinterface personnalise est alors charg chaque
lancement de Visio, jusqu ce que vous choisissiez un autre fichier ou restauriez
linterface utilisateur intgre de Visio. Pour plus dinformations, reportez-vous la
section Mise en oeuvre des modifications apportes linterface utilisateur
personnalise , page 456.
Modif icat ions apport es lint erf ace ut ilisat eur
Aprs avoir choisi lobjet UIObject, la porte et la persistance de votre interface
utilisateur personnalise, vous pouvez commencer modifier linterface. Pour
accder llment supprimer ou vous positionner lemplacement o vous
souhaitez ajouter un lment, vous devez naviguer dans le modle dobjet Visio

.
Pour ce faire, rcuprez tout dabord un objet UIObject, puis un menu, un
acclrateur, une barre doutils ou une barre dtat et enfin, les lments modifier.
Aprs avoir modifi linterface utilisateur, vous devez dfinir lobjet personnalis
UIObject de manire ce que votre interface utilisateur prenne effet.
Rcuprat ion dun objet MenuSet , ToolbarSet , AccelTable ou
St at usBar
Pour rcuprer un objet MenuSet, ToolbarSet, AccelTable ou StatusBar, utilisez la
mthode ItemAtID de la collection approprie et spcifiez lID de lobjet souhait.
Pour accder la liste des constantes que vous pouvez utiliser avec ItemAtID,
recherchez ItemAtID dans laide en ligne Rfrence du dveloppeur (choisissez ?
(Aide) > Rfrence du dveloppeur) fournie avec Visio.
444 CHAP I TRE 22
Par exemple, le fragment de code suivant utilise la constante visUIObjSetDrawing
pour rcuprer un objet MenuSet qui reprsente les menus de la fentre de dessin :
Lexemple suivant utilise la constante visUIObjSetShapeSheet pour rcuprer un
objet ToolbarSet qui reprsente les barres doutils de la fentre ShapeSheet

:
ID des const ant es pour des cont ext es de f ent re
Le tableau suivant rpertorie les constantes dfinies dans la bibliothque de types
Visio, et que vous pouvez indiquer laide de ItemAtID pour les sept fentres
principales. Les constantes des fentres qui reprsentent les menus contextuels, les
palettes et les fentres contextuelles disponibles pour les objets MenuSet, ToolbarSet,
AccelTable et StatusBar figurent dans laide en ligne Rfrence du dveloppeur
(choisissez ? (Aide) > Rfrence du dveloppeur) fournie avec Visio.
01m u10b As v1s1o.uT0becf
01m mehuSef0b As v1s1o.MehuSef
Pcupe uh obef uT0becf coespohdahf a uhe cop1e des mehus v1s1o
1hfgs
Sef u10b = v1s1o.App11caf1oh.u11fThMehus
Pcupe 1a cohf1guaf1oh des mehus de 1a fehfe de dess1h
Sef mehuSef0b =
u10b.MehuSefs.TfemAfTd|v1suT0bSef0aW1hg)
01m u10b As v1s1o.uT0becf
01m foo1baSef0b As v1s1o.Too1baSef
Pcupe uh obef uT0becf coespohdahf a uhe cop1e des baes d`ouf11s
1hfges v1s1o
Sef u10b = v1s1o.App11caf1oh.u11fThToo1bas|0)
Pcupe 1a cohf1guaf1oh des baes d`ouf11s de 1a fehfe ShapeSheef
Sef foo1baSef0b =
u10b.Too1baSefs.TfemAfT0|v1suT0bSefShapeSheef)
ID des constantes des contextes de fentre
O
b
j
e
t
s

M
e
n
u
S
e
t
s
O
b
j
e
t
s

T
o
o
l
b
a
r
S
e
t
s
O
b
j
e
t
s

S
t
a
t
u
s
B
a
r
s
O
b
j
e
t
s

A
c
c
e
l
T
a
b
l
e
s
ID de constante Contexte
visUIObjSetNoDocument* Fentre Visio, aucun document
ouvert

visUIObjSetDrawing Fentre de dessin

visUIObjSetStencil Fentre de gabarit

visUIObjSetShapeSheet Fentre ShapeSheet


P ERSONNAL I SATI ON DE L I NTERFACE UTI L I SATEUR VI SI O 445
* La constante visUIObjSetNoDocument est utilise dans les versions antrieures Visio 2000, SR-1. A partir
de Visio 2000, SR-1, si aucun document n est ouvert dans la fentre Visio, le jeu de contexte par dfaut est
visUIObjSetDrawing.
Ajout dun menu et dune opt ion de menu
Aprs avoir rcupr un objet UIObject, vous pouvez ajouter des options linterface
utilisateur ou en supprimer. Pour ajouter des options, parcourez la branche UIObject
du modle dobjet Visio pour rcuprer la collection qui contient le type dlment
ajouter, puis utilisez la mthode Add ou AddAt de cette collection.
Lexemple suivant ajoute un menu et une nouvelle option de menu disponibles
lorsque la fentre de dessin Visio est active :
visUIObjSetIcon Fentre de modification
d icnes

visUIObjSetInPlace Fentre d dition in situ

visUIObjSetPrintPreview Fentre d aperu avant
impression

01m u10b As v1s1o.uT0becf
01m mehuSefs0b As v1s1o.MehuSefs
01m mehuSef0b As v1s1o.MehuSef
01m mehus0b As v1s1o.Mehus
01m mehu0b As v1s1o.Mehu
01m mehuTfems0b As v1s1o.MehuTfems
01m mehuTfem0b As v1s1o.MehuTfem
Pcupe uh obef uT0becf coespohdahf a uhe cop1e des mehus 1hfgs
v1s1o
Sef u10b = v1s1o.App11caf1oh.u11fThMehus
Pcupe 1a co11ecf1oh MehuSefs
Sef mehuSefs0b = u10b.MehuSefs
Pcupe 1`obef MehuSef de 1a fehfe de dess1h Pcupe 1e cohfexfe
Sef mehuSef0b= mehuSefs0b.TfemAfTd|v1suT0bSef0aW1hg)
Pcupe 1a co11ecf1oh Mehus
Sef mehus0b = mehuSef0b.Mehus
Aoufe uh mehu 0mo avahf 1e mehu Iehfe
Les mehus qu1 he compofehf aucuhe opf1oh h`appaa1ssehf pas.
Sef mehu0b = mehus0b.AddAf|7)
mehu0b.Capf1oh = "0mo"
ID des constantes des contextes de fentre
O
b
j
e
t
s

M
e
n
u
S
e
t
s
O
b
j
e
t
s

T
o
o
l
b
a
r
S
e
t
s
O
b
j
e
t
s

S
t
a
t
u
s
B
a
r
s
O
b
j
e
t
s

A
c
c
e
l
T
a
b
l
e
s
ID de constante Contexte
446 CHAP I TRE 22
Cette premire partie dexemple part du principe que le menu Fentre est toujours sa
position initiale, cest--dire quil apparat en septime position dans la barre des
menus depuis la gauche de lcran. Lajout ou la suppression de menus modifie la
position des autres menus.
La deuxime moiti de lexemple, indique ci-dessous, ajoute une option au menu
Dmo et paramtre les proprits de cette option. Pour plus dinformations,
reportez-vous la section Paramtrage des proprits dune option , page 451.
Pour ajouter une option au menu Dmo ajout dans lexemple prcdent, le code
suivant utilise la mthode Add. Cette option ajoute loption la fin dune collection.
Cet exemple ajoute une seule option de menu, sa position na donc pas grande
incidence. En revanche, si vous deviez ajouter une autre option laide de la mthode
Add, elle apparatrait galement la fin du menu. Pour contrler lendroit o loption
apparat, utilisez la mthode AddAt et spcifiez la position ordinale de loption.
La dernire instruction, ThisDocument.SetCustomMenus uiObj, indique la copie de
Visio dutiliser les menus personnaliss lorsque le document est actif. Les
modifications de linterface utilisateur personnalise ne sont pas conserves aprs la
fermeture du document.
Pcupe 1a co11ecf1oh MehuTfems
Sef mehuTfems0b = mehu0b.MehuTfems
Aoufe uh obef MehuTfem au houveau mehu 0mo
Sef mehuTfem0b = mehuTfems0b.Add
0f1h1 1es pop1fs de 1a houve11e opf1oh de mehu
mehuTfem0b.Capf1oh = "Excufe 1e pogamme de &dmohsfaf1oh"
mehuTfem0b.Add0hhame = "0emo.EXE"
mehuTfem0b.Add0hAgs = "/0vS=Iuh"
mehuTfem0b.M1h1he1p = "Excufez 1e pogamme de dmohsfaf1oh"
Paamfe v1s1o af1h qu`11 uf111se 1e houve1 obef uT0becf |mehus
pesohha11ss)
pehdahf que 1e documehf esf acf1f
Th1s0ocumehf.SefCusfomMehus u10b
P ERSONNAL I SATI ON DE L I NTERFACE UTI L I SATEUR VI SI O 447
Une option de menu peut tre constitue dune icne, de texte ou dune icne avec du
texte. Lorsquun utilisateur choisit laffichage avec icne, cette dernire apparat
active. Lorsque lutilisateur choisit laffichage du texte uniquement, loption est
coche. Le fragment de code suivant indique comment dfinir les proprits des trois
options de menu (dnommes Option 1, Option 2 et Option 3) qui contiennent une
icne (Smiley.ico) et du texte.
Comme lindique lexemple suivant, un programme peut parcourir les options dun
menu pour dterminer si elles sont slectionnes :
01m 1 As Thfege
Io 1 = 1 To 3
Aoufe uhe opf1oh de mehu
Sef mehu1fem0b = mehu0b.MehuTfems.Add
W1fh mehu1fem0b
0f1h1 1e fexfe de 1a 1gehde
.Capf1oh = "Tfem " & Sf|1)
0f1h1 1`1che
.TcohI11ehame "c:\sm11ey.1co"
Paamfe 1`opf1oh de mah1e a ce qu`e11e aff1che 1`1che ef 1e
fexfe
.Sfy1e = v1s1o.v1suffohTcohahdCapf1oh
Acf1ve/dsacf1ve 1`opf1oh
.Sfafe = TTf|1 = 1, v1s1o.v1suffoh0oWh, v1s1o.v1suffohup)
Paamfe 1`opf1oh de mah1e a ce qu`e11e excufe ce code
1osqu`e11e esf s1ecf1ohhe
.Add0hhame = "Th1s0ocumehf.TfemPoc|" & Sf|1) & ")"
Ehd W1fh
hexf
01m 1 As Thfege
Io 1 = 0 To mehu0b.MehuTfems.Couhf - 1
Sef mehu1fem0b = mehu0b.MehuTfems|1)
0f1h1 1`opf1oh de mehu comme fahf s1ecf1ohhe/ds1ecf1ohhe
mehu1fem0b.Sfafe = TTf|1 = |1fem - 1),
v1s1o.v1suffoh0oWh, v1s1o.v1suffohup)
hexf
448 CHAP I TRE 22
Ajout dune barre dout ils et dun bout on de barre dout ils
Vous pouvez ajouter un bouton lune des barres doutils intgres ou une barre
doutils compltement personnalise. La procdure suivante montre comment
ajouter, dans le contexte de la fentre de dessin, un bouton une copie des barres
doutils intgres :
Sub AddToo1bauffoh|)
va1ab1es d`obefs a uf111se dahs 1e pogamme
01m u10b As v1s1o.uT0becf
01m foo1baSef0b As v1s1o.Too1baSef
01m foo1baTfems0b As v1s1o.Too1baTfems
01m obheWToo1baTfem As v1s1o.Too1baTfem
Pcupe 1`obef uT0becf pou 1es baes d`ouf11s
Sef u10b = v1s1o.App11caf1oh.u11fThToo1bas|0)
Pcupe 1`obef Too1baSef de 1a fehfe de dess1h
Sef foo1baSef0b = u10b.Too1baSefs.TfemAfT0|v1suT0bSef0aW1hg)
Pcupe 1a co11ecf1oh Too1baTfems
Sef foo1baTfems0b = foo1baSef0b.Too1bas|0).Too1baTfems
Aoufe uh boufoh au pem1e emp1acemehf
Sef obheWToo1baTfem = foo1baTfems0b.AddAf|0)
0f1h1 1es pop1fs du houveau boufoh de bae d`ouf11s
obheWToo1baTfem.Acf1ohTexf = "Excufe 1`Ass1sfahf Pappof de gaba1f"
obheWToo1baTfem.Add0hhame = "Sfhdoc.exe"
obheWToo1baTfem.Chf1Type = v1sCf1TypeuTT0h
obheWToo1baTfem.P1o1fy = 1
0f1h1 1`1che du houveau boufoh de bae d`ouf11s
obheWToo1baTfem.TcohI11ehame "dvs.1co"
Paamfe v1s1o de mah1e a ce qu`11 uf111se 1es houve11es baes
d`ouf11s pesohha11ses
Th1s0ocumehf.SefCusfomToo1bas u10b
Ehd Sub
P ERSONNAL I SATI ON DE L I NTERFACE UTI L I SATEUR VI SI O 449
Voici quelques remarques concernant cet exemple :
Set toolbarItemsObj = toolbarSetObj.Toolbars(0).ToolbarItems. Lapplication Visio
ordonne les barres doutils verticalement. Lorsque vous indiquez lemplacement dun
objet Toolbar, 0 reprsente la barre doutils la plus lextrieur.
Set objNewToolbarItem = toolbarItemsObj.AddAt(0). Lapplication Visio ordonne les
options de la barre doutils horizontalement. Cette instruction ajoute donc lobjet
ToolbarItem ou le bouton lemplacement le plus gauche sur la barre doutils, si
celle-ci est ancre horizontalement, et lemplacement le plus lev si la barre doutils
est ancre verticalement.
objNewToolbarItem.CntrlType = visCtrlTypeBUTTON dfinit le type de bouton de
barre doutils afficher. La proprit CntrlType permet galement de dfinir les
lments de barre dtat. Lapplication Visio comprend dautres constantes pour les
boutons de barres doutils par dfaut, mais les boutons personnaliss ne peuvent
utiliser que les constantes visCtrlTypeBUTTON, PALETTEBUTTON,
PALETTEBUTTONNOMRU ou PALETTEBUTTONICON.
objNewToolbarItem.Priority = 1 donne cet lment de barre doutils la priorit la
plus leve. Les options de barre doutils napparaissent pas tous dans toutes les
rsolutions. Sur les moniteurs faible rsolution, comme les moniteurs VGA, les
lments de barre doutils priorit faible napparaissent pas : seuls les lments
priorit leve sont affichs. Le nombre dlments affichs est proportionnel la
qualit de la rsolution.
objNewToolbarItem.IconFileName "dvs.ico" rcupre le fichier Dvs.ico contenant le
bitmap pour que la barre doutils apparaisse depuis le dossier situ sur le chemin des
programmes complmentaires Visio ; ce chemin est indiqu dans longlet Chemins
d'accs. Le fichier dicne doit contenir une icne de 32 pixels par 32 et une icne de
16 pixels par 16. Lapplication Visio affiche licne de 16 pixels par 16 en mode
petite icne et licne de 32 pixels par 32 en mode grande icne .
ThisDocument.SetCustomToolbars uiObj utilise les barres doutils personnalises
lorsque le document est actif.
La procdure suivante indique comment ajouter une barre doutils flottante nomme
Test ; cette barre doutils flottante ne peut pas tre ancre mais peut tre masque
dans le contexte de la fentre de dessin. Le programme vrifie tout dabord si le
document ou la copie de Visio utilise les barres doutils personnalises et attribue un
objet UIObject la variable uiObj. Le programme rcupre ensuite la collection
Toolbars pour la fentre de dessin, ajoute la nouvelle barre doutils et dfinit ses
proprits.
450 CHAP I TRE 22
Sub AddToo1ba|)
01m u10b As uT0becf
01m foo1bas0b As Too1bas
01m foo1ba0b As Too1ba
01m foo1baTfems0b As Too1baTfems
01m foo1baTfem0b As Too1baTfem
v1f1e s1 1e documehf compofe des baes d`ouf11s pesohha11ses
Tf Th1s0ocumehf.CusfomToo1bas Ts hofh1hg Theh
v1f1e s1 1`occuehce uf111se des baes d`ouf11s pesohha11ses
Tf v1s1o.App11caf1oh.CusfomToo1bas Ts hofh1hg Theh
uf111se 1es baes d`ouf11s 1hfges
Sef u10b = v1s1o.App11caf1oh.u11fThToo1bas|0)
E1se
uf111se 1es baes d`ouf11s pesohha11ses de 1`app11caf1oh
Sef u10b = v1s1o.App11caf1oh.CusfomToo1bas.C1ohe
Ehd Tf
E1se
uf111se 1es baes d`ouf11s pesohha11ses du documehf
Sef u10b = Th1s0ocumehf.CusfomToo1bas
Ehd Tf
Pcupe 1a co11ecf1oh Too1bas du cohfexfe de 1a fehfe de dess1h
Sef foo1bas0b = u10b.Too1baSefs.TfemAfT0|
v1s1o.v1suT0bSef0aW1hg).Too1bas
Aoufe uhe bae d`ouf11s
Sef foo1ba0b = foo1bas0b.Add
W1fh foo1ba0b
0f1h1 1e f1fe de 1a bae d`ouf11s
.Capf1oh = "Tesf"
Pos1f1ohhe 1a bae d`ouf11s f1offahfe aux coodohhes 300, 200
.Pos1f1oh = v1s1o.v1saI1oaf1hg
.Leff = 300
.Top = 200
Thfed1e 1`ahcage
.Pofecf1oh = v1s1o.v1sahoho1zohfa10ock
+ v1s1o.v1sahovef1ca10ock
Pehde 1a houve11e bae d`ouf11s v1s1b1e
.v1s1b1e = Tue
Pemeffe a 1`uf111safeu de masque ef d`aff1che 1a bae d`ouf11s
.Ehab1ed = Tue
Ehd W1fh
Ehd Sub
P ERSONNAL I SATI ON DE L I NTERFACE UTI L I SATEUR VI SI O 451
Paramt rage des proprit s dune opt ion
Aprs avoir ajout une option, vous pouvez paramtrer ses proprits. Par exemple,
vous pouvez paramtrer la proprit Caption dune option de menu pour dfinir le
texte qui apparat ou la mthode IconFileName dune barre doutils ou dune option
de menu pour indiquer licne afficher et la rcuprer. Cette opration extrait le
bitmap du fichier dicne et le stocke avec linterface ; le fichier dicne nest ainsi plus
ncessaire. Vous pouvez aussi modifier les proprits dune option existante.
Une option de menu ou un lment de barre doutils disposent de deux proprits
dterminantes : CmdNum permet de spcifier lID de la commande associe
loption, et AddOnName permet de spcifier un programme ou une macro excuter
lorsque lutilisateur choisit loption de menu ou clique sur le bouton. Si le programme
accepte les arguments de ligne de commande, ceux-ci peuvent tre indiqus par
lintermdiaire de la proprit AddOnArgs. Pour plus dinformations sur les
proprits et sur les mthodes dune option, recherchez cette option dans laide en
ligne Rfrence du dveloppeur (choisissez ? (Aide) > Rfrence Du Dveloppeur)
fournie avec Visio.
Caption correspond au texte qui apparat dans un menu ou une option de menu.
Pour afficher lacclrateur avec loption de menu, ajoutez-le au texte de la proprit
Caption et insrez deux espaces entre le \a et le texte dacclrateur. Par exemple :
Dans cet exemple, Ouvrir... est la lgende de loption de menu ; Ctrl+O est le texte de
lacclrateur, et \a sert justifier gauche le texte dacclrateur. Le fait dajouter un
texte dacclrateur la proprit Caption najoute pas dacclrateur proprement
parler et nintervient que sur laffichage. Vous pouvez ajouter des acclrateurs en
utilisant les objets relatifs aux acclrateurs du modle dobjet Visio.
Vous pouvez aussi spcifier dautres proprits comme celles de lexemple suivant :
ActionText correspond au texte qui apparat dans le menu Edition avec les
commandes Annuler, Rtablir et Rpter. Il apparat galement dans tous les
messages derreur ou dans les ventuelles info-bulles de la barre doutils. MiniHelp
correspond au message qui apparat dans la barre dtat lorsque lutilisateur
immobilise le pointeur sur loption.
"0uv1...\a Cf1+0"
mehuTfem0b.Acf1ohTexf = "Excufe 1`app11caf1oh 0mo 1"
mehuTfem0b.M1h1he1p = "Excufe 1`app11caf1oh 0mo 1"
acce1Tfem0b.Key = Espace a1e
acce1Tfem0b.A1f = Tue
452 CHAP I TRE 22
Key correspond la valeur du code ASCII dun acclrateur. Par exemple, le code
ASCII de la touche Retour est 8, le code ASCII de la touche Echap est 27. Pour plus
dinformations sur les codes ASCII, reportez-vous laide en ligne du kit de
dveloppement SDK (Microsoft Platform Software Development Kit). Les proprits
Alt, Control et Shift modifient la proprit Key dun acclrateur. Pour dfinir les
proprits dun acclrateur, paramtrez une combinaison de modificateurs sur
TRUE, spcifiez un code de touche, puis dfinissez la proprit CmdNum ou
AddonName de loption. Pour activer une commande acclratrice, appuyez sur la
combinaison des modificateurs et sur la touche qui correspond au code.
La proprit CmdNum correspond lID de commande dune option. Chaque option
de menu ou option de barre doutils intgre Visio reprsente une commande Visio et
dispose dun ID de commande. Par exemple, lID de la commande Afficher la feuille
ShapeSheet est visCmdWindowShowShapeSheet ; lID de la commande de Afficher le
gabarit de document est visCmdWindowShowMasterObjects. Pour obtenir la liste
des ID de commande valides, reportez-vous la bibliothque de types Visio dans
lexplorateur dobjets et recherchez visCmd .
CONSEIL : pour masquer linterface utilisateur Visio mais pas la fentre Visio, paramtrez
les proprits ShowToolbar, ShowStatusBar et ShowMenusde lobjet Application sur
FALSE pour masquer respectivement toutes les barres doutils, les barres dtat et les
menus.
Suppression dopt ions dune int erf ace ut ilisat eur
Vous pouvez supprimer nimporte quel lment de linterface utilisateur Visio, que
cet lment fasse partie de linterface utilisateur intgre Visio ou quil y ait t ajout
(si vous souhaitez rendre une barre doutils ou une option de menu temporairement
indisponible en le grisant, paramtrez sa proprit Enabled sur FALSE).
La suppression dune option ne supprime pas la fonctionnalit de cette option, mais
seulement son accs. Dautres modes daccs, comme les acclrateurs, peuvent rester
disponibles. Par exemple, si vous supprimez la commande Copier du menu Edition,
mais pas lacclrateur (Ctrl+C), lutilisateur peut toujours faire appel la
fonctionnalit de copie en appuyant sur Ctrl+C. Vous pouvez galement supprimer la
commande Afficher la feuille ShapeSheet du menu Fentre, mais si laction du
double-clic sur une forme a pour effet dafficher la fentre ShapeSheet, cette fentre
apparat tout de mme lorsque vous double-cliquez sur cette forme.
P ERSONNAL I SATI ON DE L I NTERFACE UTI L I SATEUR VI SI O 453
CONSEIL : chaque option de menu et lment de barre doutils intgr de Visio reprsente
une commande Visio et comporte un ID de commande. Si vous souhaitez supprimer lune
de ces options Visio, vous pouvez lidentifier par son ID de commande. En revanche, la
proprit CmdNumdune option de menu ou dune option de barre doutils
personnalise permettant dexcuter un programme ou une macro nest associe aucun
ID de commande Visio. Cest pourquoi vous ne pouvez pas identifier llment par son ID
de commande. Vous devez utiliser la chane de la proprit Caption dune option de
menu ou dun lment de barre doutils personnalise pour le localiser.
Pour supprimer une option, utilisez sa mthode Delete. Par exemple, les instructions
suivantes suppriment, dans la fentre de dessin, loption Afficher la feuille ShapeSheet
du menu Fentre pour la copie de Visio en cours dexcution :
01m u10b As v1s1o.uT0becf
01m mehuSef0b As v1s1o.MehuSef
01m mehuTfems0b As v1s1o.MehuTfems
01m 1 As Thfege
Sef u10b = v1s1o.App11caf1oh.u11fThMehus
Sef mehuSef0b =
u10b.MehuSefs.TfemAfT0|v1suT0bSef0aW1hg)
Pcupe 1e mehu Iehfe
Sef mehuTfems0b = mehuSef0b.Mehus|7).MehuTfems
Pcupe 1`opf1oh de mehu Aff1che 1a feu111e ShapeSheef a 1`a1de de sa
`pop1f Cmdhum.
Ceffe fechh1que fohcf1ohhe avec 1es ves1ohs 1oca11ses de v1s1o.
Io 1 = 0 To mehuTfems0b.Couhf -1
Tf mehuTfems0b|1).Cmdhum =
v1sCmdW1hdoWShoWShapeSheef Theh
mehuTfems0b|1).0e1efe
Ex1f Io
Ehd Tf
hexf 1
Pemp1ace 1es mehus 1hfgs de v1s1o avec 1a cohf1guaf1oh pesohha11se
v1s1o.App11caf1oh.SefCusfomMehus u10b
454 CHAP I TRE 22
Suppression dune opt ion de barre dout ils
La macro suivante indique comment supprimer, dans le contexte de la fentre de
dessin, le bouton Vrificateur d'orthographe de la barre doutils intgre Visio :
Sub 0e1efeToo1bauffoh| )
01m u10b As v1s1o.uT0becf
01m foo1baSef0b As v1s1o.Too1baSef
01m foo1baTfems0b As v1s1o.Too1baTfems
01m foo1baTfem0b As v1s1o.Too1baTfem
01m 1 As Thfege va1ab1e de bouc1e
Pcupe 1`obef uT0becf pou 1es baes d`ouf11s
Sef u10b = v1s1o.App11caf1oh.u11fThToo1bas|0)
Pcupe 1`obef Too1baSef de 1a fehfe de dess1h
Sef foo1baSef0b = u10b.Too1baSefs.TfemAfT0|v1suT0bSef0aW1hg)
Pcupe 1a co11ecf1oh Too1baTfems
Sef foo1baTfems0b = foo1baSef0b.Too1bas|0).Too1baTfems
Pcupe 1`obef Spe111hg Too1baTfem
Efahf dohh que ce code cupe 1es baes d`ouf11s 1hfges de v1s1o,
vous avez accs a 1`opf1oh de bae d`ouf11s v1f1cafeu d`ofhogaphe.
S1 1e code cupe uhe bae d`ouf11s pesohha11se, ce11e-c1
peuf he pas compofe 1`opf1oh v1f1cafeu d`ofhogaphe.
Io 1 = 0 To foo1baTfems0b.Couhf - 1
Pcupe 1`obef Too1baTfem acfue1 de 1a co11ecf1oh
Sef foo1baTfem0b = foo1baTfems0b|1)
v1f1e s1 1`opf1oh de bae d`ouf11s acfue11e esf 1e boufoh
v1f1cafeu d`ofhogaphe
Tf foo1baTfem0b.Cmdhum = v1sCmdToo1sSpe111hg Theh
Ex1f Io
Ehd Tf
hexf 1
0e1efe fhe Spe111hg buffoh
foo1baTfem0b.0e1efe
Paamfez v1s1o de mah1e a ce qu`11 uf111se 1es houve11es baes
d`ouf11s pesohha11ses 1osque 1e documehf esf acf1f
Th1s0ocumehf.SefCusfomToo1bas u10b
Ehd Sub
P ERSONNAL I SATI ON DE L I NTERFACE UTI L I SATEUR VI SI O 455
Suppression dun acclrat eur
La macro suivante indique comment supprimer, du contexte de la fentre de dessin,
lacclrateur de lEditeur Visual Basic :
Sub 0e1efeAcce1Tfem| )
01m u10b As v1s1o.uT0becf
01m acce1Tab1e0b As v1s1o.Acce1Tab1e
01m acce1Tfems0b As v1s1o.Acce1Tfems
01m acce1Tfem0b As v1s1o.Acce1Tfem
01m 1 As Thfege
Pcupe 1`obef uT0becf pou 1a cop1e des mehus 1hfgs
Sef u10b = v1s1o.App11caf1oh.u11fThMehus
Paamfe 1`obef acce1Tab1e0b su 1a cohf1guaf1oh de mehus de dess1h
Sef acce1Tab1e0b = u10b.Acce1Tab1es.TfemAfT0|v1suT0bSef0aW1hg)
Pcupe 1a co11ecf1oh d`acc1afeus
Sef acce1Tfems0b = acce1Tab1e0b.Acce1Tfems
Pcupe 1`acc1afeu de 1`d1feu v1sua1 as1c eh
pacouahf 1a co11ecf1oh des acc1afeus ef eh epahf
ce1u1 que vous souha1fez supp1me.
Io 1 = 0 To acce1Tfems0b.Couhf - 1
Sef acce1Tfem0b = acce1Tfems0b.Tfem|1)
Tf acce1Tfem0b.Cmdhum = v1s1o.v1sCmdToo1sPuhvE Theh
Ex1f Io
Ehd Tf
hexf 1
Supp1me 1`acc1afeu
acce1Tfem0b.0e1efe
Paamfe v1s1o de mah1e a ce qu`11 uf111se 1es houveaux mehus
pesohha11ss 1osque 1e documehf esf acf1f.
Th1s0ocumehf.SefCusfomMehus u10b
Ehd Sub
456 CHAP I TRE 22
Mise en oeuvre des modif icat ions apport es lint erf ace
ut ilisat eur personnalise
Ltape finale du processus de personnalisation de linterface utilisateur Visio consiste
paramtrer linterface utilisateur personnalise dun objet. Linterface utilisateur
personnalise est ainsi applique la copie de Visio. Les modifications que votre
programme apporte un objet UIObject apparaissent dans la copie de Visio aprs
cette tape.
Pour appliquer les modifications de linterface utilisateur personnalise, utilisez les
mthodes SetCustomMenus ou SetCustomToolbars de lobjet Document ou
Application et spcifiez lobjet UIObject reprsentant votre interface utilisateur
personnalise. Par exemple, linstruction suivante permet de paramtrer les menus
pour un document :
Pour paramtrer les barres doutils personnalises pour tous les documents dune
copie de Visio, utilisez cette instruction :
Si vous modifiez un objet UIObject qui reprsente les barres doutils ou les menus
personnaliss actifs au cours de lexcution dune copie de Visio, utilisez la mthode
UpdateUI de lobjet UIObject pour afficher vos modifications :
Th1s0ocumehf.SefCusfomMehus u10b
v1s1o.App11caf1oh.SefCusfomToo1bas u10b
Pcupe 1`obef uT0becf pou 1es mehus pesohha11ss
Sef u10b = v1s1o.App11caf1oh.CusfomMehus
...Chahgemehfs de code appofs a 1`1hfeface pesohha11se
App11que 1es mod1f1caf1ohs a 1`1hfeface pesohha11se
u10b.updafeuT
P ERSONNAL I SATI ON DE L I NTERFACE UTI L I SATEUR VI SI O 457
Ut ilisat ion des f ichiers dint erf ace ut ilisat eur personnalise
Le fichier dinterface utilisateur Visio (VSU) est un moyen de sauvegarder linterface
utilisateur personnalise dune copie de Visio une autre. Si votre solution apporte des
modifications importantes linterface utilisateur Visio et si les utilisateurs
napporteront vraisemblablement pas dautres modifications par lintermdiaire
dautres solutions, le fichier VSU constitue certainement le moyen le plus efficace
dobtenir une interface utilisateur personnalise.
Fichier Cust om.vsu
Visio 2000 utilise un fichier VSU pour conserver les personnalisations de lutilisateur.
La premire fois quun utilisateur personnalise linterface utilisateur Visio laide de
la commande Affichage > Barres doutils > Personnaliser, la copie de Visio prend un
instantan de linterface utilisateur active (notamment les personnalisations fournies
par les solutions Visio) et, lorsque lutilisateur quitte Visio, la stocke dans un fichier
appel Custom.vsu dans le dossier du profil de lutilisateur.
Si votre solution utilise un fichier .vsu pour fournir une interface utilisateur
personnalise, vous devez retenir les informations suivantes :
Si le systme utilisateur comporte un fichier Custom.vsu, les proprits
CustomMenus et CustomToolbars de lobjet Application renvoient un objet
UIObject au lieu de renvoyer Nothing (dans les versions prcdentes de Visio,
CustomMenus et CustomToolbars renvoyaient un objet UIObject seulement si
linterface utilisateur Visio avait t personnalise par un programme).
Le fichier Custom.vsu de lutilisateur est un instantan de linterface utilisateur,
quelle quelle soit, qui est active lorsque lutilisateur personnalise linterface. Si
une solution personnalise linterface utilisateur Visio, et si lutilisateur cre une
barre doutils personnalise, le fichier Custom.vsu de lutilisateur correspond
linterface utilisateur de la solution laquelle sajoutent les modifications de
lutilisateur. Si une solution recharge ensuite son fichier .vsu original, la copie de
Visio semble perdre les personnalisations de lutilisateur.
Si le fichier Custom.vsu est supprim, la copie de Visio rtablit les
personnalisations de lutilisateur partir des donnes de ressource internes et
recre le fichier lorsque lutilisateur quitte le programme la fois suivante.
Si votre solution Visio est la seule excute sur plusieurs installations Visio, pensez
donner au fichier dinterface utilisateur de cette solution le nom de Custom.vsu, puis
linstaller dans le dossier des donnes de lapplication appropri afin de distribuer
une interface utilisateur personnalise Visio dans toute lentreprise.
458 CHAP I TRE 22
Enregist rement dun f ichier dint erf ace ut ilisat eur
personnalise
Si vous avez apport des modifications importantes linterface utilisateur et si vous
avez lintention denregistrer votre interface utilisateur personnalise dans un fichier
VSU, utilisez la mthode SaveToFile de lobjet UIObject. Par exemple :
Chargement dun f ichier dint erf ace ut ilisat eur personnalise
Vous pouvez charger un fichier dinterface utilisateur personnalise en paramtrant
linterface personnalise de lobjet Application. Vous pouvez aussi charger un fichier
dinterface utilisateur personnalise (.vsu) au dclenchement dun vnement,
comme louverture dun document.
Pour charger le fichier dinterface utilisateur personnalise dun objet Application,
paramtrez les proprits suivantes de lobjet sur le nom de ce fichier :
CustomMenusFile : paramtrez cette proprit pour les menus personnaliss et les
acclrateurs.
CustomToolbarsFile : paramtrez cette proprit pour les barres doutils et les
barres dtat personnalises.
Par exemple, pour charger un fichier dinterface utilisateur personnalise chaque
lancement de lapplication Visio, utilisez cette instruction :
Vous devez paramtrer ces proprits de lobjet Application une fois seulement. Ces
proprits dfinissent la valeur des entres CustomMenusFile et
CustomToolbarsFile dans le registre de Microsoft

Windows

et indiquent
lapplication Visio lemplacement du fichier dinterface personnalise correspondant.
Si aucun chemin nest spcifi, lapplication Visio effectue une recherche dans les
dossiers du chemin des programmes complmentaires Visio, spcifi dans longlet
Chemins d'accs. Si le fichier indiqu ne peut pas tre localis, ou si la cl de registre
est supprime ou modifie, lapplication Visio reprend linterface utilisateur Visio
intgre.
Pour charger un fichier dinterface utilisateur personnalise au dclenchement dun
vnement, comme louverture dun document, placez le code dans lvnement
appropri de lobjet Document.
u10b.SaveToI11e|"c:\v1s1o\so1uf1ohs\off1ce\mesouf11s.vsu")
v1s1o.App11caf1oh.CusfomToo1basI11e =
"c:\v1s1o\so1uf1ohs\off1ce\mesouf11s.vsu"
P ERSONNAL I SATI ON DE L I NTERFACE UTI L I SATEUR VI SI O 459
Pour charger un fichier dinterface utilisateur personnalise chaque ouverture de
document, utilisez cette instruction dans lvnement DocumentOpened de lobjet
Document :
Si vous programmez dans un environnement de dveloppement externe comme
Microsoft

Visual Basic

, vous pouvez charger un fichier dinterface utilisateur


personnalise, le modifier, puis enregistrer les modifications du fichier.
Pour charger un fichier dinterface utilisateur personnalise, utilisez la mthode
LoadFromFile. Par exemple :
Rest aurat ion de lint erf ace ut ilisat eur int gre Visio
Si votre solution personnalise linterface utilisateur Visio, il est conseill de restaurer
linterface utilisateur dorigine lorsque lexcution de cette solution sachve. Si votre
solution a dtect des menus personnaliss ou des barres doutils personnalises dans
le systme de lutilisateur, ou si lutilisateur a personnalis linterface utilisateur
pendant lexcution de la solution, il doit annuler ses modifications en supprimant les
lments ajouts et en restaurant ceux quil a supprims.
Si aucune autre personnalisation ne doit tre conserve, vous pouvez effacer les barres
doutils et les menus personnaliss pour rapidement restaurer linterface utilisateur
intgre Visio. Leffacement des menus et des barres doutils personnaliss ne
supprime pas le fichier Custom.vsu de lutilisateur, mais entrane linterruption de
son utilisation par lapplication Visio.
Pour restaurer les menus et les acclrateurs intgrs de Visio, utilisez la mthode
ClearCustomMenus de lobjet Document (ou Application). Pour restaurer les barres
doutils et les barres dtat intgres de Visio, utilisez la mthode
ClearCustomToolbars de lobjet Document (ou Application). Par exemple, pour
effacer les menus personnaliss dun objet Document, utilisez cette instruction :
Th1s0ocumehf.CusfomMehusI11e = "c:\v1s1o\so1uf1ohs\off1ce\mesouf11s.vsu"
u10b.LoadIomI11e "shofcuf.vsu"
... Appofe des mod1f1caf1ohs af1h de pesohha11se 1`1hfeface
u10b.SaveToI11e "c:\v1s1o\so1uf1ohs\off1ce\mesouf11s.vsu"
Th1s0ocumehf.C1eaCusfomMehus
460 CHAP I TRE 22
Par exemple, pour effacer les barres doutils personnalises de lobjet Application,
utilisez cette instruction :
A louverture suivante du document ou lexcution suivante dune copie de Visio,
linterface utilise est linterface utilisateur intgre de Visio.
v1s1o.App11caf1oh.C1eaCusfomToo1bas
Sommaire
23
Ut ilisat ion de cont rles Act iveX
dans une solut ion Visio
Vous pouvez ajouter des contrles Microsoft

ActiveX

directement dans des dessins


Microsoft

Visio

(version 5.0 ou ultrieure) afin de rendre votre solution Visio


interactive. Vous pouvez, par exemple, ajouter des contrles de bote de dialogue
Microsoft

Windows

standard, comme des boutons sur lesquels il suffit de cliquer


une fois, des cases cocher ou des zones de liste. Vous pouvez galement utiliser des
contrles personnaliss, que vous dveloppez ou que vous achetez, afin dincorporer
des fonctionnalits plus complexes, comme des animations.
Ajout de contrles ActiveX une solution Visio ................................................. 462
Gestion des vnements dun contrle................................................................ 466
Utilisation des contrles lexcution ................................................................. 467
Distribution de contrles ActiveX dans une solution Visio ................................ 469
Exemple de contrles ActiveX qui interagissent avec des formes.................... 470
462 CHAP I TRE 23
Ajout de cont rles Act iveX une solut ion Visio
Lutilisation de contrles ActiveX dans des solutions Visio permet de crer une
interface utilisateur cohrente avec des solutions bases sur dautres applications
Windows. Les contrles tant sur la page de dessin, lutilisateur peut travailler
librement sur des contrles et des formes Visio dans un dessin.
Ut ilisat ion du mode crat ion
Lorsque vous travaillez avec des contrles ActiveX dans un dessin Visio, vous basculez
entre les modes cration et excution. En mode cration, vous pouvez insrer des
contrles, les dplacer et les redimensionner, et dfinir leurs proprits. En mode
excution, vous pouvez utiliser ces contrles : cliquez sur un bouton de commande
pour excuter son gestionnaire dvnements Click, par exemple. Pour dautres
tches, il importe peu que Visio soit en mode cration ou excution (tous les autres
outils et commandes Visio sutilisent de la mme faon dans les deux modes).
Le mode du document est synchronis avec celui du projet Microsoft

Visual Basic


pour Applications (VBA) correspondant. Le document et son projet sont ainsi
toujours dans le mme mode. Quand un document est en mode cration, aucun de
ses objets (y compris ses contrles) nmet dvnements.
Un document Visio est par dfaut en mode excution son ouverture, moins que la
protection contre les virus de macro ne soit active dans Visio. Pour passer en mode
cration, vrifiez que la barre doutils Dveloppeur est affiche. Si ce nest pas le cas,
choisissez Affichage > Barres d'outils > Dveloppeur. Cliquez ensuite sur le bouton
Mode Cration qui apparat en clair pour indiquer que Visio est en mode cration.
REMARQUE : si la protection contre les virus de macro est active, lutilisateur est invit
activer ou dsactiver les macros louverture dun document. Si lutilisateur dsactive
les macros, le document est ouvert en mode cration, et il est impossible de passer en mode
excution moins de fermer le document et de louvrir de nouveau en activant les macros.
Pour activer la protection contre les virus de macro, choisissez Outils > Options, cliquez
sur longlet Options avances, puis slectionnez ou dslectionnez loption Protection
anti-virus macro.
Insert ion dun cont rle dans un dessin
Avant dinsrer un contrle ActiveX dans un dessin Visio, le contrle doit tre install
sur votre systme. Certains contrles peuvent galement ncessiter une licence de
cration pour tre utiliss dans les applications que vous dveloppez.
UTI L I SATI ON DE CONTRL ES ACTI VEX DANS UNE SOL UTI ON VI SI O 463
Vous insrez un contrle en le slectionnant dans la bote de dialogue Contrles, qui
rpertorie tous les contrles ActiveX installs sur votre systme, notamment ceux
installs par dautres applications. De telles applications fournissent gnralement une
licence dexcution pour les contrles ActiveX quelles contiennent. La licence
dexcution vous autorise utiliser ces contrles dans lapplication qui les contient,
mais pas les insrer dans des applications que vous dveloppez. Pour insrer ce type
de contrle dans vos applications, vous devez disposer dune licence de cration. Pour
plus dinformations, reportez-vous la section Distribution de contrles ActiveX
dans une solution Visio , page 469.
Pour insrer un cont rle Act iveX dans un dessin :
1 Cliquez sur le bouton Insrer un contrle ( ) de la barre doutils Dveloppeur.
2 Dans la bote de dialogue Contrles, slectionnez un contrle, par exemple
Microsoft Forms 2.0 CommandButton.
Bote de dialogue Contrles
3 Cliquez sur OK pour insrer le contrle dans la page de dessin.
4 Le cas chant, dplacez et redimensionnez le contrle.
Un contrle slectionn est dot de poignes de slection vertes, comme une forme
slectionne, et vous pouvez le dplacer et le redimensionner de la mme faon.
Contrle slectionn
464 CHAP I TRE 23
5 Le cas chant, modifiez le contrle et dfinissez ses proprits.
Pour modifier un contrle, double-cliquez dessus. Un contrle activ de cette
faon pour la modification sur place se prsente de la mme faon dans Visio et
dans tous les conteneurs ActiveX. Pour dfinir les proprits dun contrle, utilisez
lEditeur Visual Basic ( ).
Contrle activ pour la
modification sur place
Aprs linsertion dun contrle dans un dessin, son utilisation est trs similaire celle
dune forme Visio. Par exemple, vous pouvez couper ou copier, puis coller le
contrle, le dupliquer en maintenant la touche Ctrl enfonce et en faisant glisser le
pointeur, ou le transformer en forme de base en le faisant glisser vers un gabarit.
Conseils destins aux dveloppeurs de contrles
La premire fois que vous insrez un contrle dans un dessin Visio, VBA cre une
bibliothque de types fusionne pour ce contrle et le stocke dans le rpertoire
Temp dans un fichier portant lextension .exd. Si vous modifiez ensuite le contrle,
commencez par supprimer le fichier .EXD avant dessayer dinsrer de nouveau le
contrle. Si un message derreur apparat lorsque vous insrez un contrle aprs
lavoir modifi, supprimez le fichier .EXD cach pour rsoudre ce problme.
Si le contrle prend en charge linterface IClassFactory2, le moteur Visio utilise cette
interface lorsque vous essayez dinsrer une nouvelle occurrence de ce contrle. Par
consquent, cette insertion ne russit que sur les systmes sur lesquels le contrle fait
lobjet de la licence adquate. Si le contrle ne prend pas en charge IClassFactory2, le
moteur Visio utilise linterface IClassFactory pour instancier le contrle, et la licence
na aucune incidence.
Df init ion de lordre de t abulat ion des cont rles
Lorsque Visio est en mode excution, appuyez sur la touche Tab pour passer dun
contrle un autre dans la page de dessin. Si vous ajoutez plusieurs contrles un
dessin, il est intressant de pouvoir activer les contrles dans un ordre logique.
Lordre de tabulation des contrles correspond leur ordre dempilement sur la page
de dessin, en commenant par le contrle de dernier plan. A lorigine, il sagit de
lordre dans lequel vous avez insr les contrles dans le dessin, le contrle le plus
rcent figurant au premier plan.
UTI L I SATI ON DE CONTRL ES ACTI VEX DANS UNE SOL UTI ON VI SI O 465
Pour modifier lordre dempilement des contrles, utilisez les commandes suivantes
du menu Forme :
Rapprocher
Premier plan
Eloigner
Arrire-plan
Ut ilisat ion des proprit s dambiance de Visio dans des
cont rles
Si vous dveloppez des contrles ActiveX pour Visio, vous pouvez tirer parti des
proprits dambiance dfinies par Visio. Un contrle utilise les proprits
dambiance dune application pour conserver une apparence cohrente avec les autres
contrles dun document. Par exemple, la proprit BackColor indique la couleur de
lintrieur dun contrle.
Pour obt enir la list e des proprit s dambiance de Visio :
Dans la fentre de lEditeur Visual Basic, cliquez avec le bouton droit sur
lexplorateur dobjets et choisissez Afficher les membres cachs dans le menu
contextuel, puis slectionnez IVAmbients dans la liste Classes.
Les proprits dambiance sont en lecture seule.
Impression dun dessin sans cont rle
Pour que lutilisateur puisse imprimer un dessin mais pas les contrles, effectuez lune
des oprations ci-dessous :
Slectionnez les contrles, choisissez Format > Comportement, puis cochez
loption Forme non imprimable.
Attribuez le mme calque tous les contrles et dfinissez-le comme non imprimable.
Pour plus dinformations sur les calques, reportez-vous au chapitre 11,
Rorganisation des formes dun dessin .
Prot ect ion des cont rles cont re les modif icat ions
Lorsque vous distribuez une solution contenant des contrles, vous pouvez autoriser
les utilisateurs modifier les formes dans le dessin, mais vous ne souhaitez
gnralement pas quils puissent modifier les contrles. Vous pouvez protger les
contrles contre les modifications des utilisateurs, mme en mode cration, en
verrouillant les formes et en protgeant le document.
466 CHAP I TRE 23
Pour prot ger les cont rles cont re les modif icat ions :
1 Slectionnez les contrles dans le dessin.
2 Choisissez Format > Protection, puis cochez loption Contre la slection.
3 Choisissez Affichage > Fentres > Drawing Explorer pour afficher la fentre
Drawing Explorer

.
4 Dans la fentre Drawing Explorer, cliquez avec le bouton droit sur le document et
choisissez Protger le document dans le menu contextuel, puis cochez la case
Formes.
5 Pour plus de scurit, dfinissez un mot de passe dans la bote de dialogue Protger
le document.
Lutilisateur peut saisir le dessin, mais pas les contrles.
Gest ion des vnement s dun cont rle
Aprs avoir ajout un contrle ActiveX la page de dessin, vous pouvez grer les
divers vnements mis par le contrle (par exemple, si vous insrez un bouton de
commande, vous pouvez grer son vnement Click). Pour grer les vnements dun
contrle, vous devez rdiger des procdures dvnement dans le projet Microsoft
Visual Basic pour Applications (VBA) du dessin Visio contenant le contrle, comme
vous le faites pour les vnements Visio.
Pour rdiger une procdure dvnement dun cont rle :
1 Dans la fentre de code de lEditeur Visual Basic associe ThisDocument,
slectionnez un contrle dans la zone de liste des objets.
2 Slectionnez lvnement grer dans la zone de liste des procdures.
3 Remplissez la procdure dvnement dans la fentre de code.
Par exemple, la procdure dvnement suivante dun bouton de commande
supprime une forme du dessin Visio si un utilisateur slectionne le nom de la forme
dans un contrle de zone de liste et clique sur le bouton de commande :
P1vafe Sub Commahduffoh1C11ck| )
01m v1sShape As v1s1o.Shape
Tf L1sfox1.L1sfThdex >=0 Theh
Sef v1sShape =
Acf1vePage.Shapes|L1sfox1.Texf)
v1sShape.0e1efe
Ehd Tf
Ehd Sub
UTI L I SATI ON DE CONTRL ES ACTI VEX DANS UNE SOL UTI ON VI SI O 467
Ut ilisat ion des cont rles lexcut ion
Un contrle ActiveX propose gnralement des proprits et des mthodes que vous
pouvez utiliser au moment de lexcution pour intgrer le contrle votre
programme. Par exemple, un contrle de zone de liste est dot dune proprit
ListIndex qui renvoie lindice de llment slectionn et dune proprit Text qui
renvoie le texte de llment cet indice.
A propos des noms de cont rle
Un contrle est associ deux noms : un nom Visio et un nom VBA. A lorigine, ces
noms identiques sont constitus du type de contrle associ un nombre entier qui
rend le nom unique. Par exemple, le premier contrle de zone de liste que vous
insrez dans un dessin reoit le nom ListBox1 et vous pouvez utiliser ce nom pour
faire rfrence ce contrle dans le code VBA et dans Visio. Visio utilise dautres
conventions de nom pour ses formes. Pour plus dinformations sur les conventions de
nom, reportez-vous au chapitre 16, Utilisation des objets Visio Document, Page et
Shape .
Bien quayant lorigine la mme valeur, les deux noms sont distincts du point de vue
de la programmation et ne sont pas interchangeables :
Utilisez le nom dobjet VBA dun contrle pour faire rfrence ce dernier dans le
code VBA. Pour modifier ce nom, dfinissez la proprit Name du contrle dans la
fentre des proprits de VBA dans lEditeur Visual Basic. Vous ne pouvez pas
utiliser le nom dobjet VBA dun contrle pour rcuprer un objet Shape dune
collection Visio, comme la collection Shapes ; vous devez pour cela utiliser la
proprit Shape.Name du contrle (par exemple, ListBox1.Shape.Name).
Utilisez le nom Visio dun contrle pour rcuprer lobjet Shape reprsentant le
contrle dans une collection Visio, comme OLEObjects ou Shapes. Pour modifier
ce nom, utilisez la zone Nom dans la bote de dialogue Spcial dans Visio
(slectionnez le contrle et choisissez Format > Spcial) ou dfinissez la proprit
Shape.Name du contrle dans VBA. Vous ne pouvez pas utiliser le nom Visio dun
contrle pour faire rfrence ce dernier dans le code VBA.
CONSEIL : pour des raisons pratiques, vous pouvez, si vous modifiez la valeur par dfaut
dun nom, changer lautre nom afin que les noms VBA et Visio dun contrle restent
identiques.
468 CHAP I TRE 23
Rcuprat ion dun cont rle de la collect ion OLEObject s
Vous pouvez rcuprer lobjet Shape reprsentant un contrle de la collection
OLEObjects dun objet Document, Page ou Master Visio. Vous pouvez galement
rcuprer un contrle de la collection Shapes dune page ou dune forme de base,
mais il est beaucoup plus rapide dutiliser la collection OLEObjects car elle ne
contient que des objets lis ou incorpors, alors que la collection Shapes inclut
galement toutes les formes Visio (donc un plus grand nombre dobjets).
La collection OLEObjects contient un objet OLEObject reprsentant chaque objet li
ou incorpor dans un document, une page ou une forme de base Visio, ainsi que tous
les contrles ActiveX. La proprit Object dun objet OLEObject renvoie une
rfrence lobjet li ou incorpor, que vous pouvez utiliser pour accder aux
proprits et aux mthodes de lobjet.
Vous pouvez extraire un contrle de la collection OLEObjects via son indice au sein
de la collection ou par le nom attribu au contrle dans Visio. A lorigine, ce nom est
identique au nom dobjet VBA du contrle, comme lexplique la section prcdente
A propos des noms de contrle , page 467. Par exemple, les instructions suivantes
permettent de rcuprer une forme nomme ListBox1 :
Pour effectuer la mme opration sur tous les contrles, bouclez sur la collection
OLEObjects et vrifiez la proprit ForeignType de chaque objet OLEObject pour
voir si la partie visTypeIsControl est dfinie. Si ForeignType et visTypeIsControl ont
la valeur TRUE, lobjet est un contrle ActiveX.
01m g11sfbox As 0becf
Sef g11sfbox =
0ocumehf.0LE0becfs|"L1sfox1").0becf
UTI L I SATI ON DE CONTRL ES ACTI VEX DANS UNE SOL UTI ON VI SI O 469
Dist ribut ion de cont rles Act iveX dans une solut ion Visio
Microsoft Visual Basic pour Applications (VBA), dans Microsoft

Visio

2000, inclut
les contrles Microsoft Forms 2.0 ActiveX, qui comprennent les contrles de bote de
dialogue standard comme les boutons, les cases cocher, les zones de texte et les zones
de liste modifiable. Vous pouvez distribuer ces contrles trs simplement avec une
solution Visio car ils sont inclus dans Visio (aucune installation spciale ni licence
supplmentaire nest ncessaire).
Vous pouvez vous procurer dautres contrles en installant Visual Basic ou C++, en
tlchargeant des contrles depuis Internet ou en achetant des modules externes. La
distribution dune solution contenant de tels contrles peut tre un peu plus
complexe :
Les contrles pouvant dj se trouver sur le systme de lutilisateur, le programme
dinstallation de votre solution doit vrifier si le contrle est dj install et, sil ne
lest pas, linstaller et lenregistrer sur le systme de lutilisateur.
De tels contrles sont gnralement livrs avec une licence de cration de faon
ce que vous puissiez les utiliser dans les projets de dveloppement ; ils peuvent
ncessiter une licence dexcution pour leur distribution.
Pour plus dinformations sur linstallation, lenregistrement et les licences des
contrles de socits tierces, reportez-vous la documentation destine aux
dveloppeurs, fournie avec le contrle.
470 CHAP I TRE 23
Exemple de cont rles Act iveX qui int eragissent avec des f ormes
Pour comprendre linteraction des contrles ActiveX avec une forme Visio, consultez
lexemple suivant qui illustre un dessin comportant un contrle de zone de liste
modifiable qui rpertorie plusieurs lments : le nom des formes du dessin, des zones
de texte affichant du texte et certaines proprits personnalises dune forme
slectionne, ainsi quun bouton de commande permettant de mettre jour une
forme slectionne selon les nouvelles valeurs des zones de texte. Le dessin tient
galement jour le total des cots et des dures de toutes les formes de diagramme de
flux de processus de la page, en actualisant les totaux lors de lajout, de la suppression
ou de la modification de formes.
Dessin utilisant des
contrles ActiveX pour
interagir avec des formes
UTI L I SATI ON DE CONTRL ES ACTI VEX DANS UNE SOL UTI ON VI SI O 471
Lexemple de code suivant illustre le gestionnaire dvnements
ComboBox1_Change. Ce dernier slectionne une forme dans le dessin et affiche ses
proprits personnalises dans des zones de texte lorsque lutilisateur slectionne le
nom de cette forme dans la zone de liste modifiable :
P1vafe Sub Comboox1Chahge|)
L`uf111safeu a c11qu su uhe ehfe d`uhe 11sfe
01m sfhame As Sf1hg
0h Eo CoTo Tghoe:
Tf |bThCombooxChahged) Theh
u1ffe sahs 1eh fa1e pohde da a 1`vhemehf 1h1f1a1 Chahge
Ex1f Sub
Ehd Tf
0f1h1 uh 1hd1cafeu pou 1hfome que 1e pogamme esf dahs 1a ouf1he
Chahge. S1 uhe eeu suv1ehf aps, saufe a 1`f1queffe Tghoe, aps
avo1 1h1f1a11s cef 1hd1cafeu.
bThCombooxChahged = Tue
L`appe1 de 0ese1ecfA11 ef Se1ecf su 1`obef W1hdoW df1h1f
Comboox1.Texf |vo1 fheW1hdoWSe1ecf1ohChahged). Eheg1sfe 1e fexfe
couahf avahf d`effecfue 1`appe1 0ese1ecfA11, a1hs1 hous savohs que11e
esf 1a fome qu1 a f s1ecf1ohhe.
sfhame = Comboox1.Texf
S1ecf1ohhe 1`ehfe ef 11e ses pop1fs
Acf1veW1hdoW.0ese1ecfA11
Acf1veW1hdoW.Se1ecf Acf1vePage.Shapes|sfhame), v1sSe1ecf
W1fh Acf1vePage.Shapes|sfhame)
Texfox1.Texf = .Texf
Texfox2.Texf = Iomaf|.Ce11s|"pop.cof").Pesu1fTu, "0ev1se")
Texfox3.Texf = Iomaf|.Ce11s|"pop.due").Pesu1f|v1sE1apsedM1h),
"###0 m1h.")
Ehd W1fh
Ex1f Sub
Tghoe:
0f1h1 1`1hd1cafeu pou 1hd1que que 1e pogamme h`esf PLuS dahs 1a
ouf1he Chahge
bThCombooxChahged = Ia1se
Ehd Sub
472 CHAP I TRE 23
Ce gestionnaire dvnements effectue les oprations suivantes :
1 Il dslectionne tous les lments du dessin.
2 Il slectionne la forme dont le nom correspond la valeur de la proprit Text du
contrle ComboBox1. Si le dessin ne contient pas de forme de ce type, le
gestionnaire sinterrompt.
3 Il attribue la proprit Text du contrle TextBox1 la proprit Text de la forme.
4 Il attribue la proprit Text du contrle TextBox2 la valeur de la proprit
personnalise Cot de la forme, sous la forme dune valeur montaire.
5 Il attribue la proprit Text du contrle TextBox3 la valeur de la proprit
personnalise Dure de la forme, sous forme de minutes.
La variable globale bInComboBoxChanged indique si le gestionnaire
ComboBox1_Change est appel pour la premire fois. Le fait de dslectionner et de
slectionner une forme dclenche des vnements Window_SelectionChanged.
Toutefois, dans cet exemple, le gestionnaire de cet vnement dfinit la proprit
ComboBox1.Text, qui dclenche un vnement ComboBox1_Change et entrane une
nouvelle excution du gestionnaire ComboBox1_Change. Le gestionnaire dfinissant
la variable bInComboBoxChanged la premire excution peut ignorer les oprations de
slection la deuxime fois, empchant ainsi le programme dentrer dans une boucle
rcursive.
Il est galement possible dviter de telles boucles en dfinissant la proprit
EventsEnabled de lobjet Application afin de dsactiver la gestion des vnements
pendant que le gestionnaire effectue des oprations qui dclencheraient normalement
des vnements et entraneraient lexcution incorrecte des gestionnaires. Toutefois,
cette mthode nest pas recommande car elle dsactive tous les vnements pour la
copie du moteur Visio, risquant ainsi dentraner des interfrences avec dautres
solutions excutes sur le systme de lutilisateur (notamment si une erreur dans la
solution lempche de ractiver les vnements). A moins dtre certain que cette
solution sera la seule traiter des vnements Visio, utilisez la technique de variable
globale indique dans lexemple prcdent.
Sommaire
24
Ut ilisat ion du gest ionnaire
dannulat ion de Visio dans vot re programme
Dans un document Microsoft

Visio

, les modifications seffectuent soit par lutilisateur,


soit par un programme Automation. Lutilisateur annule ou rtablit des modifications
dans le programme ou dans linterface utilisateur laide de la mthode Undo ou Redo.
Chaque occurrence Visio contient un gestionnaire dannulation qui effectue le suivi des
actions pouvant tre annules ou rtablies dans toute lapplication. Une action annulable
peut tre une opration quelconque qui modifie ou change ltat dun document. Les files
dattente des actions pouvant tre annules ou rtablies sont appeles des piles.
Le gestionnaire dannulation de Visio permet de grer avec souplesse les actions
annulables sous la forme dactions discrtes ou de regrouper plusieurs actions
annulables en une seule unit grable dans les piles dannulation et de rtablissement
sous la forme dune action annulable unique. Pour ce faire, le moteur Visio cre un
domaine dannulation.
Par ailleurs, si votre solution gre un modle parallle ou un modle avec ombre porte
reprsentant les donnes associes aux formes du dessin, vous pouvez crer des units
dannulation qui se placent dans le gestionnaire dannulation de Visio pour que les
donnes et les dessins restent synchroniss. Les units dannulation contiennent les
actions ncessaires lannulation ou au rtablissement des modifications apportes au
document.
REMARQUE : dans les versions prcdentes de Microsoft

Visio

2000, chaque action excute


dans un programme complmentaire tait une action annulable unique dans lapplication Visio.
Si lutilisateur choisissait Annuler, seule laction la plus rcente tait annule.
Dans Visio 2000, la squence dactions excutes par un programme complmentaire appele
depuis lapplication Visio est automatiquement gre comme une action annulable unique.
Si lutilisateur choisit Annuler, toutes les actions excutes dans le programme complmentaire
sont annules. Pour plus dinformations, reportez-vous la section Fonctionnement du
gestionnaire dannulation de Visio avec un programme complmentaire , page 475.
Le gestionnaire dannulation de Visio.................................................................. 474
Cration de domaines dannulation dans votre programme
complmentaire..................................................................................................... 477
Cration dunits dannulation.............................................................................. 479
Exemple de cration dune unit dannulation qui gre
des donnes non-Visio .......................................................................................... 481
474 CHAP I TRE 24
Le gest ionnaire dannulat ion de Visio
Le moteur Visio cre une unit dannulation pour chaque commande Visio qui
modifie ltat dun document. Lunit dannulation est un moyen de dcrire ce qui a
chang ; elle regroupe toutes les informations ncessaires pour annuler une
modification dcide ou non par lutilisateur.
Pour chaque action annulable excute par un utilisateur dans linterface,
loccurrence Visio cre une unit dannulation qui apparat dans la liste Annuler de la
barre doutils Standard et dans le menu Edition. A chaque action annulable
correspond une unit dannulation.
Liste des actions annulables dans
linterface utilisateur
Les programmes complmentaires et les actions dans linterface utilisateur sont grs
diffremment. Lutilisateur qui excute un programme complmentaire partir du
menu des macros apprhende gnralement cette action comme il envisage le
dplacement dune forme sur une page, cest--dire en tant quune action annulable
unique. Lutilisateur prfre certainement annuler toutes les modifications de
programme complmentaire en une seule action. Pour cette raison, chaque fois quun
programme complmentaire est appel depuis lapplication Visio, les actions
annulables du programme sont regroupes dans un domaine dannulation et sont
prsentes lutilisateur sous la forme dune action annulable unique.
Pour plus dinformations sur la cration de vos propres domaines dannulation,
reportez-vous la rubrique Cration de domaines dannulation dans votre
programme complmentaire , page 477.
Prsent at ion des opt ions de Annuler/Rt ablir
Chaque copie de Visio inclut un gestionnaire dannulation qui permet de grer les
piles dannulation et de rtablissement. Lorsquun utilisateur choisit Annuler, le
gestionnaire de Visio prend la dernire unit dannulation ajoute la pile
dannulation ; cette unit dannulation excute alors ses actions et cre un objet
correspondant dans la pile de rtablissement.
UTI L I SATI ON DU GESTI ONNAI RE D ANNUL ATI ON DE VI SI O DANS VOTRE P ROGRAMME 475
Par exemple, si lutilisateur excute trois actions sur la page de dessin, le gestionnaire
dannulation de Visio doit globalement ressembler lillustration suivante :
Etat des piles dannulation/de
rtablissement aprs trois actions
annulables
Si lutilisateur slectionne ensuite Annuler ou si votre programme appelle la mthode
Undo de lobjet Application, le gestionnaire dannulation de Visio doit apparatre
comme dans lillustration suivante :
Etat des piles dannulation/de
rtablissement aprs lannulation
dune action
Fonct ionnement du gest ionnaire dannulat ion de Visio avec
un programme complment aire
En gnral, un programme complmentaire effectue plusieurs actions annulables :
par exemple, il peut changer la couleur du remplissage de toutes les formes prsentes
sur une page. Si cette modification ne convient pas et que lutilisateur souhaite
lannuler, il sattend ce que la slection de loption Annuler restaure le dessin dans
ltat dans lequel il tait avant lexcution du programme complmentaire.
Pour cette raison, le moteur Visio regroupe en une seule action annulable la squence
dactions entreprises par votre programme complmentaire. Chaque fois quun
programme complmentaire est appel depuis une occurrence Visio, un domaine
dannulation est lanc. Ce domaine dannulation sachve lorsque le programme
complmentaire se termine. Tout ce qui figure lintrieur de ce domaine est
considr comme une seule action annulable.
1 2 3
Gest ionnaire dannulat ion
annulation rtablissement
3 1 2
Gest ionnaire dannulat ion
annulation rtablissement
476 CHAP I TRE 24
Par exemple, si votre programme complmentaire excute trois commandes Visio, la
pile dannulation doit ressembler, aprs excution du programme complmentaire,
lillustration suivante :
Etat des piles dannulation/de
rtablissement aprs lancement
dun programme complmentaire
qui excute trois actions
annulables
Si, par la suite, lutilisateur choisit dannuler les changements apports par votre
programme complmentaire, il ne voit quune seule commande dans la liste des
annulations de la barre doutils Standard, les trois actions sont annules et la file
dattente des annulations ressemble lexemple suivant :
Etat des piles dannulation/de
rtablissement aprs la slection
de loption Annuler pour un
programme complmentaire qui
excute trois actions annulables
CONSEIL : chaque fois que vous excutez une action annulable dans un gestionnaire
dvnements, cochez tout dabord la proprit IsUndoingorRedoingde lobjet
Application. Vous devez excuter des actions annulables seulement lorsque cet indicateur
est False. Si IsUndoingorRedoing renvoie la valeur True, le gestionnaire dvnements
est appel la suite dune action Annuler ou Rtablir ; si des actions annulables sont
excutes, la pile des rtablissements est dtruite.
1 2 3
Gest ionnaire dannulat ion
pile
dannulation
pile de
rtablissement
Domaine A
Gest ionnaire dannulat ion
pile
dannulation
pile de
rtablissement
1 2 3
Domaine A
UTI L I SATI ON DU GESTI ONNAI RE D ANNUL ATI ON DE VI SI O DANS VOTRE P ROGRAMME 477
Crat ion de domaines dannulat ion dans vot re programme
complment aire
Dans certains cas, le moteur Visio ne peut pas grer automatiquement les actions
annulables dans votre programme complmentaire. Si, par exemple, votre
programme complmentaire est un programme autonome, le moteur Visio ne peut
pas dtecter le dbut et la fin de son excution. De la mme manire, si votre
programme est excut sans mode particulier, le moteur ne peut pas connatre toutes
les oprations effectues par votre programme complmentaire. Pour cette raison, le
moteur Visio met disposition des mcanismes vous permettant de crer vos propres
domaines dannulation.
Outre le regroupement des oprations en actions annulables uniques, vous pouvez
aussi utiliser des domaines dannulation pour dterminer si les vnements que vous
recevez dans votre programme proviennent de vos propres actions. Pour ce faire,
crez des domaines dannulation, puis cochez chaque ID de domaine dans vos
gestionnaires dvnements.
Crat ion dun domaine dannulat ion
Pour crer un domaine dannulation, utilisez les mthodes BeginUndoScope et
EndUndoScope de lobjet Application. Vous pouvez crer plusieurs domaines dans
votre programme complmentaire et les imbriquer.
La mthode BeginUndoScope ouvre un nouveau domaine et renvoie un ID qui lui
correspond. Pendant que le domaine est ouvert, le gestionnaire dannulation de Visio
lui attribue toutes les nouvelles units dannulation ajoutes la pile. Le moteur Visio
met galement en file dattente lvnement EnterScope de manire ce quil
transmette ultrieurement votre programme lID du domaine et sa description.
Notez les instructions suivantes lors de la cration des domaines dannulation :
Les appels BeginUndoScope et EndUndoScope doivent tre quilibrs.
Les domaines dannulation doivent tre ouverts et ferms lintrieur dune
fonction ou dune sous-routine. Si vous laissez votre domaine dannulation ouvert,
les actions utilisateur peuvent tre consignes au milieu du domaine.
La mthode EndUndoScope englobe un argument True ou False qui indique si vous
souhaitez accepter ou annuler les modifications apportes dans le domaine. Vous
pouvez utiliser cette mthode comme technique pour annuler les modifications si
vous dcidez (ou si lutilisateur dcide) dannuler le programme complmentaire.
Pour plus dinformations sur les mthodes BeginUndoScope et EndUndoScope,
reportez-vous laide en ligne Rfrence du dveloppeur (choisissez ? (Aide) >
Rfrence du dveloppeur) fournie avec Visio.
478 CHAP I TRE 24
Associat ion dvnement s un domaine dannulat ion
Vous pouvez utiliser un domaine dannulation pour dterminer si les vnements que
vous recevez sont le rsultat dune action entreprise par votre programme
complmentaire.
Lorsque vous ouvrez un domaine dannulation avec la mthode BeginUndoScope,
lID du domaine est renvoye et lvnement EnterScope est dclench. Lorsque vous
fermez le domaine dannulation avec la mthode EndUndoScope, lvnement
ExitScope se dclenche. Tous les vnements que vous provoquez lorsque votre
domaine dannulation est ouvert se dclenchent entre les vnements EnterScope et
ExitScope.
Lorsque vous recevez des vnements, vous pouvez utiliser lID du domaine si un
vnement est le rsultat dune action entreprise dans votre domaine dannulation.
Pour dt erminer si vot re domaine dannulat ion a provoqu un vnement :
1 Enregistrez dans une variable du programme lID du domaine renvoy depuis la
mthode BeginUndoScope.
2 Lorsque vous recevez un vnement dans le gestionnaire dvnements, rcuprez
la proprit IsInScope de lobjet Application en lui transmettant lID du domaine
que vous avez sauvegard.
3 Si la proprit IsInScope renvoie True, lvnement est le rsultat dune action que
vous avez entreprise dans votre domaine dannulation.
4 Crez un gestionnaire dvnements pour lvnement ExitScope et effacez la
variable de lID du domaine une fois le domaine ferm.
UTI L I SATI ON DU GESTI ONNAI RE D ANNUL ATI ON DE VI SI O DANS VOTRE P ROGRAMME 479
Crat ion dunit s dannulat ion
Si votre solution gre tous les types de modle de conceptualisation parallle
contenant des donnes associes aux formes prsentes dans votre dessin, il est
important que le modle reprsente correctement ltat du dessin.
Pour vous assurer que vos dessins et modles restent synchroniss, vous pouvez
ajouter des units dannulation dans le gestionnaire dannulation de Visio. Une unit
dannulation est un modle COM (Component Object Model) prenant en charge
linterface IVBUndoUnit Visio (ou linterface IOleUndoUnit dans un objet COM en
cours). Il contient les actions ncessaires pour annuler ou rtablir les modifications
dans une source externe de donnes qui refltent les modifications dans le dessin.
Linterface IVBUndoUnit Visio est conue pour permettre aux programmeurs
Microsoft

Visual Basic

pour Applications (VBA) et Visual Basic de crer leurs


propres units dannulation et de les placer dans le gestionnaire dannulation de
Visio. Pour crer une unit dannulation, vous devez mettre en oeuvre cette interface,
ainsi que toutes ses procdures publiques, dans un module de classe que vous insrez
dans votre projet. Cette partie dcrit la cration dune unit dannulation pour la mise
en oeuvre de linterface IVBUndoUnit dans un projet VBA.
Pour plus dinformations sur la mise en oeuvre des interfaces dans VBA ou Visual
Basic, recherchez linstruction Implements dans votre documentation Visual Basic.
Pour plus dinformations sur IVBUndoUnit, reportez-vous la bibliothque de
types Visio.
Crat ion dune unit dannulat ion
Deux approches sont possibles pour la cration dune unit dannulation :
Vous pouvez crer un objet unique qui gre lannulation et le rtablissement.
Vous pouvez crer deux objets, un qui gre lannulation et lautre qui gre le
rtablissement.
Cette section et la suivante, Exemple de cration dune unit dannulation qui gre
des donnes non-Visio , page 481, dcrivent une unit dannulation unique qui gre
lannulation et le rtablissement.
480 CHAP I TRE 24
Pour crer une unit dannulat ion :
1 Insrez un module de classe dans votre projet VBA qui met en oeuvre la classe
IVBUndoUnit. Il sagit dune unit dannulation. Pour ce faire, utilisez le mot-cl
Implements :
Dans ce module de classe, vous devez mettre en oeuvre toutes les procdures
publiques de IVBUndoUnit. Une fois que vous avez cod linstruction
Implements, IVBUndoUnit apparat dans la zone Objet de votre fentre de code.
2 Dans la zone Objet, slectionnez IVBUndoUnit.
Comme le dcrit le tableau suivant, chaque procdure mettre en oeuvre
correspond une procdure type disponible dans la zone des procdures.
Tmp1emehfs v1s1o.Tvuhdouh1f
Procdures IVBUndoUnit
Nom de la
procdure Description
Description Cette proprit renvoie une chane dcrivant l unit d annulation.
Cette chane apparat dans la liste Annuler de la barre d outils
Standard.
Do Cette mthode fournit les actions ncessaires pour annuler et
rtablir votre action.
Si vous crez un seul objet pour l annulation et le rtablissement,
cette procdure gre l tat annul ou rtabli et ajoute une unit
d annulation dans la pile oppose.
Si la mthode Do est appele avec le pointeur Nothing, l unit doit
excuter l action d annulation mais ne doit rien placer dans la pile
d annulation ou de rtablissement.
OnNextAdd Cette mthode est appele lorsque l unit d annulation suivante du
mme domaine est ajoute la pile d annulation. Lorsqu une unit
d annulation reoit une notification OnNextAdd, elle indique en retour
l objet de cration qu elle ne peut plus insrer des donnes dans
cette unit d annulation.
UnitSize Cette proprit renvoie la taille approximative de la mmoire (en
octets) de l unit d annulation plus les ressources qu elle a alloues.
Le moteur Visio peut utiliser cette taille au moment o il doit prendre
la dcision de purger la file d attente d annulation. Cette valeur est
facultative et peut tre gale 0.
UnitTypeCLSID Cette proprit renvoie une valeur de chane qui peut contenir un
CLSI D pour identifier vos units d annulation. Vous pouvez utiliser le
mme CLSI D pour vos diffrentes units d annulation et utiliser
diffrentes valeurs dans la procdure UnitTypeLong. Cette valeur est
facultative et peut tre une chane Null ou vide.
UnitTypeLong Cette proprit renvoie une valeur au format Long que vous pouvez
utiliser pour identifier vos objets. Cette valeur est facultative et peut
tre gale 0.
UTI L I SATI ON DU GESTI ONNAI RE D ANNUL ATI ON DE VI SI O DANS VOTRE P ROGRAMME 481
Ajout dune unit dannulat ion dans le gest ionnaire
dannulat ion de Visio
Quel que soit lemplacement du programme o vous excutez une action dans votre
modle parallle, vous devez ajouter une copie de votre unit dannulation qui peut
annuler ou rtablir votre action. Ainsi, si les modifications de votre programme
complmentaire sont annules, laction est appele avec tout ce qui figure dans la pile
dannulation.
Pour ajout er une unit dannulat ion dans le gest ionnaire dannulat ion de
Visio :
Appelez la mthode AddUndoUnit de lobjet Application et transmettez-lui,
laide du mot-cl New, une copie de votre classe dunits dannulation.
Par exemple, si le module de classe que vous avez insr dans le projet sintitule
MonUnit_A_Annuler :
Pour plus dinformations sur le mot-cl New, reportez-vous la documentation
Visual Basic.
Exemple de crat ion dune unit dannulat ion qui gre des donnes
non-Visio
Lexemple suivant prsente la cration dune unit dannulation synchronisant un
dessin et un modle parallle : ici, une simple variable appele m_nCount reprsente le
nombre de formes dans le dessin. Cette variable est incrmente chaque fois quune
forme est ajoute au dessin.
Le module de classe appel VBAUndoUnit contient la logique permettant
daugmenter ou de diminuer cette variable si lvnement ShapeAdded est, par la
suite, annul ou rtabli. VBAUndoUnit contient un indicateur permettant de grer
ltat annul ou rtabli de cet vnement. Lindicateur est initialis sur False car cet
objet est initialement plac dans la pile dannulation. Aprs avoir t appel la
premire fois, il dclenche la logique dannulation, son tat passe TRUE et lobjet se
place dans la pile de rtablissement.
Lexemple utilise la fentre Excution de lEditeur Visual Basic pour afficher la faon
dont ce projet conserve la synchronisation entre le dessin et les donnes.
App11caf1oh.Adduhdouh1f heW Mohuh1fAAhhu1e
482 CHAP I TRE 24
Dans le gestionnaire dvnements ShapeAdded, le premier bloc de code est contenu
dans le module de classe ThisDocument. Le programme incrmente m_nCount de 1,
puis ajoute lunit dannulation la pile dannulation du gestionnaire dannulation de
Visio. Comme le moteur Visio cre automatiquement un domaine lorsque le
gestionnaire dvnements est appel, votre unit dannulation est excute si
lutilisateur dcide dannuler la forme quil vient dajouter au dessin.
ThisDocument contient aussi des procdures permettant daugmenter et de
diminuer la variable par incrments.
P1vafe mhCouhf As Lohg
P1vafe Sub 0ocumehfShapeAdded|yva1 Shape As TvShape)
Tf hof App11caf1oh.Tsuhdo1hg0Pedo1hg Theh
Ma1hfehahf vous pouvez excufe des acf1ohs hoh ahhu1ab1es
ThcemehfModu1eva
0ebug.P1hf "01g1ha1 0o: CefModu1eva = " & CefModu1eva
Aoufe uhe uh1f d`ahhu1af1oh qu1 ahhu1e/fab11f ceffe acf1oh
App11caf1oh.Adduhdouh1f heW vAuhdouh1f
Ehd Tf
Ehd Sub
Pub11c Sub ThcemehfModu1eva|)
mhCouhf = mhCouhf + 1
Ehd Sub
Pub11c Sub 0ecemehfModu1eva|)
mhCouhf = mhCouhf - 1
Ehd Sub
Pub11c Iuhcf1oh CefModu1eva|) As Lohg
CefModu1eva = mhCouhf
Ehd Iuhcf1oh
UTI L I SATI ON DU GESTI ONNAI RE D ANNUL ATI ON DE VI SI O DANS VOTRE P ROGRAMME 483
Dsormais, le code dans VBAUndoUnit est le suivant :
Tmp1emehfs v1s1o.Tvuhdouh1f
P1vafe mbuhdohe As oo1eah
mbuhdohe esf uh 1hd1cafeu qu1 s1gha1e s`11 ex1sfe uhe uh1f
d`ahhu1af1oh dahs 1a p11e d`ahhu1af1oh ou de fab11ssemehf. Losque
vous appe1ez Ap11caf1oh.Adduhdouh1f pou 1a pem1e fo1s, uhe
occuehce de vAuhdouh1f esf p1ace dahs 1a p11e d`ahhu1af1oh.
Losque 1`ahhu1af1oh a 11eu, 1a mfhode 0o esf appe1e.
vous acf1vez a1os cef 1hd1cafeu ef appe1ez TvuhdoMahage.Add
af1h que 1`uh1f d`ahhu1af1oh so1f p1ace dahs 1a p11e de
fab11ssemehf. Losque vous appe1ez 1a mfhode 0o, vous acf1vez
1`1hd1cafeu ef appe1ez TvuhdoMahage.Add af1h que 1`uh1f
d`ahhu1af1oh efouhe dahs 1a p11e d`ahhu1af1oh.
Losqu`uhe uh1f d`ahhu1af1oh se fouve dahs 1a p11e d`ahhu1af1oh,
mbuhdohe do1f fe Ia1se ca ceffe opaf1oh h`a pas ehcoe eu 11eu.
Losque 1a mfhode 0o esf appe1e ef que 1`uh1f d`ahhu1af1oh esf
fahsfe ves 1a p11e de fab11ssemehf, vous acf1vez 1`1hd1cafeu
ef mbuhdohe dev1ehf Tue. vous 1h1f1a11sez mbuhdohe comme fahf Ia1se
ca 1`uh1f d`ahhu1af1oh se fouve d`abod dahs 1a p11e d`ahhu1af1oh.
Pehdahf uh efou a1e, |uh uf111safeu appe11e EhduhdoScope|hT0,
"Ia1se")), 1a mfhode 0o de vAuhdouh1f esf appe1e.
La pop1f TvuhdoMahage esf paamfe su hofh1hg. 0ahs ce cas,
vAuhdouh1f he do1f pas fehfe d`aoufe uhe uh1f d`ahhu1af1oh a ce11e
qu1 a f fahsfe dahs 1e gesf1ohha1e d`ahhu1af1oh.
v1f1ez fouous que pMg = "Ts hofh1hg" dahs vofe mfhode 0o.
P1vafe Sub C1assTh1f1a11ze|)
0ebug.P1hf "vAuhdouh1f ce..."
Ehd Sub
P1vafe Sub C1assTem1hafe|)
0ebug.P1hf "vAuhdouh1f v1de..."
Ehd Sub
P1vafe Popefy Cef Tvuhdouh1f0esc1pf1oh|) As Sf1hg
0ebug.P1hf "vAuhdouh1f.0esc1pf1oh"
Tvuhdouh1f0esc1pf1oh = "vAuhdouh1f"
Ehd Popefy
P1vafe Sub Tvuhdouh1f0o|yva1 pMg As TvuhdoMahage)
Ahhu1e ou fab11 se1oh 1a va1eu de 1`1hd1cafeu d`faf :
Tf |mbuhdohe) Theh
Pfab11 1`acf1oh o1g1ha1e :
Th1s0ocumehf.ThcemehfModu1eva
E1se
Ahhu1e 1`acf1oh o1g1ha1e :
Th1s0ocumehf.0ecemehfModu1eva
Ehd Tf
484 CHAP I TRE 24
Exemple de code (suite)
Thvese 1a va1eu de 1`1hd1cafeu d`faf :
mbuhdohe = hof mbuhdohe
Tf hof |pMg Ts hofh1hg) Theh
Aoufe uhe cop1e eh cas de efou de vAuhdouh1f dahs 1a p11e
oppose
pMg.Add Me
0ebug.P1hf "vAuhdouh1f.0o appe1 AvEC gesf1ohha1e d`ahhu1af1oh"
E1se
Touf a f fa1f -- ahhu1af1oh eh cous...
0ebug.P1hf "vAuhdouh1f.0o appe1 SAhS gesf1ohha1e d`ahhu1af1oh"
Ehd Tf
Cohf1me 1es su1fafs de 1`ahhu1af1oh eh 1mp1mahf 1a va1eu de
1a va1ab1e CefModu1eva
0ebug.P1hf "Aps vAuhdouh1f.0o - CefModu1eva = " &
Th1s0ocumehf.CefModu1eva
Ehd Sub
P1vafe Sub Tvuhdouh1f0hhexfAdd|)
0hhexfAdd esf appe1 1os de 1`aouf a 1a p11e d`ahhu1af1oh de 1`uh1f
su1vahfe
0ebug.P1hf "vAuhdouh1f.0hhexfAdd"
Ehd Sub
P1vafe Popefy Cef Tvuhdouh1fuh1fS1ze|) As Lohg
uh1fS1ze do1f ehvoye uhe esf1maf1oh de 1a quahf1f de mmo1e
|eh ocfefs) de 1`uh1f d`ahhu1af1oh ef de fouf ce qu`e11e compofe.
Ceffe mesue pemef a v1s1o de dc1de du momehf o 1es opaf1ohs
do1vehf fe supp1mes de 1a mmo1e.
0ebug.P1hf "vAuhdouh1f.uh1fS1ze"
Tvuhdouh1fuh1fS1ze = 4
Ehd Popefy
P1vafe Popefy Cef Tvuhdouh1fuh1fTypeCLST0|) As Sf1hg
Pefouhez uhe cha1he CLST0 1c1 pou pouvo1
1dehf1f1e vos uh1fs.
S1 vous possdez p1us1eus fypes d`uh1fs, vous pouvez ehvoye
a foufes 1a mme cha1he CLST0, a cohd1f1oh que vous cho1s1ss1ez des
T0 Lohg d1sf1hcfs pou chacuhe d`e11es.
0ebug.P1hf "vAuhdouh1f.uh1fTypeCLST0"
Tvuhdouh1fuh1fTypeCLST0 = hu11
Ehd Popefy
P1vafe Popefy Cef Tvuhdouh1fuh1fTypeLohg|) As Lohg
Pehvoyez uhe cha1he Lohgue 1c1 pou pouvo1 1dehf1f1e vos uh1fs. vo1
uh1fTypeCLST0.
0ebug.P1hf "vAuhdouh1f.uh1fTypeLohg"
Tvuhdouh1fuh1fTypeLohg = 0
Ehd Popefy
Sommaire
25
Dist ribut ion dune solut ion
Visio Aut omat ion
Si vous dveloppez un programme destin tre diffus, vous devez slectionner les
modles, les gabarits et les dessins distribuer avec votre programme, choisir le fichier
Microsoft

Visio

dans lequel vous allez stocker le programme Microsoft

Visual
Basic

pour Applications (VBA) et prparer linstallation des fichiers. Vous devez


galement choisir le mode dexcution du programme par lutilisateur et les
arguments indiquer au moment du lancement. Vous pouvez galement crer un
programme charg dinstaller une application externe autonome, ses gabarits et
modles, et une aide en ligne dans les dossiers appropris.
Le prsent chapitre explique o installer les fichiers pour utiliser les chemins par
dfaut de Visio, dcrit comment un utilisateur peut excuter votre programme et
numre les questions envisager lors de la diffusion du programme. Pour plus
dinformations sur la cration de fichiers daide et de programmes dinstallation,
reportez-vous la documentation de votre environnement de dveloppement. Pour
plus dinformations sur lassociation dune aide en ligne des formes, reportez-vous
au chapitre 13, Diffusion de gabarits et de modles .
Installation dune solution Visio............................................................................ 486
Contrle de lexcution dun programme............................................................ 488
Diffusion dun programme.................................................................................... 491
486 CHAP I TRE 25
Inst allat ion dune solut ion Visio
Si vous diffusez votre solution sous la forme dun programme VBA ou dun seul
fichier excutable (.EXE), il ne sera pas ncessaire de crer un programme pour
linstaller. En revanche, si votre solution inclut un fichier .EXE, des gabarits, des
modles ou un fichier daide, un programme dinstallation peut aider lutilisateur
mettre en oeuvre votre solution aisment et correctement.
La prsente section dcrit linstallation des fichiers de votre solution. Pour plus
dinformations sur la cration dun programme dinstallation, reportez-vous la
documentation de votre environnement de dveloppement.
Dt erminat ion des chemins et dossiers des f ichiers Visio
Lorsque vous installez votre solution, installez les fichiers de votre programme et de
Visio dans les dossiers des chemins indiqus dans longlet Chemins d'accs (accessible
via Outils > Options > Chemins d'accs).
Onglet Chemins daccs
Par dfaut, le dossier \Solutions et ses sous-dossiers constituent le chemin des
modles, des gabarits, des fichiers daide et des programmes complmentaires. Par
exemple, installez les modles contenant les macros VBA dans le dossier \Solutions ou
dans lun de ses sous-dossiers.
Vous pouvez galement ajouter des dossiers ou les modifier afin dy inclure les
dossiers personnaliss que vous crez. Pour indiquer plusieurs dossiers, sparez-les
par des points-virgules. Par exemple, vous pouvez redfinir le chemin des
programmes complmentaires de manire obtenir Solutions;DVS .
DI STRI BUTI ON D UNE SOL UTI ON VI SI O AUTOMATI ON 487
REMARQUE : si un chemin est incomplet, Visio effectue la recherche dans le dossier des
fichiers de programme de Visio. Par exemple, si le fichier excutable Visio est install dans
c:\Visio, et si le chemin des programmes complmentaires est progcomp;d:\Progcomp ,
Visio recherche les programmes complmentaires dans c:\Visio\Progcomp, dans
d:\Progcomp et dans leurs sous-dossiers.
Vous pouvez galement connatre les chemins utiliss sur le systme de lutilisateur en
lisant les proprits suivantes de lobjet Application : AddonPaths, StartupPaths,
DrawingPaths, StencilPaths, FilterPaths, TemplatePaths et HelpPaths.
Par exemple, pour lire la proprit AddonPaths :
Mode de recherche des chemins de f ichier de Visio
Les fichiers placs dans les dossiers dun chemin Visio dfini apparaissent dans certains
menus et dans les botes de dialogue de linterface utilisateur. Si vous installez vos
fichiers de solution dans les dossiers des chemins Visio appropris, vous pouvez tirer
parti de ce comportement. Par exemple :
Les programmes complmentaires stocks dans les dossiers indiqus par le chemin
des fichiers complmentaires de Visio indiqu dans longlet Chemins d'accs
apparaissent dans la bote de dialogue Macros et dans le sous-menu Macros, de
mme que les macros VBA associes au document ouvert.
Les fichiers de modle stocks dans les dossiers indiqus par le chemin de modles
de Visio apparaissent dans les botes de dialogue Choisir le type de dessin et Ouvrir
un fichier, ainsi que dans le menu Fichier > Nouveau.
Les gabarits stocks dans les dossiers indiqus par le chemin des gabarits de Visio
sont rpertoris dans le menu Fichier > Ouvrir un gabarit et dans la bote de
dialogue Ouvrir un gabarit.
Chemins utiliser pour installer les fichiers de votre programme
Fichier installer Chemin Visio utiliser
Programme (.exe) Chemin des programmes
complmentaires
Bibliothque Visio (.vsl) Chemin des programmes
complmentaires
Aide en ligne (.hlp ou .chm) des programmes ou des
formes
Chemin des aides
Gabarit (.vss) Chemin des gabarits
M odle (.vst) Chemin des modles
sfPafh = v1s1o.App11caf1oh.AddohPafhs
488 CHAP I TRE 25
Cont rle de lexcut ion dun programme
Vous pouvez excuter un programme de diverses faons selon le type de programme
dvelopp et les dossiers dinstallation des fichiers de programmes externes. Cette
section rpertorie certaines des options votre disposition.
Excution dun programme au lancement de Visio
Pour excuter votre programme chaque fois que Visio est lanc, placez le fichier
excutable (.EXE) ou de bibliothque Visio (.VSL) du programme dans le dossier de
dmarrage Visio dfini dans longlet Chemins d'accs.
Excution dun programme depuis le sous-menu Macros ou la bote
de dialogue Macros
Pour permettre lexcution de votre programme (fichier .EXE ou .VSL, ou macro
VBA) depuis la bote de dialogue Macros, installez le fichier .EXE ou .VSL du
programme externe dans le chemin des programmes complmentaires indiqu dans
longlet Chemins d'accs. Tous les programmes de ce chemin apparaissent dans la
bote de dialogue Macros et dans le sous-menu Macros au ct des macros VBA
publiques stockes dans le document Visio ouvert.
Bote de dialogue Macros
DI STRI BUTI ON D UNE SOL UTI ON VI SI O AUTOMATI ON 489
Association dun programme une cellule de la section Actions ou
Evnements
Vous pouvez excuter un programme quand lutilisateur dclenche un vnement en
double-cliquant sur une forme ou en slectionnant une option du menu contextuel
de cette forme. Pour excuter un programme depuis le menu contextuel dune forme,
entrez une formule utilisant la fonction RUNADDON de Visio dans la cellule Action
dune ligne de la section Actions de la forme et entrez le texte de loption de menu
dans la cellule Menu. La fonction RUNADDON peut excuter tous les programmes
complmentaires et les macros de votre projet VBA. Par exemple :
Ligne Action dune
section Actions dune forme
En labsence de chemin complet, Visio recherche le programme dans le chemin des
programmes complmentaires indiqu dans longlet Chemins d'accs.
Vous pouvez galement associer une action une forme dans la bote de dialogue
Action (accessible lorsque la fentre ShapeSheet

est active) en cliquant sur une cellule


Action et en choisissant Modifier > Action.
Bote de dialogue Action
Pour transmettre des arguments de ligne de commande votre programme, optez
pour la fonction RUNADDONWARGS de Visio, qui nest pas utilisable avec les
programmes VBA, mais seulement avec les programmes complmentaires. Par
exemple, pour excuter un programme externe appel monprog.exe :
= PuhA000hWAPCS|"mohpog.exe", "agumehfs")
490 CHAP I TRE 25
Pour excuter un programme lors du calcul dune cellule Evnements, placez la
formule dans la cellule Evnements de lvnement qui doit activer ce programme.
Section Evnements de la
fentre Feuille ShapeSheet
Par exemple, pour excuter une macro VBA lorsque lutilisateur insre une forme de
base dans un dessin, placez la formule suivante dans la cellule CrationEvn de la
section Evnements de la forme de base :
Pour excuter une macro VBA quand un utilisateur double-clique sur une forme,
placez la mme formule dans la cellule EvnDblClic de la section Evnements de cette
forme. Vous pouvez galement dfinir lvnement de double-clic dune forme dans
longlet Action du double-clic (accessible via Format > Comportement > Action du
double-clic), en choisissant Excuter une macro, puis en slectionnant la macro dans
la liste droulante.
Onglet Action du double clic de la
bote de dialogue Comportement
Pour plus dinformations sur la rponse aux vnements de la section Evnements,
reportez-vous au chapitre 7, Amlioration du comportement des formes .
= APPELEPCE|"M1se eh page")
DI STRI BUTI ON D UNE SOL UTI ON VI SI O AUTOMATI ON 491
Excution dun programme lorsque lutilisateur slectionne une
commande de menu ou clique sur un bouton de la barre doutils
Vous pouvez ajouter des commandes de menu ou des lments de barre doutils
personnaliss linterface utilisateur de Visio, et les utiliser pour excuter vos
programmes. Pour plus dinformations, reportez-vous au chapitre 22,
Personnalisation de linterface utilisateur Visio .
Excution dun code VBA dans des procdures de gestion
dvnement
Vous pouvez excuter un code VBA en plaant du code dans le module de classe
ThisDocument, sous la procdure dvnement approprie. Par exemple, pour
excuter un code louverture dun document, entrez votre code dans la procdure
dvnement DocumentOpened.
Voici quelques-uns des vnements de document grs : BeforeDocumentClose,
BeforePageDelete, BeforeShapeDelete, BeforeSelDelete (avant la suppression dun
groupe de formes), ShapeAdded, DocumentCreated, DocumentOpened,
DocumentSaved et DocumentSavedAs.
Pour plus dinformations sur les rponses aux vnements dobjets, reportez-vous au
chapitre 21, Gestion des vnements dans Visio .
Dif f usion dun programme
Les fichiers diffuser dpendent du type de solution cr. En gnral, si vous crez un
programme VBA stock dans un modle, il suffit de distribuer le modle et ses
gabarits (et les fichiers auxquels le programme VBA fait ventuellement rfrence).
Si vous crez un programme externe, il peut tre ncessaire de diffuser le fichier
excutable (.EXE), un modle et des gabarits. Si vous crez un programme
complmentaire, il suffit peut-tre de diffuser le fichier .EXE ou le fichier de
bibliothque Visio (.VSL). Si vous diffusez des formes Visio, vous devez garder
lesprit les restrictions lies au droit dauteur.
Dif f usion de programmes Microsof t VBA
Les programmes VBA sont stocks dans un modle, un gabarit ou un dessin Visio.
En gnral, le seul fichier distribuer est un modle (.VST) ou un dessin (.VSD) et ses
gabarits (.VSS). Si le projet VBA fait rfrence dautres fichiers Visio, vous devez
galement les diffuser. Un programme VBA ne comporte pas de fichier de
programme distinct.
492 CHAP I TRE 25
Le schma ci-dessous dcrit les lments ventuels dune solution VBA.
Solution VBA et ses lments :
modle, gabarit et macros VBA
Lorsque lutilisateur cre un document partir dun fichier Visio, Visio copie le
programme VBA dans le nouveau document ; les ventuelles rfrences des gabarits
identiques ou dautres fichiers Visio sont galement dupliques.
Taille des f ichiers de dessin dans une solut ion Microsof t VBA
Le choix de lemplacement de stockage de votre programme VBA peut avoir une
incidence sur la taille du fichier de dessin. Vous pouvez stocker votre programme
dans un modle, un gabarit ou un dessin. Veuillez prendre en compte les lments
suivants.
Bien que pratique diffuser, un modle contenant beaucoup de code VBA peut
augmenter trs sensiblement la taille des dessins car le code du modle est recopi
dans tous les dessins crs partir de ce dernier. Un tel modle peut galement
compliquer la maintenance ou la mise jour dune solution, car chaque dessin
comporte alors une copie du code.
Si le code est destin aider lutilisateur crer un dessin, et sil nest pas rutilis par
la suite, le modle est probablement le meilleur endroit pour le stocker. Cependant,
vous pouvez galement placer la majeure partie du code dans un gabarit Visio (.VSS)
et lappeler depuis le modle. Cette mthode permet de limiter la taille des fichiers de
dessin et facilite la maintenance car il suffit de diffuser une nouvelle version du gabarit
pour mettre jour votre solution.
REMARQUE : si vous faites rfrence au code dun gabarit depuis un autre projet VBA,
Visio ouvre automatiquement ce gabarit qui nest pas visible. Vous ne pouvez pas le
fermer tant quun projet VBA y faisant rfrence est ouvert.
DI STRI BUTI ON D UNE SOL UTI ON VI SI O AUTOMATI ON 493
Ut ilisat ion de noms universels dans une solut ion
Dans Microsoft

Visio

2000, vous pouvez associer un nom universel aux formes,


formes de base, pages, styles, lignes ou calques en plus de leurs noms locaux. Un nom
local est le nom, tel que le nom dune forme, qui apparat dans linterface utilisateur.
Si votre solution Automation est localise (traduite dans une autre langue), ces noms
sont gnralement changs en fonction du pays dans lequel llment correspondant
est excut.
Les noms universels sont des noms qui ne sont pas modifis lorsque la solution est
localise. Ils napparaissent pas dans linterface utilisateur ; seuls les clients
Automation peuvent accder aux objets Visio par le biais de leur nom universel. En
utilisant ces noms dans votre code source, vous pouvez excuter ce dernier sans le
modifier et viter de prendre en charge plusieurs versions de votre solution.
La premire fois que vous nommez un objet, dans linterface utilisateur ou via
Automation, le nom universel est par dfaut identique au nom local. Une fois que le
nom dorigine est attribu :
Toute modification de nom effectue dans linterface utilisateur a une incidence
uniquement sur le nom local.
Vous ne pouvez accder aux noms universels ou les modifier que via linterface
Automation.
Les proprits et les mthodes que vous pouvez utiliser dans votre code source pour
faire rfrence au nom universel dun objet sont stockes dans la bibliothque de
types Visio, accompagnes du suffixe U .
Pour ident if ier les proprit s et les mt hodes f aisant rf rence des noms
universels :
1 Dans lexplorateur dobjets, slectionnez la classe que vous utilisez, par exemple,
Page.
2 La liste des membres de la classe rpertorie plusieurs proprits et mthodes qui
utilisent le nom universel de lobjet Page, savoir DropManyU, GetFormulasU et
NameU.
Pour plus dinformations sur lutilisation de ces proprits et de ces mthodes,
effectuez une recherche laide de la proprit ou de la mthode correspondante dans
laide en ligne Rfrence du dveloppeur (accessible via ? (Aide) > Rfrence du
dveloppeur) fournie avec Visio. Par exemple, pour plus dinformations sur la
mthode GetFormulasU, recherchez la mthode GetFormulas.
Inf ormat ions import ant es concernant les licences
Les gabarits, les formes de base, les modles et le code source inclus dans les produits
Visio sont soumis un copyright de Visio Corporation concernant le matriel, et sont
protgs par les lois amricaines sur le copyright et les dispositions des traits
internationaux.
494 CHAP I TRE 25
Cette situation a les consquences suivantes pour les dveloppeurs de solutions : vous
ne pouvez pas diffuser les formes de base protges fournies avec un produit Visio
dans un autre objectif que la consultation ou la modification dun dessin contenant
ces formes de base, sauf si lutilisateur dtient la licence dun produit Visio incluant
ces formes de base. Cette disposition sapplique galement aux formes cres par
modification ou adaptation des formes de base protges.
Par exemple, vous ne pouvez pas fournir une forme dun gabarit de Microsoft


Visio

2000, Technical Edition, un utilisateur disposant de Microsoft

Visio

2000,
Professional Edition, (car il ne possde pas de copie lgale du gabarit Technical
Edition contenant la forme de base).
Les fichiers de constantes et fonctions globales Microsoft

Visual Basic

et C++ situs
dans le dossier \DVS du CD-ROM de Visio sont galement soumis un copyright.
Vous pouvez intgrer ces fichiers dans vos projets et les utiliser pour crer des
programmes excutables, mais vous ne pouvez pas les diffuser si les dveloppeurs
destinataires ne disposent pas de la licence dun produit Visio contenant ces fichiers.
Vous pouvez protger les formes que vous crez en fournissant des informations de
copyright dans la bote de dialogue Spcial associe la forme de base ou toute
occurrence de cette forme de base. Pour ouvrir la bote de dialogue Spcial,
slectionnez une forme, puis choisissez Format > Spcial. Vous ne pouvez effectuer
cette opration quune seule fois par forme (sauf si vous cliquez sur Annuler
immdiatement aprs). Aucune modification ultrieure des informations de
copyright dune forme nest autorise.
REMARQUE : pour plus dinformations sur la licence des formes de base et des produits
Visio, reportez-vous laccord de licence Visio fourni avec Visio.
Sommaire
26
Programmat ion de Visio
avec Microsof t Visual Basic
Les chapitres prcdents du manuel Developing Visio Solutions taient consacrs au
dveloppement de programmes dans lenvironnement de Microsoft

Visual Basic


pour Applications (VBA) de Microsoft

Visio

. Le prsent chapitre traite des


questions propres la cration de programmes externes pour contrler Visio laide
de lenvironnement de dveloppement Microsoft

Visual Basic

.
Pour plus dinformations sur le modle dobjet de Visio, reprsentant les objets, les
proprits et les mthodes proposs par le moteur Visio via Automation,
reportez-vous au chapitre 14, Automation et le modle dobjet de Visio .
Rcupration dune copie de Visio ....................................................................... 496
Cration dun document Visio............................................................................... 501
Gestion des erreurs dans Microsoft Visual Basic ................................................ 502
Interprtation de la chane de commande envoye par Visio
votre programme ........................................................................................................503
Utilisation de la bibliothque de types de Visio dans les projets
Microsoft Visual Basic.................................................................................................506
Migration de Microsoft Visual Basic VBA.......................................................... 507
496 CHAP I TRE 26
Rcuprat ion dune copie de Visio
Les programmes externes contrlant Visio par le biais dAutomation doivent interagir
avec une copie de Visio. Selon lusage du programme, vous pouvez lancer une
nouvelle copie de Visio ou utiliser une copie en cours dexcution.
Crat ion dun objet Applicat ion
Aprs avoir dclar une variable objet Visio pour un objet Application, vous pouvez
utiliser la fonction CreateObject dans une instruction Set pour crer lobjet et
lassocier la variable objet qui permet ensuite de contrler la copie :
La cration dun objet Application excute une nouvelle copie de Visio, mme si
dautres copies existent dj.
Vous pouvez galement utiliser la fonction CreateObject pour crer une copie de
Visio invisible :
Vous pouvez ensuite utiliser la proprit Visible de lobjet Application pour
contrler la visibilit de la copie.
REMARQUE : vous pouvez utiliser lobjet InvisibleApp uniquement avec la fonction
CreateObject. Si vous essayez de lutiliser avec la fonction GetObject, cela chouera.
Lobjet InvisibleApp nest pas disponible dans les versions Visio antrieures Microsoft


Visio

2000.
Sef appv1s1o = Ceafe0becf|"v1s1o.App11caf1oh")
Sef appv1s1o = Ceafe0becf|"v1s1o.Thv1s1b1eApp")
P ROGRAMMATI ON DE VI SI O AVEC MI CROSOFT VI SUAL BASI C 497
Rcuprat ion dun objet Applicat ion
Vous pouvez utiliser la fonction GetObject pour accder un objet Application
correspondant une copie de Visio en cours dexcution. Exemple :
La virgule indique que le premier argument de GetObject, savoir le chemin dun
fichier, a t omis. Cette virgule est indispensable car, dans certains cas, un nom de
fichier doit tre le premier argument de GetObject. Cependant, pour accder une
copie de Visio, vous devez omettre largument du nom de fichier ; sinon, une erreur
se produit. Pour plus dinformations, recherchez les donnes concernant GetObject
dans votre documentation Microsoft Visual Basic.
Si plusieurs copies de Visio sont en cours dexcution, GetObject renvoie la copie
active. Lorsquun programme est excut sous la forme de programme
complmentaire ou par double-clic sur une forme, la copie active est celle partir de
laquelle le programme a t lanc. Dans le cas contraire, il sagit de la dernire copie
excute ou active. Si aucune copie de Visio nest excute, lutilisation de GetObject
provoque une erreur.
Librat ion dun objet Applicat ion
Une copie dapplication vit jusqu ce que vous utilisiez la mthode Quit ou que
lutilisateur la ferme. Vous pouvez prvoir la gestion des erreurs ou utiliser des
vnements pour faire face cette dernire situation qui peut se produire tout
moment durant lexcution de votre programme.
Pour plus dinformations sur la gestion des vnements, reportez-vous au chapitre 21,
Gestion des vnements dans Visio
Exemple dut ilisat ion dun objet Applicat ion dans un
programme Microsof t Visual Basic
La sous-routine Visual Basic suivante cre un objet Application excutant une copie
de Visio, et gnre un dessin en ouvrant un modle et un gabarit. Cette sous-routine
suit les tapes ci-dessous :
1 Excution dune copie de Visio.
2 Cration dun document fond sur le modle Diagramme de base.vst.
3 Placement dune occurrence de la forme de base Rectangle du gabarit Formes de
base.vss sur la page de dessin.
4 Insertion de la chane Bonjour tous ! dans la forme de rectangle de la page de
dessin.
5 Enregistrement du document.
6 Fermeture de la copie de Visio.
Sef appv1s1o = Cef0becf|, "v1s1o.App11caf1oh")
498 CHAP I TRE 26
Sub he11oWo1d |)
va1ab1es d`obefs a uf111se dahs 1e pogamme
01m appv1s1o As v1s1o.App11caf1oh 0ccuehce de v1s1o
01m docs0b As v1s1o.0ocumehfs Co11ecf1oh 0ocumehfs de
1`occuehce
01m doc0b As v1s1o.0ocumehf 0ocumehf a uf111se
01m sfh0b As v1s1o.0ocumehf Caba1f cohfehahf 1a fome de
base
01m masf0b As v1s1o.Masfe Iome de base a 1hse
01m pags0b As v1s1o.Pages Co11ecf1oh Pages du documehf
01m pag0b As v1s1o.Page Page a uf111se
01m shp0b As v1s1o.Shape 0ccuehce de 1a fome de base
su 1a page
Cez uhe occuehce de v1s1o, a1hs1 qu`uh documehf su 1a base du
mod1e de base. vous pouvez effecfue ceffe opaf1oh mme s1 uhe
occuehce de v1s1o esf da eh cous d`excuf1oh
1e pogamme eh 1ahce uhe houve11e.
Sef appv1s1o = Ceafe0becf|"v1s1o.app11caf1oh")
Sef docs0b = appv1s1o.0ocumehfs
Cez uh documehf su 1a base du mod1e de d1agamme de base qu1
ouve aufomaf1quemehf 1e gaba1f Iomes de base.
Sef doc0b = docs0b.Add|"01agamme de base.vsf")
Sef pags0b = appv1s1o.Acf1ve0ocumehf.Pages
uh houveau documehf compofe au mo1hs uhe page dohf 1e humo
d`1hd1ce dahs 1a co11ecf1oh Pages esf 1.
Sef pag0b = pags0b.Tfem|1)
Sef sfh0b = appv1s1o.0ocumehfs|"01agamme de base.vss")
Sef masf0b = sfh0b.Masfes|"Pecfahg1e")
Thsez 1e ecfahg1e au m111eu de 1a page.
Les coodohhes fahsm1ses au momehf de 1`1hsef1oh sohf fouous
exp1mes eh pouces.
Sef shp0b = pag0b.0op|masf0b, 4.2S, S.S)
0f1h1ssez 1e fexfe du ecfahg1e
shp0b.Texf = "ohou a fous !"
Eheg1sfez 1e dess1h ef qu1ffez v1s1o. Le message 1hfeompf 1e
pogamme. Le dess1h v1s1o appaa1f avahf 1a femefue de 1`occuehce.
doc0b.SaveAs "he11o.vsd"
Msgox "0ess1h fem1h !", , "ohou a fous !"
appv1s1o.u1f
Ehd Sub
P ROGRAMMATI ON DE VI SI O AVEC MI CROSOFT VI SUAL BASI C 499
CreateObject est une fonction Visual Basic qui cre un objet Automation (dans le
prsent exemple, CreateObject excute une nouvelle copie de Visio et renvoie un
objet Application qui reprsente la copie, qui est associe la variable appVisio). Les
six instructions Set suivantes crent des rfrences aux autres objets du programme en
accdant aux proprits des objets rcuprs prcdemment. Vous remarquez de
nouveau la progression effectue dans le modle dobjet de Visio : objet Application,
collection Documents, objet Document, collection Pages, puis objet Page.
Linstruction Set docObj = docsObj.Add("Diagramme de base.vst") utilise la mthode
Add pour ouvrir un modle et lajouter la collection Documents. Pour plus
dinformations sur lajout dobjets Document, reportez-vous la section Cration
dun document Visio , page 503
Linstruction appVisio.Quit utilise la mthode Quit pour fermer la copie Visio
associe appVisio.
Raccourcis dut ilisat ion dune copie de Visio
En cas dchec de CreateObject ou de GetObject (par exemple, si Visio nest pas
install sur le systme sur lequel CreateObject est appel ou si GetObject ne peut pas
localiser une copie en cours dexcution), une erreur se produit. La fonction
vaoGetObject de Visreg.bas remplace avantageusement CreateObject et GetObject,
car elle comprend la gestion des erreurs dans les situations suivantes :
Si une copie de Visio est dj en cours dexcution, vaoGetObject lassocie g_appVisio
et renvoie visOK. g_appVisio est une variable globale gre dans Visreg.bas.
Si aucune copie nest en cours dexcution, vaoGetObject appelle CreateObject
pour en lancer une, associe cette dernire g_appVisio, puis renvoie visOK.
Si Visio nest pas install ou si une erreur se produit, vaoGetObject renvoie
visError. Les constantes visOK et visError sont dfinies dans Visreg.bas.
Visreg.bas contient une bibliothque de fonctions permettant doptimiser lutilisation
de copies de Visio. Cette bibliothque gre la variable globale g_appVisio. Pour utiliser
la bibliothque de fonctions, ajoutez Visreg.bas votre projet Visual Basic et utilisez
g_appVisio pour faire rfrence lobjet Application.
Pour ajouter Visreg.bas ce projet Visual Basic, choisissez Projet > Ajouter un fichier.
Lexemple suivant utilise vaoGetObject pour rcuprer une copie de Visio. Si aucune
copie nest en cours dexcution, le code en lance une. Si cette opration choue, un
message apparat.
Sub appCohhecf|)
Tf vaoCef0becf|) <> v1s0K Theh
Msgox |"Tmposs1b1e de 1ahce v1s1o")
Ehd Tf
Ehd Sub
500 CHAP I TRE 26
Ut ilisat ion du descript eur de f ent re dune copie
Pour mieux contrler une copie de Visio, rcuprez son descripteur de fentre. Vous
pourrez ensuite grer sa fentre de cadre de la mme manire que pour les autres
applications Microsoft

Windows

. Par exemple, vous pouvez rduire la copie


pendant que le programme cre un dessin complexe afin dviter le rafrachissement
de lcran.
La proprit WindowHandle32 de lobjet Application renvoie le descripteur de
fentre (HWND) de la fentre principale (ou cadre) dune copie. Vous pouvez utiliser
le HWND avec des appels standard aux API (Application Programming Interfaces) de
Windows pour rcuprer certains descripteurs. Par exemple, vous pouvez transmettre
le descripteur de fentre GetWindowTask pour rcuprer le descripteur de tche
Visio.
Pour plus dinformations sur lutilisation des appels aux API de Windows,
reportez-vous votre documentation Microsoft Visual Basic.
Int eract ions avec daut res programmes
Durant lexcution de votre programme, vous pouvez rcuprer la liste des
programmes disponibles dans le moteur Visio ou installer un autre programme en
accdant la collection Addons dun objet Application. Cette collection contient un
objet Addon pour chaque programme des dossiers dfinis par les proprits
AddonPaths et StartupPaths de lobjet Application ou Addon, ainsi que pour ceux
qui sont ajouts dynamiquement par dautres programmes.
Les programmes reprsents par les objets Addon sont rpertoris dans le sous-menu
Macros et dans la bote de dialogue Macros de Visio. Vous pouvez ajouter un
programme en utilisant la mthode Add de la collection Addons de lobjet
Application. Une fois ajout, ce programme demeure dans la collection jusqu la
fermeture de la copie de Visio.
Pour connatre le nom dun objet Addon, lisez sa proprit Name ; pour vrifier sil
peut tre excut, accdez sa proprit Enabled. Un fichier .EXE est toujours activ ;
en revanche, un programme dune bibliothque Visio peut ne pas ltre. Pour plus
dinformations, reportez-vous au chapitre 27, Programmation de Visio avec C++ .
Pour excuter un autre programme, utilisez la mthode Run de lobjet Addon
correspondant, en indiquant les arguments ncessaires ou une chane Null.
Pour plus dinformations sur les objets Addon, leurs mthodes et leurs proprits,
reportez-vous laide en ligne Rfrence du dveloppeur (accessible via ? (Aide) >
Rfrence du dveloppeur) fournie avec Visio.
Sef addohs0b = v1s1o.App11caf1oh.Addohs
Sef addoh0b = addohs0b.Add|"c:\femp\mohpog.exe")
P ROGRAMMATI ON DE VI SI O AVEC MI CROSOFT VI SUAL BASI C 501
Crat ion dun document Visio
Aprs avoir rcupr un objet Application reprsentant une copie de Visio, vous
pouvez crer ou ouvrir un document.
Pour crer un document depuis un programme :
1 Accdez la proprit Documents de lobjet Application pour rcuprer sa
collection Documents.
2 Utilisez la mthode Add de la collection Documents pour crer le document.
Pour fonder le nouveau document sur un modle, indiquez le nom de fichier du
modle n argument de la mthode Add. Par exemple, linstruction suivante cre
un document bas sur le modle Diagramme de base qui accompagne Visio :
Si vous ne prcisez pas le chemin du fichier de modle, le moteur Visio recherche ce
dernier dans les dossiers indiqus dans la zone Modles de longlet Chemins daccs
(accessible via Outils > Options). Pour consulter les paramtres de chemin en cours,
lisez la proprit TemplatePaths de lobjet Application. Pour plus dinformations sur
lutilisation de longlet Chemins daccs, effectuez une recherche dans laide en ligne
de Visio.
Lobjet Application comporte une proprit pour chacun des dossiers rpertoris
dans longlet Chemins daccs. Par exemple, la proprit TemplatePaths correspond
au dossier Modles de longlet. Vous pouvez accder ces proprits pour connatre
les chemins courants ou les dfinir pour modifier ces chemins. Pour plus
dinformations, reportez-vous laide en ligne Rfrence du dveloppeur (accessible
via ? (Aide) > Rfrence du dveloppeur) fournie avec Visio.
Dans lexemple prcdent, lchelle de dessin, les styles et les paramtres de document
du nouveau fichier sont dfinis dans Diagramme de base.vst. Ce modle comporte un
gabarit (Formes de base.vss) dans son espace de travail. Cest pourquoi la cration
dun document entrane louverture du gabarit en lecture seule dans la fentre de
gabarit et lajout du fichier de gabarit la collection Documents de la copie.
Pour crer un document sans utiliser de modle, indiquez une chane Null ("")
comme argument la place du nom de fichier. Le fichier dispose alors de lchelle de
dessin, des styles et des paramtres de document par dfaut de Visio. Aucun gabarit
nest ouvert.
Sef doc0b = appv1s1o.0ocumehfs.Add|"01agamme de base.vsf")
502 CHAP I TRE 26
Gest ion des erreurs dans Microsof t Visual Basic
Lorsquune erreur se produit durant lexcution dun programme, Microsoft Visual
Basic gnre un message derreur et interrompt lexcution. Vous pouvez viter
beaucoup derreurs en testant les hypothses dont dpend le code avant son
excution. Vous pouvez intercepter et traiter les erreurs en utilisant linstruction
On Error dans le programme. Pour plus dinformations sur On Error, reportez-vous
votre documentation Visual Basic.
Cette section dcrit une situation courante lie lexcution dune copie de Visio
depuis un programme externe. Des erreurs peuvent se produire dans un grand
nombre de situations. Pour plus dinformations sur les situations courantes dans
lesquelles des erreurs se produisent, reportez-vous la section Gestion des erreurs ,
page 315.
Si la prsence dune copie de Visio est ncessaire pour votre programme, il est
conseill de sassurer de son existence. Le projet Visual Basic suivant rdige du code
pour lvnement Click associ deux contrles de bouton de commande dans un
formulaire Visual Basic.
S1 vous c11quez su ce boufoh, 1`T0 de pocessus de 1`occuehce acf1ve de
v1s1o esf cohs1ghe. uh message vous 1hd1que s1 1a fohcf1oh
Cef0becf a uss1 a ce uhe occuehce acf1ve de v1s1o.
P1vafe Sub Commahd1C11ck|)
0h Eo Pesume hexf
01m app0b As v1s1o.App11caf1oh
Sef app0b = Cef0becf|, "v1s1o.app11caf1oh")
Tf app0b Ts hofh1hg Theh
Msgox "Aucuhe occuehce acf1ve de v1s1o."
E1se
Msgox "T0 de pocessus : " & app0b.PocessT0
Ehd Tf
Ehd Sub
P ROGRAMMATI ON DE VI SI O AVEC MI CROSOFT VI SUAL BASI C 503
Int erprt at ion de la chane de commande envoye par Visio vot re
programme
Lorsquun programme excutable (.EXE) est lanc, il reoit une chane de commande
de lenvironnement qui lexcute. La chane de commande envoye par le moteur
Visio dfinit Visio comme lenvironnement de lancement du programme et peut,
outre les arguments du programme, contenir des valeurs permettant de rcuprer
certains objets. Les valeurs de la chane dpendent du mode dexcution du
programme (depuis le sous-menu Macros ou depuis une formule, avec ou sans
arguments).
Excut ion du programme depuis le sous-menu Macros
Si le programme est excut depuis le sous-menu Macros (lutilisateur le slectionne
alors dans le sous-menu Macros ou dans la bote de dialogue Macros), la chane de
commande que le moteur Visio transmet au programme se prsente comme suit :
La partie significative de la chane de commande est /visio, que vous pouvez utiliser
pour vrifier que le programme a bien t lanc depuis le moteur Visio et non depuis
un environnement incorrect. instanceHandle est lidentificateur de fentre de la copie
de Visio depuis laquelle le programme est excut.
S1 vous c11quez su ce boufoh, uhe houve11e occuehce |1hv1s1b1e) de
`v1s1o esf ce ef soh T0 de pocessus esf cohs1ghe.
L`occuehce dev1ehf v1s1b1e. uh message vous 1hd1que s1 1a fohcf1oh
Ceafe0becf a uss1 a ce uhe occuehce de v1s1o. Losqu`uhe
occuehce 1hv1s1b1e de v1s1o esf ce, 1a zohe de message cohfehahf 1`T0
de pocessus demeue v1s1b1e fahf que 1`uf111safeu h`esf pas 1hfevehu.
P1vafe Sub Commahd2C11ck|)
0h Eo Pesume hexf
01m app0b As v1s1o.App11caf1oh
Sef app0b = Ceafe0becf|"v1s1o.Thv1s1b1eApp")
Tf app0b Ts hofh1hg Theh
Msgox "La caf1oh d`uhe occuehce de v1s1o a chou."
E1se
Msgox "T0 de pocessus : " & app0b.PocessT0
app0b.v1s1b1e = Tue
Ehd Tf
Ehd Sub
(suite)
"/v1s1o=1hsfahcehahd1e"
504 CHAP I TRE 26
Excut ion du programme lors du calcul dune f ormule
Lors du calcul dune formule utilisant la fonction RUNADDON, la chane de
commande envoye par le moteur Visio au programme dpend de lobjet qui contient
la formule. Les exemples suivants prsentent la chane de commande que votre
programme reoit lorsquune formule appartenant un objet Shape, Master ou Style
est calcule.
Formule de forme utilisant RUNADDON
Si une formule de forme utilise la fonction RUNADDON pour lancer le programme
lors de son calcul, la chane de commande envoye par le moteur Visio au programme
se prsente comme suit :
Des parties de la chane de commande identifient les objets contenant la forme dont la
formule a lanc le programme.
docIndex est lindice de lobjet Document.
Vous pouvez utiliser cette valeur pour rcuprer lobjet Document correspondant
dans sa collection. Exemple :
pagIndex est lindice de lobjet Page.
Vous pouvez utiliser cette valeur pour rcuprer lobjet Page correspondant dans
sa collection. Exemple :
NameID est la proprit NameID de la forme dont la formule a t calcule.
Vous pouvez utiliser cette valeur pour rcuprer lobjet Shape correspondant dans
sa collection. Exemple :
/v1s1o=1hsfahcehahd1e /doc=docThdex /page=pagThdex /shape=hameT0
Sef doc0b = appv1s1o.0ocumehfs.Tfem|docThdex)
Sef pag0b = appv1s1o.0ocumehfs.Tfem|docThdex).Pages|pagThdex)
Sef shp0b =
appv1s1o.0ocumehfs|docThdex).Pages|pagThdex).Shapes|hameT0)
P ROGRAMMATI ON DE VI SI O AVEC MI CROSOFT VI SUAL BASI C 505
Formule de forme de base utilisant RUNADDON
Si la formule calcule est dans une forme de base plutt que dans une forme dune
page de dessin, la chane de commande se prsente comme suit :
masterIndex est lindice de lobjet Master.
Dans ce cas, vous pouvez rcuprer lobjet Shape de la manire suivante :
Formule de style utilisant RUNADDON
Si la formule calcule est dans un style plutt que dans une forme ou une forme de
base, la chane de commande se prsente comme suit :
Dans ce cas, vous pouvez rcuprer lobjet Style de la manire suivante :
Excut ion du programme laide dargument s
Si une formule de cellule utilise la fonction RUNADDONWARGS pour excuter le
programme, la chane de commande inclut les arguments indiqus :
Si la proprit AddOnArgs dune commande de menu ou dun bouton de barre
doutils contient des arguments, la chane de commande se prsente comme suit :
La chane arguments peut contenir nimporte quelle valeur utile pour votre
programme. Noubliez cependant pas que la chane de commande ne peut pas
excder 127 caractres, indicateurs compris (/visio=, /doc=, /page= et /shape, par
exemple). Dans la pratique, les arguments ne peuvent donc pas dpasser
50 caractres. Si la chane de commande dpasse les 127 caractres, une erreur se
produit et Visio nexcute pas le programme.
/v1s1o=1hsfahcehahd1e /doc=docThdex /masfe=masfeThdex /shape=hameT0
Sef shp0b =
appv1s1o.0ocumehfs|docThdex).Masfes|masfeThdex).Shapes|hameT0)
/v1s1o=1hsfahcehahd1e32 /doc=docThdex /sfy1e=hameT0
Sef sfy1e0b = appv1s1o.0ocumehfs|docThdex).Sfy1es|hameT0)
/v1s1o=1hsfahcehahd1e /doc=docThdex /page=pagThdex /shape=Sheef.T0
agumehfs
/v1s1o=1hsfahcehahd1e agumehfs
506 CHAP I TRE 26
Excut ion du programme depuis le dossier St art up
Si le programme est excut depuis le dossier Startup de Visio, la chane de
commande comprend galement lindicateur /launch.
Analyse de la chane de commande
Lanalyse correspond la dcomposition des instructions en units syntaxiques. Une
chane de caractres est ainsi dcompose en une srie de composants dun traitement
plus ais.
Pour rcuprer et analyser une chane de commande, utilisez les fonctions prvues
cette fin dans votre environnement de dveloppement. Dans Microsoft Visual Basic,
par exemple, utilisez Command pour rcuprer la chane de commande et des
fonctions de chane comme Mid et StrComp, pour lanalyser.
Ut ilisat ion de la bibliot hque de t ypes de Visio dans les projet s
Microsof t Visual Basic
La bibliothque de types de Visio contient la description des objets, des mthodes, des
proprits, des vnements et des constantes mis disposition par le moteur Visio.
Vous utilisez la bibliothque de types de Visio pour dfinir les types dobjet et les
constantes Visio dans votre programme. Lutilisation des types dobjet de Visio active
une liaison prliminaire et acclre lexcution du programme.
Lorsque vous crez des programmes avec Visio 4.5 ou une version ultrieure, vous
pouvez tablir une rfrence la bibliothque de types de Visio. Pour tablir une
rfrence la bibliothque de types de Visio dans Microsoft Visual Basic, choisissez
Projets > Rfrences et slectionnez cette bibliothque dans la liste des rfrences
disponibles.
La bibliothque de types de Visio contient des constantes symboliques globales
utilisables dans les arguments et les valeurs renvoyes par les proprits et les
mthodes. La plupart des arguments des proprits et des mthodes sont des valeurs
numriques. Lutilisation de ces constantes peut faciliter le dveloppement et la
lecture de votre code.
Imaginons par exemple que vous souhaitiez savoir quel type de fentre est reprsent
par un objet Window. La proprit Type de lobjet Window renvoie un entier qui
correspond au type de fentre. Par exemple, si vous tablissez une rfrence la
bibliothque de types de Visio dans votre projet, vous pouvez utiliser la constante
visDrawing, au lieu de la valeur 1, pour vrifier le type de la fentre.
/v1s1o=1hsfahcehahd1e /1auhch
P ROGRAMMATI ON DE VI SI O AVEC MI CROSOFT VI SUAL BASI C 507
Pour obtenir la liste des constantes dune mthode ou dune proprit, recherchez
cette dernire dans laide en ligne Rfrence du dveloppeur (accessible via ? (Aide) >
Rfrence du dveloppeur) fournie avec Visio.
REMARQUE : les versions prcdentes de Visio ne comportaient pas de bibliothque de
types ; cest pourquoi toutes les constantes taient dfinies dans Visconst.bas. Visconst.bas
et la bibliothque de types de Visio contiennent des constantes globales. Si vous utilisez
Visconst.bas au lieu de la bibliothque de types de Visio, vous ne pouvez pas utiliser les
types dobjet Visio (vous devez utiliser le type de variable Object gnrique). Par exemple,
vous ne pouvez pas utiliser linstruction 01m docs0b As v1s1o.0ocumehfs pour dfinir
des variables ; vous devez utiliser 01m docs0b As 0becf . Les constantes de Visconst.bas
sont regroupes par usage. Les exemples de cet ouvrage partent du principe que vous avez
tabli une rfrence la bibliothque de types de Visio. Pour inclure Visconst.bas ou tout
autre fichier Visual Basic dans votre projet, choisissez Projet > Ajouter un fichier.
Migrat ion de Microsof t Visual Basic VBA
Si vous envisagez de migrer de Microsoft Visual Basic Microsoft Visual Basic pour
Applications (VBA), voici quelques questions garder lesprit :
Qui utilisera votre solution et de quelle version de Visio les utilisateurs
disposeront-ils ?
Les programmes VBA ne sont pas compatibles avec les versions prcdentes Visio.
Si vous ouvrez dans Visio 4.0 un document cr dans Visio 4.5 ou dans une
version ultrieure, Visio ouvre le dessin, mais les programmes VBA ne sont pas
accessibles (il ny a pas de sous-menu Macros). Les utilisateurs ne pourront pas
excuter vos programmes VBA.
Les types dobjet de Visio ne sont pas compatibles avec les versions antrieures
Visio 4.5. Si vos utilisateurs se servent de versions prcdentes de Visio, nutilisez
ni la bibliothque de types de Visio, ni les types dobjet de Visio. Pour utiliser les
constantes Visio dans votre programme, incluez Visconst.bas dans votre projet en
choisissant Projet > Ajouter un fichier.
508 CHAP I TRE 26
Si vous dcidez de migrer votre application de Visual Basic VBA, voici quelques
lments que vous devez vrifier dans votre programme :
Supprimez les rfrences CreateObject, GetObject et vaoGetObject de votre code.
Les rfrences lobjet Application ne sont pas ncessaires quand vous dveloppez
dans lenvironnement VBA du moteur Visio. Si vous programmez dans
lenvironnement de dveloppement VBA dune autre application, comme
Microsoft

Excel, ces rfrences sont ncessaires pour rcuprer ou crer une copie
de Visio. En revanche, quand vous programmez dans le moteur Visio, il est dj en
cours dexcution.
Transfrez le code.
Quels sont les composants utiliss dans votre code ? Utilisez-vous des contrles
personnaliss absents de VBA ? Utilisez-vous des formulaires Visual Basic ?
Vrifiez si VBA prend en charge ces formulaires et ces contrles personnaliss.
Dans laffirmative, vous pouvez importer les formulaires des projets Visual Basic
dans un projet VBA et y ajouter des contrles personnaliss. Dans le cas contraire,
vous pouvez crer un formulaire utilisateur dans VBA et faire du copier-coller
entre les lments du projet de Visual Basic et de VBA.
Vrifiez le code ouvrant les modles et les gabarits.
Les programmes VBA sont stocks dans les fichiers Visio. Si vous stockez votre
programme VBA dans un modle qui ouvre les gabarits contenant les formes
utilises dans le programme, il nest pas ncessaire douvrir le modle et les
gabarits dans le programme : ils sont dj ouverts, tout comme une copie de Visio
est dj en cours dexcution.
Sommaire
27
Programmat ion de
Visio avec C++
Tous les clients prenant en charge le modle COM (Component Object Model) OLE
peuvent accder aux objets Microsoft

Visio

et les manipuler. Plusieurs


environnements de dveloppement disponible dans le commerce, comme Microsoft


Visual Basic

, masquent les nouveaux dtails de COM, ce qui convient de nombreux


dveloppeurs. Cependant, si vous tes prt travailler plus troitement avec COM,
vous pouvez dvelopper en C ou C++ des programmes contrlant des copies de Visio.
Le prsent chapitre part du principe que vous tes familiaris avec les concepts de
programmation OLE, comme COM, la rcupration de pointeurs vers des interfaces
et lappel de fonctions dinterface. Vous devez galement connatre le langage de
programmation C++. Pour plus dinformations sur OLE, reportez-vous la
documentation OLE du Kit de dveloppement Microsoft. Pour plus dinformations
sur C++, reportez-vous la documentation C++.
Le prsent chapitre dcrit la mise disposition des objets Visio pour Automation sous
langle du modle COM. Il prsente certains services de support de base fournis par
Visio pour faciliter le dveloppement de programmes contrlant Visio en C++, puis
explique comment dvelopper une bibliothque Visio (VSL), DLL spciale charge
lexcution par Visio.
Pour plus dinformations sur la recompilation de programmes pour utiliser les
nouveaux services ou sur la programmation de Visio en C, reportez-vous au fichier
Lisezmoi.txt stock dans le dossier \DVS\Libraries\C-CPP lorsque vous installez le
produit Visio avec la rfrence du dveloppeur.
Mise disposition des objets dans Visio ............................................................. 510
Prise en charge de C++dans Visio........................................................................ 511
Gestion des vnements Visio dans les programmes C++................................ 520
Bibliothques Visio (VSL) ...................................................................................... 524
510 CHAP I TRE 27
Mise disposit ion des objet s dans Visio
Les objets proposs par Visio sont des objets COM (Component Object Model). Les
concepts dinterface avec un objet et de rfrence une interface sont essentiels la
cration de ce modle. Si vous utilisez les fichiers C++ fournis avec Microsoft


Visio

2000 et dcrits plus loin dans ce chapitre, vous ne programmerez pas ce


niveau. Cependant, il peut tre utile de comprendre dans les grandes lignes ce qui se
passe en coulisse.
Pour illustrer les concepts dinterface avec un objet et de rfrence une interface,
voici un exemple simple, exprim en pseudocode :
ipAppObj = <rfrence une interface avec un objet application Visio>
//Rcuprer la collection Documents
ipDocsObj = ipAppObj->Documents()
//Rcuprer le premier document
ipDocObj = ipDocsObj->Item(1)
Vous remarquez les similitudes entre les attributions de cet exemple et lattribution
dobjets en Microsoft

Visual Basic

pour Applications. Vous pouvez en dduire qu


partir dune rfrence une interface avec un objet Document, le programme peut
obtenir de la mme manire une rfrence une interface avec un objet Page, puis un
objet Shape, etc. Les proprits et les mthodes proposes par ces objets
correspondent exactement celles dcrites dans les chapitres prcdents de ce
manuel.
Ltat du programme aprs lexcution de ce code est dcrit dans la figure ci-dessous,
qui applique les conventions courantes de reprsentation des objets COM. Le
programme de contrle a rcupr des rfrences aux interfaces avec trois objets mis
disposition par Visio. Les flches sont les rfrences, les cercles sont les interfaces et les
rectangles situs dans la copie de Visio sont les objets.
Etat du projet aprs accs un
objet Document
A Programme contrlant Visio
B Interface COM
C Copie de Visio
ipAppObj
ipDocsObj
ipDocObj
A B C
Objet
Application
Collection
Documents
Objet Document
(lment 1)
P ROGRAMMATI ON DE VI SI O AVEC C++ 511
OLE fournit de nombreux types dinterface ; certaines prennent en charge la liaison et
lincorporation de document et le stockage de donnes persistantes. Un pointeur
dinterface OLE fait rfrence aux donnes qui reprsentent lobjet dtenant
linterface. Une interface fait galement rfrence un ensemble de fonctions qui
effectuent les actions dcrites dans cette interface pour lobjet concern. Aprs avoir
tabli une rfrence une interface avec un objet, vous pouvez appeler les mthodes
dfinies dans linterface pour cet objet.
Les interfaces mises disposition par Visio sont des interfaces doubles. Dans une
interface double, les premires entres de linterface sont identiques celles dune
interface standard IDispatch, la principale interface utilise pour la mise en oeuvre
dAutomation. Les mthodes IDispatch sont suivies par des entres correspondant
aux mthodes et aux proprits offertes par lobjet. Une interface double comporte
des mthodes ou des proprits pouvant tre appeles indirectement via les mthodes
IDispatch ou directement via les mthodes doubles .
Les fonctions IDispatch dfinissent un protocole permettant la liaison tardive,
savoir la liaison de lexcution, entre les contrleurs Automation et les serveurs
Automation. Cependant, si un serveur Automation fournit une bibliothque de types
et met en oeuvre des interfaces doubles (comme Visio), il permet la liaison prcoce,
cest--dire la liaison la compilation. Les performances du contrleur Automation
sen trouvent gnralement amliores, car le programme effectue moins dappels de
mthodes lexcution. Pour plus dinformations sur les interfaces doubles,
reportez-vous la documentation OLE du Kit de dveloppement Microsoft.
Prise en charge de C++ dans Visio
Les interfaces Automation avec les objets Visio sont dfinies dans le fichier Visio.h du
dossier \DVS\Libraries\C-CPP\Vao.inc. Ce fichier contient une dfinition dinterface
OLE standard pour chaque objet Visio. Pour contrler Visio par Automation partir
dun programme en C++, ajoutez Visio.h aux fichiers source du projet.
Visio 2000 fournit galement des services sous la forme de classes wrapper facilitant la
programmation de Visio en C++. Ces classes sont dites wrapper car elles encapsulent
ou enveloppent (to wrap en anglais) le code ncessaire certaines tches, comme
laccs et la libration de pointeurs dinterface et la manipulation de chanes. Le
principal avantage de ces classes est le suivi des appels AddRef et Release, laide de
constructeurs, de destructeurs et doprateurs daffectation C++. En outre, les valeurs
et les arguments renvoys sont automatiquement envelopps dans une classe wrapper
si ncessaire.
512 CHAP I TRE 27
Outre les fichiers utiliser dans votre programme, le dossier \C-CPP contient des
exemples de projet illustrant lutilisation des classes wrapper et des rcepteurs
dvnement. Le fichier Lisezmoi.txt de ce dossier comporte des informations
dtailles sur le contenu du dossier et des instructions sur la compilation des exemples
de projet. Il peut tre utile dtudier ces projets avant de dvelopper vos programmes.
Ut ilisat ion des classes wrapper
Pour utiliser les classes wrapper, ajoutez Visiwrap.h aux fichiers source du projet. Ce
fichier se trouve dans le dossier \DVS\Libraries\C-CPP\ Vao_inc. Si vous utilisez ce
fichier, il nest pas ncessaire dajouter Visio.h, car Visiwrap.h est dj inclus. Les
classes wrapper utilisent les conventions suivantes :
Les noms de classe wrapper comportent le prfixe CVisio. Par exemple, la classe
wrapper dun objet Page est CVisioPage.
Les proprits sont accessibles par lintermdiaire de mthodes comportant le
prfixe get (lecture de la proprit) ou put (dfinition de la proprit). Par
exemple, les mthodes de la proprit Name sont getName et putName. Dans
Visio.h, les mthodes correspondantes contiennent un trait de soulignement entre
le prfixe et le nom de la mthode : get_Name et put_Name. Recherchez le
mot-cl Name dans laide en ligne Rfrence du dveloppeur (accessible via ?
(Aide) > Rfrence du dveloppeur) fournie avec Visio.
Un programme utilisant les classes wrapper de Visio peut inclure une partie de code
semblable celui prsent dans lexemple suivant. A partir du fichier dexemple
Generic.cpp, ce programme cre un document bas sur Exemple.vst, place deux
formes de base et les connecte. La fonction vaoGetObjectWrap, dfinie dans
Visiwrap.h, rcupre la copie de Visio en cours dexcution ou en lance une si
ncessaire. Pour des raisons de concision, la gestion des erreurs a t omise.
Cet exemple utilise galement les classes daide VBstr et VVariant, dfinies dans
Helpers.h.
VBstr : classe simplifiant lutilisation des variables BSTR qui servent la
transmission des chanes transmises par Automation.
VVariant : classe simplifiant lutilisation des variables VARIANT qui sont
lquivalent Automation des unions C++.
P ROGRAMMATI ON DE VI SI O AVEC C++ 513
Visiwrap.h contient Helpers.h ; par consquent, si vous utilisez les classes wrapper,
vous pouvez galement utiliser celles daide. Pour plus dinformations sur les classes
daide, reportez-vous aux commentaires de Helpers.h.
hPESuLT h= h0EPP0P
Cv1s1oApp11caf1oh app
Cv1s1o0ocumehfs docs
Cv1s1o0ocumehf doc
Cv1s1oPages pages
Cv1s1oPage page
Cv1s1oShape shape
Cv1s1oShape shape1
Cv1s1oMasfes masfes
Cv1s1oMasfe masfe
Cv1s1o0ocumehf sfehc11
Cv1s1oCe11 ce11
Cv1s1oCe11 ce111
...
1f |vA0SuCCESS != vaoCef0becfWap|app))
//Cesf1ohha1e d`eeus
gofo Cu
...
//Aoufe uh documehf su 1a base du f1ch1e "exemp1e.vsf" ef cupe
1a page de dess1h
h= app.0ocumehfs|docs)
//vsf esf 1a c1asse d`a1de du fype STP
h= docs.Add|vsf|"exemp1e.vsf"), doc)
h= doc.Pages|pages)
//vva1ahf esf 1a c1asse d`a1de du fype vAPTAhT
h= pages.Tfem|vva1ahf|1L), page)
//Pcupe 1e gaba1f ef 1a pem1e fome de base a 1hse
h= docs.Tfem|vva1ahf|"exemp1e.vss"), sfehc11)
h= sfehc11.Masfes|masfes)
h= masfes.Tfem|vva1ahf|"Cade"), masfe)
h= page.0op|masfe, 6.0, 6.0, shape)
//Pcupe 1a deux1me fome de base ef 1`1hse
h= masfes.Tfem|vva1ahf|"Posfe"), masfe)
h= page.0op|masfe, 3.0, 3.0, shape1)
//Cohhecfe 1es deux fomes su 1a page de dess1h
h= shape.Ce11s|vsf|"Cohhecf1ohs.X4"), ce11)
h= shape1.Ce11s|vsf|"Po1hfs de cohf1e.X1"), ce111)
h= ce111.C1ueTo|ce11)
...
}
514 CHAP I TRE 27
Int erf aces sit ues derrire les classes wrapper
Le fichier Visio.h dfinit les objets proposs par Visio dans une syntaxe de dclaration
dinterface OLE standard. Les classes wrapper dfinies dans Visiwrap.h appellent les
mthodes de ces interfaces. Par exemple, la classe wrapper CVisioApplication est
dclare dans Visiwrap.h de la manire suivante. Remarquez les dclarations de
mthode de ActiveDocument, ActivePage, etc., aprs le deuxime indicateur daccs
VW_PUBLIC.
c1ass IAP Cv1s1oApp11caf1oh : pub11c Cv1s1ouhkhoWh
{
vWPuLTC:
Cv1s1oApp11caf1oh| ) : Cv1s1ouhkhoWh| ) { }
Cv1s1oApp11caf1oh|cohsf Cv1s1oApp11caf1oh& ofhe) : Cv1s1ouhkhoWh|ofhe) { }
Cv1s1oApp11caf1oh|cohsf TvApp11caf1oh IAP " ofhe, 00L bAssumePespohs1b111fy= IALSE)
: Cv1s1ouhkhoWh| | LPuhKh0Wh )ofhe, bAssumePespohs1b111fy ) { }
cohsf Cv1s1oApp11caf1oh IAP & opeafo=| cohsf Cv1s1oApp11caf1oh IAP &ofhe )
{ 1f | &ofhe != fh1s )
CopyTP| ofhe.CefuhkhoWh| ) )
efuh "fh1s }
cohsf Cv1s1oApp11caf1oh IAP & opeafo=| cohsf TvApp11caf1oh IAP " ofhe)
{ 1f | | LPuhKh0Wh )ofhe != CefuhkhoWh| ) )
CopyTP| | LPuhKh0Wh )ofhe )
efuh "fh1s }
v1fua1 ~Cv1s1oApp11caf1oh| ) { }
TvApp11caf1oh IAP " CefTP| ) cohsf { efuh | TvApp11caf1oh IAP " ) CefuhkhoWh| ) }
opeafo TvApp11caf1oh IAP " | ) { efuh | TvApp11caf1oh IAP " ) CefuhkhoWh| ) }
//0c1aaf1ohs de 1a mfhode Cv1s1oApp11caf1oh
vWPuLTC:
hPESuLT Acf1ve0ocumehf|Cv1s1o0ocumehf IAP &Wap)
hPESuLT Acf1vePage|Cv1s1oPage IAP &Wap)
hPESuLT Acf1veW1hdoW|Cv1s1oW1hdoW IAP &Wap)
hPESuLT App11caf1oh|Cv1s1oApp11caf1oh IAP &Wap)
hPESuLT 0ocumehfs|Cv1s1o0ocumehfs IAP &Wap)
...
P ROGRAMMATI ON DE VI SI O AVEC C++ 515
Linterface de lobjet Application correspondante est dclare dans Visio.h de la
manire suivante :
Tous les objets mis disposition par Visio sont dclars de manire similaire dans
Visio.h. Les diverses macros de cette dclaration, qui napparaissent pas dans cet
exemple, permettent dinclure Visio.h dans des fichiers source C ou C++.
Comme toutes les interfaces Visio sont issues de IDispatch, elles prsentent toutes les
mthodes suivantes :
QueryInterface
AddRef
Release (pour IUnknown)
Ces mthodes sont suivies par les suivantes :
GetTypeInfoCount
GetTypeInfo
GetIDsOfNames
Invoke (pour IDispatch)
Pour plus dinformations sur ces mthodes OLE standard, reportez-vous la
documentation OLE. Les mthodes restantes sont proposes par lobjet Application
de Visio (get_ActiveDocument, get_ActivePage, etc.). Elles correspondent aux
mthodes et aux proprits dcrites dans le reste du prsent manuel, et sont utilises
dans les programmes Microsoft Visual Basic.
TvApp11caf1oh : pub11c T01spafch
{
pub11c:
v1fua1 /" |he1pcohfexf]|popgef]|1d] "/ hPESuLT ST0METh00CALLTYPE gefAcf1ve0ocumehf|
/" |efva1]|ouf] "/ Tv0ocumehf PPCIAP "PPCIAP "1pd1spPef) = 0
v1fua1 /" |he1pcohfexf]|popgef]|1d] "/ hPESuLT ST0METh00CALLTYPE gefAcf1vePage|
/" |efva1]|ouf] "/ TvPage PPCIAP "PPCIAP "1pd1spPef) = 0
v1fua1 /" |he1pcohfexf]|popgef]|1d] "/ hPESuLT ST0METh00CALLTYPE gefAcf1veW1hdoW|
/" |efva1]|ouf] "/ TvW1hdoW PPCIAP "PPCIAP "1pd1spPef) = 0
v1fua1 /" |he1pcohfexf]|popgef]|1d] "/ hPESuLT ST0METh00CALLTYPE gefApp11caf1oh|
/" |efva1]|ouf] "/ TvApp11caf1oh PPCIAP "PPCIAP "1pd1spPef) = 0
v1fua1 /" |he1pcohfexf]|popgef]|1d] "/ hPESuLT ST0METh00CALLTYPE gef0ocumehfs|
/" |efva1]|ouf] "/ Tv0ocumehfs PPCIAP "PPCIAP "1pd1spPef) = 0
...
}
516 CHAP I TRE 27
Pour plus dinformations sur une mthode, consultez laide en ligne Rfrence du
dveloppeur fournie avec Visio. Par exemple, pour plus dinformations sur la
mthode get_ActiveDocument dclare dans lexemple prcdent, recherchez
ActiveDocument .
Rcuprat ion dun objet Applicat ion Visio
Lexemple de programme de Generic.cpp, reproduit dans la section Utilisation des
classes wrapper , page 512commence par le code suivant :
Cette tincelle met le feu aux poudres. Pour utiliser Visio, il vous faut un objet
Application, qui est rcupr par vaoGetObjectWrap.
VaoGetObjectWrap appelle la fonction vaoGetObject, dclare dans Ivisreg.h et
mise en oeuvre dans Ivisreg.cpp. Si vous nutilisez pas de classe wrapper, vous pouvez
appeler vaoGetObject directement. Pour savoir ce que fait vraiment vaoGetObject,
lisez le code source.
Les services dfinis dans Ivisreg.h et permettant de manipuler une copie de Visio
quivalent ceux offerts par le fichier Visreg.bas utilisable avec Visual Basic. Ces
fichiers permettent notamment de lancer une nouvelle copie de Visio ou de dfinir un
objet Application pour la copie active de Visio.
Valeurs renvoyes par les mt hodes de Visio
Toutes les mthodes dclares dans Visio.h sont dfinies de manire renvoyer une
valeur HRESULT indiquant si lexcution de la mthode a russi. La valeur HRESULT
renvoye par une mthode de Visio.h est transmise par la mthode quivalente de la
classe wrapper correspondante dfinie dans Visiwrap.h.
Si une mthode russit, elle renvoie NOERROR. Pour vrifier le rsultat dune
mthode, les dveloppeurs utilisent gnralement SUCCEEDED(hResult). Lexemple
de programme contient une macro appele check_valid vrifiant le rsultat de la
mthode. Cette macro est prsente plus loin dans cette section.
De nombreuses mthodes gnrent galement une valeur de sortie indpendamment
de la valeur HRESULT renvoye. Par exemple, la mthode ActiveDocument de la
classe wrapper CVisioApplication gnre une rfrence un objet Document. Par
convention, la valeur de sortie dune mthode est crite dans le dernier argument de
cette dernire. Le dernier argument transmis ActiveDocument est ainsi une
rfrence un objet CVisioDocument o la mthode peut crire une rfrence
lobjet Document.
Cv1s1oApp11caf1oh app
1f |vA0SuCCESS != vaoCef0becfWap|app))
//Cesf1ohha1e d`eeus
gofo Cu
P ROGRAMMATI ON DE VI SI O AVEC C++ 517
Valeurs renvoyes sous forme de rfrence dobjet
De nombreuses mthodes renvoient une rfrence dobjet comme valeur de sortie.
Cette valeur est en ralit un pointeur dinterface OLE, qui devra tre libr le
moment venu, comme tous les pointeurs dinterface.
Si vous utilisez des classes wrapper, la valeur renvoye est un objet dune autre
classe wrapper, comme CVisioDocument mentionn prcdemment, dans lequel
h est le pointeur dinterface encapsul. Quand lobjet est hors de porte, le
pointeur dinterface de Visio quil dtient est automatiquement libr.
Si vous nutilisez pas de classe wrapper, le pointeur dinterface est dtenu
directement par votre programme, qui doit le librer expressment le moment
venu.
En cas dchec dune mthode renvoyant une rfrence dobjet, la valeur de sortie
varie l encore selon que vous utilisez ou non des classes wrapper.
Si vous utilisez des classes wrapper, vous obtenez toujours un objet de la classe
wrapper correcte, mais le pointeur dinterface dtenu par cet objet est NULL.
Lappel de la fonction IsSet pour cet objet renvoie FALSE.
Si vous nutilisez pas de classe wrapper, le pointeur dinterface est NULL ; vous
pouvez donc simplement le tester.
Mme si la mthode russit, il peut tre ncessaire de tester le paramtre de sortie. Par
exemple, si ActiveDocument est appel alors quaucun document nest ouvert, une
valeur HRESULT de succs et un pointeur dinterface NULL sont renvoys (avec ou
sans encapsulage). En effet, aucune erreur ne sest produite ; labsence de document
ouvert est un tat parfaitement normal que lappelant doit prendre en compte. Les
diverses mthodes Active* ont ce comportement ; il vous faut donc vrifier que leur
valeur de sortie nest pas NULL avant de poursuivre. En revanche, les diverses
mthodes Item et Add renvoient toujours une rfrence non NULL si elles
russissent.
La macro check_valid, dfinie dans Generic.cpp, teste les deux possibilits. Une
fonction utilisant check_valid doit fournir une tiquette CU o sont effectus les
travaux de nettoyage.
#def1he checkva11d|h, ob) \
1f|!SuCCEE0E0|h) || !||ob).TsSef|))) \
gofo Cu
518 CHAP I TRE 27
Valeurs renvoyes sous forme de chane
Plusieurs mthodes renvoient une chane lappelant. La mthode Name de lobjet
Shape (getName de CVisioShape ou get_Name de IVShape) en est un exemple.
Toutes les chanes que les mthodes Visio reoivent ou renvoient sont du type BSTR,
qui est compos de caractres de 16 bits dans les programmes Microsoft

Win32

.
Visio attribue de la mmoire aux chanes renvoyes ; lappelant est ensuite charg de
librer cette mmoire.
Les classes wrapper dfinies dans Visiwrap.h assurent la libration de la mmoire
pour les chanes. Si, en revanche, vous nutilisez pas de classe wrapper, noubliez pas
dappeler SysFreeString pour librer les chanes renvoyes par Visio.
Argument s t ransmis aux mt hodes Visio
La transmission darguments aux mthodes Visio ne pose pas de difficults :
Les arguments entiers sont dclars de type short ou long, selon quil sagit dune
valeur de 2 ou de 4 octets.
Les arguments virgule flottante sont dclars de type double.
Les valeurs boolennes sont transmises sous la forme dentiers de type short ou
VARIANT_BOOL.
Les pointeurs dobjet, tels que BSTR ou VARIANT utiliss comme argument
mritent de plus amples explications.
Arguments sous forme de pointeurs dobjet
Certaines mthodes ncessitent des pointeurs dobjet ; dautres ncessitent un
pointeur vers un type dobjet Visio. Par exemple, la mthode GlueTo de lobjet Cell
reoit un argument qui doit faire rfrence un autre objet Cell.
Dautres mthodes recevant des pointeurs dobjet ne sont pas aussi difficiles. Par
exemple, la mthode Drop de lobjet Page accepte une rfrence un objet placer,
car vous pouvez dposer une forme de base ou une forme sur une page.
Le moyen le plus simple de transmettre un pointeur dobjet une mthode est de lui
cder une rfrence un objet de la classe wrapper adquate. Par exemple,
transmettez une rfrence CVisioCell comme argument de la mthode GlueTo.
Les interfaces dfinies dans Visio.h dclarent les pointeurs dobjet par rapport aux
interfaces correspondantes. Par exemple, Visio.h dclare GlueTo comme pointeur
vers une interface IVCell. La mthode Drop nest pas limite un objet particulier ;
cest pourquoi Visio.h dclare que Drop reoit un IUnknown, ce qui signifie en
langage OLE que Drop accepte une rfrence nimporte quel objet. En interne, la
mthode Drop dtermine lobjet placer en demandant lobjet qui lui a t transmis
une interface IDataObject. Linterface que vous transmettez Drop nest pas
forcment une interface avec un objet Visio.
P ROGRAMMATI ON DE VI SI O AVEC C++ 519
Arguments sous forme de chane
Toutes les chanes transmises Visio doivent tre de type BSTR. La classe daide
VBstr, dfinie dans Helpers.h, est trs pratique pour transmettre des chanes aux
copies de Visio. VBstr assure lattribution de mmoire lors de la cration de la chane
et libre cette mmoire lorsque le VBstr est dtruit. Si vous nutilisez pas VBstr,
noubliez pas dappeler SysFreeString pour librer la mmoire attribue aux chanes.
Par exemple, linstruction suivante utilise un VBstr pour transmettre un nom de
cellule la mthode Cells dun objet CVisioShape. Dans cette instruction, cell est une
variable de type CVisioCell :
Arguments VARIANT
Certaines mthodes de Visio reoivent des arguments non limits un certain type.
Par exemple, si vous transmettez lentier 5 la mthode Item dune collection
Documents, elle renvoie une rfrence au cinquime document de la collection. Si, en
revanche, vous transmettez la mme mthode une chane correspondant un nom
de document, elle renvoie une rfrence un document portant ce nom (en
admettant que ce document soit ouvert).
OLE dfinit une structure de donnes appele VARIANT pour transmettre ce type
darguments. La classe daide VVariant, dfinie dans Helpers.h, est fort utile pour
transmettre des arguments VARIANT une copie de Visio. Par exemple, comparez
les deux instructions suivantes :
La premire instruction transmet la valeur 1 (un entier) la mthode Item dune
collection Pages. La seconde transmet Poste (une chane) la mthode Item dune
collection Masters. Dans ces instructions, page et master sont respectivement des
variables de type CVisioPage et CVisioMaster.
h = shape.Ce11s|vsf|"Cohhecf1ohs.X4"), ce11)
h = pages.Tfem|vva1ahf|1L), page)
h = masfes.Tfem|vva1ahf|"Posfe"), masfe)
520 CHAP I TRE 27
Gest ion des vnement s Visio dans les programmes C++
Pour grer des vnements Visio partir dun programme en C++, vous pouvez
utiliser des objets Event. Un objet Event associe un vnement une action, pour
excuter un programme complmentaire ou notifier un autre objet, appel objet
rcepteur, que lvnement sest produit. Pour plus dinformations sur le
fonctionnement des objets Event et leur mise en oeuvre dans les programmes
Microsoft Visual Basic, reportez-vous au chapitre 21, Gestion des vnements dans
Visio .
Les protocoles utiliss par le moteur Visio pour prendre en charge le style WithEvents
Visual Basic du gestionnaire dvnements sont les protocoles IConnectionPoint
standard fournis par des contrles et utiliss par des conteneurs de contrle. Comme
alternative lutilisation des objets Event, un programme C++ peut recevoir des
vnements dune copie Visio laide des protocoles IConnectionPoint, mais il doit
mettre en oeuvre la totalit de linterface de groupe dvnements dclare pour le
type dobjet Visio partir duquel il souhaite recevoir des vnements. Pour plus
dinformations sur IConnectionPoint et les interfaces lies, reportez-vous votre
documentation COM.
Les sujets traits dans cette section dcrivent comment recevoir des vnements Visio
dans des programmes C++ laide dobjets Event tablis par des appels destins
EventList.Add ou EventList.AddAdvise. Ce protocole tant propre Visio, un
programme C++ na pas besoin de mettre en oeuvre la totalit des interfaces de
groupe dvnements ; au contraire, il peut enregistrer uniquement les vnements
qui lui sont utiles plutt que tous les vnements dun groupe dvnements,
contrairement IConnectionPoint.
Mise en oeuvre dun objet rcept eur
La gestion des vnements Visio dans un programme C++ est globalement la mme
que dans un programme Microsoft Visual Basic, quelques dtails prs :
Lobjet rcepteur du programme C++ doit tre un objet COM mettant linterface
IDispatch disposition.
P ROGRAMMATI ON DE VI SI O AVEC C++ 521
Linterface IDispatch doit fournir une mthode appele VisEventProc et
comportant la signature suivante :
Lorsque vous appelez AddAdvise pour crer lobjet Event, vous transmettez un
pointeur vers linterface IUnknown ou IDispatch avec lobjet rcepteur.
Ut ilisat ion de CVisioAddonSink
Au lieu de mettre en oeuvre votre propre objet rcepteur, vous pouvez utiliser la classe
CVisioAddonSink propose par Visio 2000. Cette classe est dclare dans le fichier
Addsink.h du dossier \DVS\Libraries\C-CPP\Vao_inc.
Pour ut iliser CVisioAddonSink :
1 Ajoutez Addsink.h aux fichiers source du projet. Si vous utilisez les classes wrapper
dfinies dans Visiwrap.h, passez cette tape.
2 Ecrivez une fonction de rappel pour recevoir les notifications dvnement
envoyes par lobjet rcepteur.
3 Appelez CoCreateAddonSink avec un pointeur vers votre fonction de rappel et
ladresse dune interface IUnknown. CoCreateAddonSink cre une occurrence
dobjet rcepteur connaissant votre fonction de rappel et crit un pointeur vers
linterface IUnknown avec lobjet rcepteur ladresse indique.
4 Rcuprez une rfrence la collection EventList de lobjet Visio dont vous
souhaitez recevoir des notifications.
5 Appelez la mthode AddAdvise de la collection EventList rcupre ltape 4
avec linterface IUnknown obtenue ltape 3 et le code dvnement de
lvnement Visio qui vous intresse. Lorsque lvnement se produit, la copie de
Visio appelle votre fonction de rappel.
6 Lorsque vous nutilisez plus lobjet rcepteur, librez-le.
ST0METh00{v1sEvehfPoc) {
W0P0 WEvehf, //Code de 1`vhemehf qu1 se dc1ehche
TUhkhoWh IAP* 1pSouce, //Po1hfeu ves TUhkhoWh su 1`obef qu1
//dc1ehche 1`vhemehf
0W0P0 dWEvehfT0, //T0 de 1`vhemehf qu1 se dc1ehche
0W0P0 dWSeq, //Numo de squehce de 1`vhemehf
TUhkhoWh IAP* 1pSubecf, //Po1hfeu ves TUhkhoWh su 1e suef de
//1`vhemehf
vAPTANT vexfaThfo //Thfomaf1ohs comp1mehfa1es {gha1emehf uh
//cohfexfe)
),
522 CHAP I TRE 27
Lexemple de programme Generic.cpp utilise CVisioAddonSink pour grer deux
vnements : DocumentCreated et ShapeAdded. Le programme dclare une fonction
de rappel pour chacun deux. La signature de la fonction de rappel doit tre conforme
VISEVENTPROC, qui est dfini dans Addsink.h. Lexemple suivant prsente lune
des dclarations. Pour avoir un exemple dune utilisation de cette fonction,
reportez-vous Generic.cpp.
hPESuLT ST0METh00CALLTYPE Pece1vehof1fyIomv1s1o |
TuhkhoWh IAP" 1pS1hk,
W0P0 WEvehf,
TuhkhoWh IAP" 1pSouce,
0W0P0 hEvehfT0,
0W0P0 dWEvehfSeq,
TuhkhoWh IAP" 1pSubecf,
vAPTAhT evehfExfa)
P ROGRAMMATI ON DE VI SI O AVEC C++ 523
Pour crer lobjet rcepteur, le programme rcupre la collection EventList de lobjet
Application (reprsent par la variable app de type CVisioapplication), appelle
CoCreateAddonSink pour crer lobjet rcepteur, et appelle AddAdvise dans lobjet
EventList pour crer lobjet Event dans la copie de Visio. Le programme dfinit un
indicateur, bFirstTime, pour vrifier que les objets Event ne sont crs quune seule
fois au cours de lexcution du programme. Lidentificateur de lobjet Event est stock
dans la variable statique stc_nEventID pour une utilisation ultrieure. Lappel AddAd-
vise cre une seconde rfrence lobjet rcepteur ; le programme peut alors librer
pSink :
Les objets Event crs avec AddAdvise subsistent jusqu la suppression de lobjet
Event, la libration de toutes les rfrences lobjet source ou la fermeture de la copie
de Visio. Si votre programme doit effectuer des travaux de nettoyage avant la
fermeture de la copie de Visio, utilisez lvnement BeforeQuit.
Si CVisioAddonSink est utilis dans une bibliothque Visio (VSL), son gestionnaire
de fermeture doit appeler Event.Delete.
sfaf1c 1ohg sfchEvehfT0 = v1sEvfT0Thva1
TuhkhoWh IAP" pS1hk = huLL
TuhkhoWh IAP" pAhofheS1hk = huLL
sfaf1c 00L bI1sfT1me = TPuE
Cv1s1oApp11caf1oh app
Cv1s1oEvehfL1sf eL1sf
Cv1s1oEvehf evehf
...
1f |bI1sfT1me && |SuCCEE0E0|app.EvehfL1sf|eL1sf))))
{
bI1sfT1me= IALSE
1f |SuCCEE0E0|CoCeafeAddohS1hk|Pece1vehof1fyIomv1s1o, &pS1hk)))
{
1f |SuCCEE0E0|eL1sf.AddAdv1se|v1sEvfCode0ocCeafe,
vva1ahf|pS1hk), vsf|""), vsf|""), evehf)))
{
evehf.T0|&sfchEvehfT0)
}
//S1 1a mfhode AddAdv1se uss1f, v1s1o cohf1ehf dsoma1s uhe
fehce a 1`obef cepfeu
//v1a 1`obef d`vhemehf. pS1hk peuf fe 11b
pS1hk->Pe1ease|)
pS1hk= huLL
}
...
}
524 CHAP I TRE 27
Bibliot hques Visio (VSL)
Une bibliothque Visio (VSL) est une DLL (Dynamic-Link Library) dun type
particulier, charge par le moteur de Visio lexcution, et susceptible de mettre en
oeuvre un ou plusieurs programmes complmentaires de Visio (programmes utilisant
Automation pour contrler les copies de Visio.
Un programme complmentaire mis en oeuvre par une bibliothque Visio peut
interagir avec les objets Visio de la mme manire quun programme prenant la forme
dun fichier excutable (EXE) ou dun code dans le projet VBA (Visual Basic pour
Applications de Microsoft) dun document, et un utilisateur peut sen servir de la
mme faon. Les programmes complmentaires mis en oeuvre dans un fichier VSL
prsentent des avantages sur les programmes excutables en ce qui concerne les
performances et lintgration. Par exemple, un fichier VSL est excut dans le mme
processus que la copie de Visio. Cependant, il est impossible de lancer une
bibliothque Visio depuis lExplorateur de Windows, contrairement aux excutables.
Est considr comme bibliothque Visio tout fichier pourvu de lextension .vsl et situ
dans les chemins des programmes complmentaires et de dmarrage. Pour installer
une VSL, copiez le fichier dans lun des rpertoires dfinis comme chemin des
programmes complmentaires ou de dmarrage. Lorsque vous relancez une copie de
Visio, les programmes complmentaires mis en oeuvre par cette VSL sont disponibles
dans cette copie.
Les fichiers ncessaires au dveloppement dune VSL sont dans le dossier
\DVS\Libraries\C-CPP. Ce dossier contient galement :
Les fichiers source et .MAK dune VSL simple dcrits dans le fichier Lisezmoi.txt
du dossier C-CPP.
Le fichier MyAddon.cpp du dossier \Samples\MyAddon contenant une interface
de dveloppement de votre VSL.
Le dossier \Libraries\C-CPP\Wizards, contenant deux versions de Microsoft


Visual Studio

AppWizard qui gnre des projets MFC VSL : MFC5_VSL.awx


utiliser avec MFC (Microsoft Foundation Classes) version 5.0 et MFC4_VSL.awx
utiliser avec MFC version 4.x. Le fichier Wizards.txt indique les rpertoires dans
lesquels copier les fichiers AWX et recommande des paramtres de projet et de
cration utiles.
Avant ages des bibliot hques Visio
Toutes choses gales par ailleurs, une VSL est plus rapide quun programme
excutable. Une VSL est une DLL ; cest pourquoi elle est charge dans lespace de
processus de la copie de Visio qui lutilise. Les appels dune VSL vers une copie de
Visio ne franchissent pas la limite du processus, comme cest le cas lorsquun
programme excutable appelle une copie de Visio.
P ROGRAMMATI ON DE VI SI O AVEC C++ 525
En outre, une VSL tant excute dans le mme processus que la copie de Visio, il lui
est bien plus simple douvrir une bote de dialogue modale par rapport au processus
excutant la copie de Visio. Lorsque deux fichiers excutables fonctionnent ( savoir
un programme complmentaire et une copie de Visio), il est difficile pour lun dentre
eux dafficher une bote de dialogue modale pour lautre. Un programme
complmentaire excutable peut certes afficher une bote de dialogue ; cependant,
lutilisateur peut utiliser la fentre de Visio et modifier ltat de Visio pendant que la
bote de dialogue est ouverte.
Il est galement plus simple dajouter des fentres dfinies dans les solutions en tant
que fentres enfant des fentres Visio en utilisant la mthode Add dune collection
Windows. Pour ce faire, crez un HWND et utilisez WindowHandle32 de la fentre
ajoute avec Windows.Add en tant que parent HWND. Lutilisation des HWND de
processus diffrents en tant que fentres parent peut rencontrer des
dysfonctionnements, sauf dans des scnarios de conteneur in situ.
Archit ect ure dune bibliot hque Visio
Une VSL nest autre quune DLL standard offrant un point dentre dont le nom est
obligatoirement VisioLibMain.
La copie de Visio charge les VSL grce LoadLibrary et les libre avec FreeLibrary. Si
votre VSL nest pas installe dans le dossier Startup de Visio, elle ne doit pas
comporter de conditions sur le moment de son chargement. En effet, ces VSL ne sont
charges dans la copie de Visio que lorsque cest ncessaire. Si une copie de Visio
charge une VSL, elle ne lui applique pas FreeLibrary tant que la copie est ouverte.
Le fichier VDLLmain.c constitue une application par dfaut de DllMain, point
dentre de DLL standard appel par Windows au chargement et au dchargement de
la DLL. Le fichier Vao.c met en oeuvre plusieurs autres fonctions qui peuvent vous
tre utiles ; certaines sont cites dans les paragraphes qui suivent.
Une fois que la copie de Visio a charg une VSL, des appels occasionnels sont effectus
la procdure VisioLibMain de cette dernire. Lun des arguments transmis par la
copie de Visio VisioLibMain est un code de message indiquant la VSL la raison de
lappel. Tous les messages mis par Visio sont dfinis dans Vao.h.
Le prototype utiliser pour VisioLibMain est disponible dans Vao.h :
fypedef W0P0 vA0PC, IAP" LPvA0PC //Code ehvoy pa 1e pogamme
//comp1mehfa1e de v1s1o
fypedef W0P0 vA0MSC, IAP" LPvA0MSC //Code de message du pogamme
//comp1mehfa1e de v1s1o
#def1he vA0C cdec1 //Pocdue de appe1 du pogamme
//compmehfa1e de v1s1o
//Le pofofype de v1s1oL1bMa1h do1f se cohfome a vA0IuhC
fypedef vA0PC |vA0C vA0IuhC) |vA0MSC,W0P0,LPv0T0)
526 CHAP I TRE 27
Une procdure VisioLibMain classique se prsente donc ainsi :
Cette procdure VisioLibMain gre spcifiquement les messages V2LMSG_RUN et
V2LMSG_ENUMADDONS. Dautres messages sont transmis
VAOUtil_DefVisMainProc, fonction qui met en oeuvre des rponses gnriques aux
messages. Le rsultat de VLIBUTL_hModule est le descripteur de module de la VSL.
Dclarat ion et enregist rement de programmes
complment aires
Lorsque la copie de Visio envoie le message V2LMSG_ENUMADDONS la
procdure VisioLibMain dune VSL, il demande la description des programmes
complmentaires mis en oeuvre par la VSL.
Le fichier Lib.c met en oeuvre un exemple de VSL, dont le code source explique
comment une VSL enregistre les programmes complmentaires. Lopration
comporte deux tapes : tout dabord, Lib.c dfinit une structure de donnes dcrivant
ses programmes complmentaires ; ensuite, en rponse
V2LMSG_ENUMADDONS, Lib.c transmet cette structure de donnes la copie de
Visio qui a mis le message.
#1hc1ude "vao.h"
vA0PC vA0C v1s1oL1bMa1h |vA0MSC WMsg, W0P0 WPaam, LPv0T0 1pPaam)
{
vA0PC esu1f = vA0PCSuCCESS
sW1fch |WMsg)
{
case v2LMSCEhuMA000hS:
//Code d`eheg1sfemehf des pogammes comp1mehfa1es du vSL
beak
case v2LMSCPuh:
//Code d`excuf1oh du pogamme comp1mehfa1e de 1`od1ha1 WPaam
beak
defau1f:
//Ppohse gh1que du dc1ehcheu a WMsg
//Pocdues d`a1de vA0uf110efv1sMa1hPoc ef vLTuTLhModu1e
//opaf1ohhe11es dahs vao.c
esu1f = vA0uf110efv1sMa1hPoc|WMsg, WPaam, 1pPaam,
vLTuTLhModu1e|))
beak
}
efuh esu1f
}
P ROGRAMMATI ON DE VI SI O AVEC C++ 527
Lib.c met en oeuvre un programme complmentaire. Le code suivant est situ en
dbut de fichier :
La structure VAOREGSTRUCT est dclare dans Vao.h. Vous trouverez dans ces
fichiers des commentaires et des dclarations fournissant des informations
complmentaires sur les champs de la structure.
La copie de Visio demande une VSL dexcuter un programme complmentaire en
indiquant le numro dordre de ce dernier (valeur unique identifiant le programme
complmentaire dans le fichier). Le tableau stc_myAddons dclare un programme
complmentaire dont le numro dordre est 1 (DEMO_ADDON_ORDINAL). Si
Lib.c mettait en oeuvre deux programmes complmentaires au lieu dun,
stc_myAddons aurait deux entres au lieu dune, chaque entre correspondant un
numro dordre unique.
Le programme complmentaire dclar est prsent dans linterface utilisateur de
Visio sous le nom de VSL Automation Demo . Si vous comptez faire traduire votre
programme, ne dclarez pas son nom dans le code, comme dans notre exemple. Lisez
ce nom dans une ressource de chane et initialisez dynamiquement
VAOREGSTRUCT.
VAO_ENABLEALWAYS indique Visio que ce programme complmentaire doit
tre considr comme activit en permanence. Dautres politiques dactivation
peuvent tre dclares. Par exemple, de nombreux programmes complmentaires ne
ncessitent pas dtre excuts avant louverture dun document. Ces programmes
peuvent dclarer la politique dactivation VAO_NEEDSDOC. Ils sont alors
indisponibles lorsquaucun document nest ouvert. Lorsquun programme est
excut, il peut vrifier quun document est ouvert. Plusieurs politiques dactivation
statiques similaires VAO_NEEDSDOC sont dclares dans Vao.h.
#def1he 0EM0A000h0P0ThAL 1
PPTvATE vA0PECSTPuCT sfcmyAddohs|] =
{
{
0EM0A000h0P0ThAL, //0d1ha1 de ce pogamme comp1mehfa1e
vA0A0ATTSTSACTT0h, //Ce pogamme comp1mehfa1e a uhe 1hc1dehce
//su v1s1o
vA0EhALEALWAYS, //Ce pogamme comp1mehfa1e esf fouous
//acf1v
0, //Appe1e su 1e masque
0, //Psev a uhe uf111saf1oh u1f1eue
"vSL Aufomaf1oh 0emo", //hom de ce pogamme comp1mehfa1e
},
}
528 CHAP I TRE 27
Vao.h contient aussi une politique appele VAO_ENABLEDYNAMIC. Pour
dterminer si le programme complmentaire est activ, la copie de Visio envoie
V2LMSG_ISAOENABLED un programme activ dynamiquement. Ce programme
peut se dclarer activ ou dsactiv selon ses propres critres.
Le dernier aspect de VAOREGSTRUCT concerne lexcution automatique dun
programme complmentaire au lancement dune copie de Visio. Pour quun
programme complmentaire mis en oeuvre par un excutable soit lanc au
dmarrage, il suffit de placer le fichier excutable dans lun des rpertoires dfinis
dans le chemin de dmarrage de Visio.
Les programmes complmentaires mis en oeuvre dans une VSL peuvent tre excuts
au dmarrage si le champ invokeOnMask de leur VAOREGSTRUCT contient
VAO_INVOKE_LAUNCH. Cette constante permet un mme fichier VSL de mettre
en oeuvre plusieurs programmes complmentaires, dont certains sont excuts
automatiquement au lancement dune copie de Visio.
En soi, VAOREGSTRUCT est une simple structure de donnes dont lexistence nest
pas trs parlante pour une copie de Visio. Lorsquune copie de Visio envoie
V2LMSG_ENUMADDONS une VSL, la bibliothque doit rpondre en
transmettant la copie de Visio un pointeur vers le tableau de VAOREGSTRUCT
dcrit prcdemment, afin que les donnes qui y sont contenues soient accessibles la
copie de Visio. Pour ce faire, Lib.c applique un utilitaire mis en oeuvre dans Vao.c. Le
code se prsente ainsi :
Pour plus dinformations sur leffet de ce code, consultez les sources dans Vao.c.
Excut ion dun programme complment aire
Une copie de Visio adresse V2LMSG_RUN une VSL pour excuter lun des
programmes complmentaires. Le numro dordre du programme est transmis dans
le paramtre wParam.
La copie de Visio nmet V2LMSG_RUN quaprs avoir dtermin que le programme
est activ, en fonction de la politique dactivation dclare dans la structure
denregistrement de ce programme. Si la politique dactivation du programme est
VAO_ENABLEDYNAMIC, la VSL aura dj rpondu par VAORC_L2V_ENABLED
au message V2LMSG_ISAOENABLED reu de la copie de Visio.
esu1f = vA0uf11Peg1sfeAddohs|
||LPvA0v2LSTPuCT)1pPaam)->WSessT0,
sfcmyAddohs,
s1zeof|sfcmyAddohs)/s1zeof|vA0PECSTPuCT))
P ROGRAMMATI ON DE VI SI O AVEC C++ 529
Outre le numro dordre du programme excuter, la copie de Visio transmet un
pointeur vers un VAOV2LSTRUCT avec le message V2LMSG_RUN.
VAOV2LSTRUCT est dfini de la manire suivante dans un fichier Vao.h :
Cette structure indique le descripteur doccurrence de la copie de Visio mettant le
message, ce qui peut tre utile. Les membres lpfunc et lpArgs sont utiliss par dautres
fonctions dans Vao.c. Dans le membre lpCmdLineArgs, la copie de Visio transmet
une chane darguments au programme complmentaire. Il sagit de la chane que la
copie de Visio transmettrait au programme complmentaire similaire mis en oeuvre
sous la forme dun excutable.
Vous serez parfois intress par le membre wSessID, qui est lidentificateur attribu
par la copie de Visio la session associe au V2LMSG_RUN mis. Par exemple,
vous pouvez utiliser wSessID si votre programme complmentaire lance une activit
non modale.
La plupart des programmes complmentaires excutent une action modale en
rponse V2LMSG_RUN : ils reoivent le message, effectuent une opration, puis
rendent le contrle la copie de Visio. Sauf indication contraire, la session est
considre comme termine par la copie de Visio lorsque le contrle lui est rendu par
le programme complmentaire.
Le pseudocode correspondant ce cas classique se prsenterait comme suit :
case V2LMSG_RUN:
wParam est lordinal du prog.comp. excuter.
Excuter le code des oprations effectues par le prog. comp. avec lordinal wParam
Vous allez probablement instancier des objets Visio et appeler les mthodes et les
proprits de ces objets. Vous pouvez utiliser les services C++ dcrits dans la
section prcdente comme si le code se trouvait dans un fichier .EXE.
if (lopration a russi)
renvoyer VAORC_SUCCESS;
else
renvoyer VAORC_XXX; // Voir vao.h
vA0EME00ALESTPuCT
{
hThSTAhCE hv1sThsf //0esc1pfeu de 1`occuehce acfue11e de
//v1s1o
LPvA0IuhC 1pfuhc //Adesse de appe1 dahs v1s1o
W0P0 WSessT0 //T0 de 1a sess1oh
LPv0T0 1pAgs //Psev a uhe uf111saf1oh u1f1eue
LPSTP 1pCmdL1heAgs //Agumehfs de 11ghe de commahde
} vA0v2LSTPuCT, IAP" LPvA0v2LSTPuCT
530 CHAP I TRE 27
Parfois, en rponse V2LMSG_RUN, un programme complmentaire lance une
activit qui ne prend pas fin lorsque le programme rend le contrle la copie de Visio.
Ces activits sont dites non modales. Par exemple, un programme complmentaire
peut ouvrir une fentre qui reste ouverte indfiniment.
Si votre programme complmentaire met en oeuvre une activit non modale, il doit
mmoriser lidentificateur de session transmis avec V2LMSG_RUN. Le pseudocode
de ce programme complmentaire se prsenterait comme suit :
case V2LMSG_RUN:
wParam est lordinal du prog. comp. excuter.
Excuter le code pour lancer une activit non modale.
Par exemple, ouvrir une fentre et stocker son descripteur.
if (lopration a russi)
{
stocker lParam->wSessID o vous pouvez le lire ultrieurement.
renvoyer VAORC_L2V_MODELESS;
}
else
renvoyer VAORC_XXX; // Voir vao.h
Vous remarquerez la valeur renvoye VAORC_L2V_MODELESS, qui indique la
copie de Visio que la session continue, bien que la VSL ait termin le traitement du
message V2LMSG_RUN.
Une session non modale lance de cette manire se poursuit jusqu ce que la VSL y
mette fin ou que la copie de Visio qui lui est associe soit ferme.
Si la VSL met fin la session (si, par exemple, la fentre ouverte est ferme), elle
excute la mme action avec la fonction VAOUtil_SendEndSession. Le paramtre
wSessID contient lID de la session de fermeture :
VAOUtil_SendEndSession(wSessID); //wSessID: ID de la session qui finit
A sa fermeture, la copie de Visio envoie V2LMSG_KILLSESSION toutes les sessions
ouvertes. Avec V2LMSG_KILLSESSION, la copie de Visio transmet
VAOV2LSTRUCT dont le champ wSessID indique lidentificateur de la session
interrompre. La VSL doit rpondre en mettant fin la session indique et en
effectuant les travaux de nettoyage.
Sommaire
A
Proprit s, mt hodes et
vnement s classs par objet
Cette annexe rpertorie par ordre alphabtique les objets Automation de Microsoft


Visio

. Pour plus dinformations concernant un objet, une proprit, une mthode ou


un vnement, reportez-vous laide en ligne Rfrence du dveloppeur (accessible
via ? (Aide) > Rfrence du dveloppeur) fournie avec Visio.
Proprits, mthodes et vnements classs par objet ..................................... 532
532 ANNEXE A

Proprits, mthodes et vnements classs par objet
Objets Proprits Mthodes Evnements
<Global> ActiveDocument
ActivePage
ActiveWindow
Addons
Application
Documents
VBE
Windows
<ThisDocument> AlternateNames
Application
BottomM argin
Category
ClassI D
Colors
Company
Container
Creator
CustomM enus
CustomM enusFile
CustomToolbars
CustomToolbarsFile
DefaultFillStyle
DefaultLineStyle
DefaultStyle
DefaultTextStyle
Description
DocumentSheet
EventList
Fonts
FullName
GestureFormatSheet
HyperlinkBase
I ndex
I nPlace
Keywords
LeftM argin
M anager
M asters
M asterShortcuts
M ode
Name
O bjectType
O LEO bjects
Pages
PaperHeight
PaperSize
PaperWidth
Path
PersistsEvents
PrintCenteredH
PrintCenteredV
PrintFitO nPages
PrintLandscape
PrintPagesAcross
PrintPagesDown
PrintScale
ProgI D
ReadO nly
RightM argin
Saved
SavePreviewM ode
Stat
Styles
Subject
Template
Title
TopM argin
VBProject
Version
ClearCustomM enus
ClearCustomToolbars
ClearGestureFormatSheet
Close
Drop
ExecuteLine
FollowHyperlink
O penStencilWindow
ParseLine
Print
Save
SaveAs
SaveAsEx
SetCustomM enus
SetCustomToolbars
BeforeDocumentClose
BeforeDocumentSave
BeforeDocumentSaveAs
BeforeM asterDelete
BeforePageDelete
BeforeSelectionDelete
BeforeStyleDelete
DesignM odeEntered
DocumentChanged
DocumentCreated
DocumentO pened
DocumentSaved
DocumentSavedAs
M asterAdded
M asterChanged
PageAdded
PageChanged
RunM odeEntered
ShapeAdded
ShapeParentChanged
StyleAdded
StyleChanged
AccelI tem AddonArgs
AddonName
Alt
CmdNum
Control
Key
Parent
Shift
Delete
AccelI tems Count
I tem
Parent Add
AccelTable AccelI tems
Parent
SetI D
TableName
Delete
AccelTables Count
I tem
I temAtI D
Parent
Add
AddAtI D
Addon Application
Enabled
I ndex
Name
O bjectType
Run
Addons Application
Count
I tem
O bjectType
Add
GetNames
P ROP RI TS, MTHODES ET VNEMENTS CL ASSS P AR OBJ ET 533
Application Active
ActiveDocument
ActivePage
ActiveWindow
Addins
AddonPaths
Addons
AlertResponse
Application
AutoLayout
BuiltI nM enus
BuiltI nToolbars
CommandLine
CurrentScope
CustomM enus
CustomM enusFile
CustomToolbars
CustomToolbarsFile
DeferRecalc
Documents
DrawingPaths
EventI nfo
EventList
EventsEnabled
FilterPaths
HelpPaths
I nstanceHandle32
I sI nScope
I sUndoingO rRedoing
Language
LiveDynamics
O bjectType
O nDataChangeDelay
Path
PersistsEvents
ProcessI D
ProductName
ProfileName
PromptForSummary
ScreenUpdating
ShowM enus
ShowProgress
ShowStatusBar
ShowToolbar
StartupPaths
Stat
StencilPaths
TemplatePaths
ToolbarStyle
TraceFlags
UndoEnabled
UserName
VBE
Version
Visible
WindowHandle32
Windows
AddUndoUnit
BeginUndoScope
ClearCustomM enus
ClearCustomToolbars
ConvertResult
DoCmd
EndUndoScope
EnumDirectories
FormatResult
PurgeUndo
Q ueueM arkerEvent
Q uit
Redo
SaveWorkspaceAs
SetCustomM enus
SetCustomToolbars
Undo
AfterM odal
AppActivated
AppDeactivated
AppO bjectActivated
AppO bjectDeactivated
BeforeDocumentClose
BeforeDocumentSave
BeforeDocumentSaveAs
BeforeM asterDelete
BeforeM odal
BeforePageDelete
BeforeQ uit
BeforeSelectionDelete
BeforeShapeDelete
BeforeStyleDelete
BeforeWindowClosed
BeforeWindowPageTurn
BeforeWindowSelDelete
CellChanged
ConnectionsAdded
ConnectionsDeleted
DesignM odeEntered
DocumentChanged
DocumentCreated
DocumentO pened
DocumentSaved
DocumentSavedAs
EnterScope
ExitScope
FormulaChanged
M arkerEvent
M asterAdded
M asterChanged
M ustFlushScopeBeginning
M ustFlushScopeEnded
NoEventsPending
PageAdded
PageChanged
RunM odeEntered
SelectionAdded
SelectionChanged
ShapeAdded
ShapeChanged
ShapeParentChanged
StyleAdded
StyleChanged
TextChanged
ViewChanged
VisioI sI dle
WindowActivated
WindowChanged
WindowO pened
WindowTurnedToPage
Proprits, mthodes et vnements classs par objet (suite)
Objets Proprits Mthodes Evnements
534 ANNEXE A
Cell Application
Column
ContainingRow
Document
Error
EventList
Formula
FormulaForce
I sConstant
I sI nherited
LocalName
Name
O bjectType
PersistsEvents
Result
ResultForce
ResultFromI nt
ResultFromI ntForce
ResultI nt
ResultI U
ResultI UForce
ResultStr
Row
RowName
Section
Shape
Stat
Style
Units
GlueTo
GlueToPos
Trigger
CellChanged
FormulaChanged
Characters Application
Begin
CharCount
CharProps
CharPropsRow
Document
End
EventList
FieldCategory
FieldCode
FieldFormat
FieldFormula
I sField
O bjectType
ParaProps
ParaPropsRow
PersistsEvents
RunBegin
RunEnd
Shape
Stat
TabPropsRow
Text
TextAsString
AddCustomField
AddField
Copy
Cut
Paste
TextChanged
Color Application
Blue
Document
Flags
Green
I ndex
O bjectType
PaletteEntry
Red
Stat
Colors Application
Count
Document
I tem
O bjectType
Stat
Connect Application
Document
FromCell
FromPart
FromSheet
I ndex
O bjectType
Stat
ToCell
ToPart
ToSheet
Connects Application
Count
Document
FromSheet
I tem
O bjectType
Stat
ToSheet
Curve Application
Closed
End
O bjectType
Start
Point
PointAndDerivatives
Proprits, mthodes et vnements classs par objet (suite)
Objets Proprits Mthodes Evnements
P ROP RI TS, MTHODES ET VNEMENTS CL ASSS P AR OBJ ET 535
Document AlternateNames
Application
BottomM argin
Category
ClassI D
Colors
Company
Container
Creator
CustomM enus
CustomM enusFile
CustomToolbars
CustomToolbarsFile
DefaultFillStyle
DefaultLineStyle
DefaultStyle
DefaultTextStyle
Description
DocumentSheet
EventList
Fonts
FullName
GestureFormatSheet
HyperlinkBase
I ndex
I nPlace
Keywords
LeftM argin
M anager
M asters
M asterShortcuts
M ode
Name
O bjectType
O LEO bjects
Pages
PaperHeight
PaperSize
PaperWidth
Path
PersistsEvents
PrintCenteredH
PrintCenteredV
PrintFitO nPages
PrintLandscape
PrintPagesAcross
PrintPagesDown
PrintScale
ProgI D
ReadO nly
RightM argin
Saved
SavePreviewM ode
Stat
Styles
Subject
Template
Title
TopM argin
VBProject
Version
ClearCustomM enus
ClearCustomToolbars
ClearGestureFormatSheet
Close
Drop
ExecuteLine
FollowHyperlink
O penStencilWindow
ParseLine
Print
Save
SaveAs
SaveAsEx
SetCustomM enus
SetCustomToolbars
BeforeDocumentClose
BeforeDocumentSave
BeforeDocumentSaveAs
BeforeM asterDelete
BeforePageDelete
BeforeSelectionDelete
BeforeStyleDelete
DesignM odeEntered
DocumentChanged
DocumentCreated
DocumentO pened
DocumentSaved
DocumentSavedAs
M asterAdded
M asterChanged
PageAdded
PageChanged
RunM odeEntered
ShapeAdded
ShapeParentChanged
StyleAdded
StyleChanged
Proprits, mthodes et vnements classs par objet (suite)
Objets Proprits Mthodes Evnements
536 ANNEXE A
Documents Application
Count
EventList
I tem
O bjectType
PersistsEvents
Add
GetNames
O pen
O penEx
BeforeDocumentClose
BeforeDocumentSave
BeforeDocumentSaveAs
BeforeM asterDelete
BeforePageDelete
BeforeSelectionDelete
BeforeShapeDelete
BeforeStyleDelete
CellChanged
ConnectionsAdded
ConnectionsDeleted
DesignM odeEntered
DocumentChanged
DocumentCreated
DocumentO pened
DocumentSaved
DocumentSavedAs
FormulaChanged
M asterAdded
M asterChanged
PageAdded
PageChanged
RunM odeEntered
SelectionAdded
ShapeAdded
ShapeChanged
ShapeParentChanged
StyleAdded
StyleChanged
TextChanged
Event Action
Application
Enabled
Event
EventList
I D
I ndex
O bjectType
Persistable
Persistent
Target
TargetArgs
Delete
Trigger
EventList Application
Count
I tem
I temFromI D
O bjectType
Add
AddAdvise
Font Application
Attributes
CharSet
Document
I D
I ndex
Name
O bjectType
PitchAndFamily
Stat
Fonts Application
Count
Document
I tem
I temFromI D
O bjectType
Stat
Proprits, mthodes et vnements classs par objet (suite)
Objets Proprits Mthodes Evnements
P ROP RI TS, MTHODES ET VNEMENTS CL ASSS P AR OBJ ET 537
Hyperlink Address
Application
Description
ExtraI nfo
Frame
I sDefaultLink
Name
NewWindow
O bjectType
Row
Shape
Stat
SubAddress
AddToFavorites
Copy
CreateURL
Delete
Follow
Hyperlinks Application
Count
I tem
O bjectType
Shape
Stat
Add
Layer Application
CellsC
Document
EventList
I ndex
M aster
Name
O bjectType
Page
PersistsEvents
Row
Stat
Add
Delete
Remove
Layers Application
Count
Document
EventList
I tem
M aster
O bjectType
Page
PersistsEvents
Stat
Add
M aster AlignName
Application
BaseI D
Connects
Document
EventList
Hidden
I conSize
I conUpdate
I D
I ndex
I ndexI nStencil
Layers
M atchByName
Name
NewBaseI D
O bjectType
O LEO bjects
O neD
PageSheet
PatternFlags
PersistsEvents
Prompt
Shapes
SpatialSearch
Stat
UniqueI D
BoundingBox
CenterDrawing
Close
CreateShortcut
Delete
DrawBezier
DrawLine
DrawNURBS
DrawO val
DrawPolyline
DrawRectangle
DrawSpline
Drop
DropM any
Export
ExportI con
GetFormulas
GetResults
I mport
I mportI con
I nsertFromFile
I nsertO bject
Layout
O pen
O penDrawWindow
O penI conWindow
SetFormulas
SetResults
BeforeM asterDelete
BeforeSelectionDelete
BeforeShapeDelete
CellChanged
ConnectionsAdded
ConnectionsDeleted
FormulaChanged
M asterChanged
SelectionAdded
ShapeAdded
ShapeChanged
ShapeParentChanged
TextChanged
Proprits, mthodes et vnements classs par objet (suite)
Objets Proprits Mthodes Evnements
538 ANNEXE A
M asters Application
Count
Document
EventList
I tem
O bjectType
PersistsEvents
Stat
Add
Drop
GetNames
BeforeM asterDelete
BeforeSelectionDelete
BeforeShapeDelete
CellChanged
ConnectionsAdded
ConnectionsDeleted
FormulaChanged
M asterAdded
M asterChanged
SelectionAdded
ShapeAdded
ShapeChanged
ShapeParentChanged
TextChanged
M asterShortcut AlignName
Application
Document
DropActions
I conSize
I D
I ndex
I ndexI nStencil
Name
O bjectType
Prompt
ShapeHelp
Stat
TargetDocumentName
TargetM asterName
Delete
ExportI con
I mportI con
O penI conWindow
M asterShortcuts Application
Count
Document
I tem
O bjectType
Stat
Drop
GetNames
M enu ActionText
AddonArgs
AddonName
BuiltI n
Caption
CmdNum
CntrlI D
CntrlType
Enabled
FaceI D
HelpContextI D
HelpFile
I ndex
I sHierarchical
I sSeparator
M DI WindowM enu
M enuI tems
M iniHelp
PaletteWidth
Parent
Priority
Spacing
State
Style
TypeSpecific1
TypeSpecific2
Visible
width
Delete
I conFileName
Proprits, mthodes et vnements classs par objet (suite)
Objets Proprits Mthodes Evnements
P ROP RI TS, MTHODES ET VNEMENTS CL ASSS P AR OBJ ET 539
M enuI tem ActionText
AddonArgs
AddonName
BuiltI n
Caption
CmdNum
CntrlI D
CntrlType
Enabled
FaceI D
HelpContextI D
HelpFile
I ndex
I sHierarchical
I sSeparator
M enuI tems
M iniHelp
PalletteWidth
Parent
Priority
Spacing
State
Style
TypeSpecific1
TypeSpecific2
Visible
Width
Delete
I conFileName
M enuI tems Count
I tem
Parent
ParentI tem
Add
AddAt
M enus Count
I tem
Parent Add
AddAt
M enuSet BuiltI n
Caption
Enabled
Height
Left
M enus
Parent
Position
Protection
RowI ndex
SetI D
Top
Visible
Width
Delete
M enuSets Count
I tem
I temAtI D
Parent
Add
AddAtI D
O LEO bject Application
ClassI D
ForeignType
O bject
O bjectType
ProgI D
Shape
Stat
O LEO bjects Application
Count
I tem
O bjectType
Stat
Proprits, mthodes et vnements classs par objet (suite)
Objets Proprits Mthodes Evnements
540 ANNEXE A
Page Application
Background
BackPage
BackPageAsO bj
BackPageFromName
Connects
Document
EventList
I D
I ndex
Layers
Name
O bjectType
O LEO bjects
PageSheet
PersistsEvents
Shapes
SpatialSearch
Stat
AddGuide
BoundingBox
CenterDrawing
Delete
DrawBezier
DrawLine
DrawNURBS
DrawO val
DrawPolyline
DrawRectangle
DrawSpline
Drop
DropM any
Export
GetFormulas
GetResults
I mport
I nsertFromFile
I nsertO bject
Layout
O penDrawWindow
Paste
Print
SetFormulas
SetResults
BeforePageDelete
BeforeSelectionDelete
BeforeShapeDelete
CellChanged
ConnectionsAdded
ConnectionsDeleted
FormulaChanged
PageChanged
SelectionAdded
ShapeAdded
ShapeChanged
ShapeParentChanged
TextChanged
Pages Application
Count
Document
EventList
I tem
O bjectType
PersistsEvents
Stat
Add
GetNames
BeforePageDelete
BeforeSelectionDelete
BeforeShapeDelete
CellChanged
ConnectionsAdded
ConnectionsDeleted
FormulaChanged
PageAdded
PageChanged
SelectionAdded
ShapeAdded
ShapeChanged
ShapeParentChanged
TextChanged
Path Application
Closed
Count
I tem
O bjectType
Paths Application
Count
I tem
O bjectType
Proprits, mthodes et vnements classs par objet (suite)
Objets Proprits Mthodes Evnements
P ROP RI TS, MTHODES ET VNEMENTS CL ASSS P AR OBJ ET 541
Row Application
Cell
ContainingSection
Count
EventList
I ndex
Name
O bjectType
PersistsEvents
Shape
Stat
Style
CellChanged
FormulaChanged
Section Application
Count
EventList
I ndex
O bjectType
PersistsEvents
Row
Shape
Stat
Style
CellChanged
FormulaChanged
Selection Application
ContainingM aster
ContainingPage
ContainingShape
Count
Document
EventList
FillStyle
FillStyleKeepFmt
I tem
I temStatus
I terationM ode
LineStyle
LineStyleKeepFmt
O bjectType
PersistsEvents
PrimaryI tem
Stat
Style
StyleKeepFmt
TextStyle
TextStyleKeepFmt
BoundingBox
BringForward
BringToFront
Combine
ConvertToGroup
Copy
Cut
Delete
DeselectAll
DrawRegion
Duplicate
Export
FitCurve
FlipHorizontal
FlipVertical
Fragment
Group
I ntersect
Join
Layout
ReverseEnds
Rotate90
Select
SelectAll
SendBackward
SendToBack
Subtract
Trim
Ungroup
Union
Proprits, mthodes et vnements classs par objet (suite)
Objets Proprits Mthodes Evnements
542 P ROP RI TS, MTHODES ET VNEMENTS CL ASSS P AR OBJ ET
Shape Application
AreaI U
CellExists
Cells
CellsRowI ndex
CellsSRC
CellsSRCExists
Characters
CharCount
ClassI D
Connects
ContainingM aster
ContainingPage
ContainingShape
Data1
Data2
Data3
DistanceFrom
DistanceFromPoint
Document
EventList
FillStyle
FillStyleKeepFmt
ForeignType
FromConnects
GeometryCount
Help
HitTest
Hyperlink
Hyperlinks
I D
I ndex
Layer
LayerCount
LengthI U
LineStyle
LineStyleKeepFmt
M aster
Name
NameI D
O bject
O bjectI sI nherited
O bjectType
O neD
Parent
Paths
PathsLocal
PersistsEvents
ProgI D
RowCount
RowExists
RowsCellCount
RowType
Section
SectionExists
Shapes
SpatialNeighbors
SpatialRelation
SpatialSearch
Stat
Style
StyleKeepFmt
Text
TextStyle
TextStyleKeepFmt
Type
UniqueI D
AddHyperlink
AddNamedRow
AddRow
AddRows
AddSection
BoundingBox
BringForward
BringToFront
CenterDrawing
ConvertToGroup
Copy
Cut
Delete
DeleteRow
DeleteSection
DrawBezier
DrawLine
DrawNURBS
DrawO val
DrawPolyline
DrawRectangle
DrawSpline
Drop
DropM any
Duplicate
Export
FitCurve
FlipHorizontal
FlipVertical
GetFormulas
GetResults
Group
I mport
I nsertFromFile
I nsertO bject
Layout
O penDrawWindow
O penSheetWindow
ReverseEnds
Rotate90
SendBackward
SendToBack
SetBegin
SetCenter
SetEnd
SetFormulas
SetResults
TransformXYFrom
TransformXYTo
Ungroup
UpdateAlignmentBox
XYFromPage
XYToPage
BeforeSelectionDelete
BeforeShapeDelete
CellChanged
FormulaChanged
SelectionAdded
ShapeAdded
ShapeChanged
ShapeParentChanged
TextChanged
Proprits, mthodes et vnements classs par objet (suite)
Objets Proprits Mthodes Evnements
P ROP RI TS, MTHODES ET VNEMENTS CL ASSS P AR OBJ ET 543
Shapes Application
ContainingM aster
ContainingPage
ContainingShape
Count
Document
EventList
I tem
I temFromI D
O bjectType
PersistsEvents
Stat
CenterDrawing
StatusBar BuiltI n
Caption
Parent
Protection
SetI D
StatusBarI tems
Delete
StatusBarI tem ActionText
AddonArgs
AddonName
BuiltI n
Caption
CmdNum
CntrlI D
CntrlType
Enabled
FaceI D
HelpContextI D
HelpFile
I ndex
I sHierarchical
I sSeparator
M iniHelp
PaletteWidth
Parent
Priority
Spacing
State
StatusBarI tems
Style
TypeSpecific1
TypeSpecific2
Visible
Width
Delete
I conFileName
StatusBarI tems Count
I tem
Parent
ParentI tem
Add
AddAt
StatusBars Count
I tem
I temAtI D
Parent
Add
AddAtI D
Style Application
BasedO n
CellExists
Cells
Document
EventList
FillBasedO n
Hidden
I D
I ncludesFill
I ncludesLine
I ncludesText
I ndex
LineBasedO n
Name
O bjectType
PersistsEvents
Section
Stat
TextBasedO n
Delete
GetFormulas
GetResults
SetFormulas
SetResults
BeforeStyleDelete
StyleChanged
Styles Application
Count
Document
EventList
I tem
I temFromI D
O bjectType
PersistsEvents
Stat
Add
GetNames
BeforeStyleDelete
StyleAdded
StyleChanged
Proprits, mthodes et vnements classs par objet (suite)
Objets Proprits Mthodes Evnements
544 ANNEXE A
Toolbar BuiltI n
Caption
Enabled
Height
I ndex
Left
Parent
Position
Protection
RowI ndex
ToolbarI tems
Top
Visible
Width
Delete
ToolbarI tem ActionText
AddonArgs
AddonName
BuiltI n
Caption
CmdNum
CntrlI D
CntrlType
Enabled
FaceI D
HelpContextI D
HelpFile
I ndex
I sHierarchical
I sSeparator
M iniHelp
PaletteWidth
Parent
Priority
Spacing
State
Style
ToolbarI tems
TypeSpecific1
TypeSpecific2
Visible
Width
Delete
I conFileName
ToolbarI tems Count
I tem
Parent
ParentI tem
Add
AddAt
Toolbars Count
I tem
Parent Add
AddAt
ToolbarSet Caption
Parent
SetI D
Toolbars
Delete
ToolbarSets Count
I tem
I temAtI D
Parent
Add
AddAtI D
UI O bject AccelTables
Clone
DisplayKeysI nTooltips
DisplayTooltips
Flavor
LargeButtons
M enuAnimationStyle
M enuSets
Name
StatusBars
ToolbarSets
LoadFromFile
SaveToFile
UpdateUI
Proprits, mthodes et vnements classs par objet (suite)
Objets Proprits Mthodes Evnements
P ROP RI TS, MTHODES ET VNEMENTS CL ASSS P AR OBJ ET 545
Window Application
Caption
Document
EventList
I ndex
I sEditingO LE
I sEditingText
M aster
M asterShortcut
O bjectType
Page
PageAsO bj
PageFromName
Parent
PersistsEvents
Selection
ShowConnectPoints
ShowGrid
ShowGuides
ShowPageBreaks
ShowRulers
Stat
SubType
Type
ViewFit
Visible
WindowHandle32
Windows
WindowState
Zoom
Activate
AddToGroup
Close
Combine
Copy
Cut
Delete
DeselectAll
DockedStencils
Duplicate
Fragment
GetViewRect
GetWindowRect
Group
I ntersect
Join
Paste
RemoveFromGroup
Scroll
ScrollViewTo
Select
SelectAll
SetViewRect
SetWindowRect
Subtract
Trim
Union
BeforeWindowClosed
BeforeWindowPageTurn
BeforeWindowSelDelete
SelectionChanged
ViewChanged
WindowActivated
WindowChanged
WindowTurnedToPage
Windows Application
Count
EventList
I tem
O bjectType
PersistsEvents
Add
Arrange
BeforeWindowClosed
BeforeWindowPageTurn
BeforeWindowSelDelete
SelectionChanged
ViewChanged
WindowActivated
WindowChanged
WindowO pened
WindowTurnedToPage
Proprits, mthodes et vnements classs par objet (suite)
Objets Proprits Mthodes Evnements
Sommaire
B
Indices de sect ion, de ligne
et de cellule ShapeSheet
Cette annexe rpertorie les cellules, les lignes et les sections de la fentre ShapeSheet


associes aux formes, aux styles, aux pages et aux documents. Elle rpertorie
galement les constantes dindice correspondantes que vous pouvez utiliser dans un
programme pour accder aux sections, aux lignes et aux cellules laide
dAutomation, ainsi que les constantes dindice que vous pouvez utiliser pour accder
aux paramtres des tabulations.
Pour rechercher la valeur dune constante, utilisez lexplorateur dobjets de lEditeur
Visual Basic. Lorsque vous slectionnez une constante dans la liste Membres de, la
valeur de cette constante apparat dans le volet des dtails. Pour afficher la fentre
ShapeSheet associe un objet, cliquez sur cet objet, puis choisissez Fentre >
Afficher la feuille ShapeSheet.
CONSEIL : pour accder plus rapidement la fentre ShapeSheet, choisissez Outils >
Options, cliquez sur longlet Options avances, puis cochez la case Excuter sous le mode
dveloppeur dans la zone Paramtres dveloppeurs. Lorsque le mode dveloppeur est
activ, le menu contextuel qui apparat lorsque vous cliquez avec le bouton droit sur un
objet affiche la commande Afficher la feuille ShapeSheet.
Indices de section, de ligne et de cellule associs aux formes .......................... 548
Indices de section, de ligne et de cellule associs aux styles ............................ 554
Indices de section, de ligne et de cellule associs aux pages............................ 554
Indices de section, de ligne et de cellule associs aux documents ................... 556
Cellules de tabulation et types de ligne............................................................... 557
548 ANNEXE B
Les sections sont rpertories par ordre alphabtique et les cellules sont regroupes
par section. Dans les sections dotes dun nombre variable de lignes, comme la section
Actions, les lignes sont indexes par la constante de ligne. Pour crer une rfrence
une ligne, ajoutez un dcalage sous la forme dun nombre entier la constante de
lindice de ligne, en partant de 0 pour la premire ligne. Pour faire rfrence une
cellule dune ligne, utilisez le mme nombre entier dans le nom de cellule. Par
exemple, utilisez Actions.Action[i].
Pour plus dinformations sur lutilisation des rfrences de cellule dans les formules,
effectuez une recherche dans laide en ligne laide des mots-cls
formules:rfrences de cellule . Pour plus dinformations sur laccs aux cellules
partir dun programme, reportez-vous au chapitre 17, Automatisation des
formules
Indices de sect ion, de ligne et de cellule associs aux f ormes
Le tableau suivant rpertorie les sections, les lignes et les cellules de la fentre
ShapeSheet

, avec les constantes de lindice de cellule, de ligne et de section


correspondant.
Indices de section, de ligne et de cellule associs aux formes
Section ou
ligne Cellule Indice de section Indice de ligne Indice de cellule
<sans nom>
1
RubriqueAide
Copyright
visSectionO bject visRowHelpCopyright visO bjHelp
visCopyright
Section Points de
fin 1D
2
DpartX
DpartY
FinY
FinY
visSectionO bject visRowXForm1D vis1DbeginX
vis1DbeginY
vis1DendX
vis1DendY
Section Actions Actions.Action[i]
Actions.M enu[i]
Actions.M essage[i]
Actions.Ci
Actions.Di
visSectionAction visRowAction + i visActionAction
visActionM enu
visActionPrompt
visActionChecked
visActionDisabled
Section
Alignement
3
AlignGauche
AlignCentre
AlignDroite
AlignHaut
AlignM ilieu
AlignBas
visSectionO bject visRowAlign visAlignLeft
visAlignCenter visAlignRight
visAlignTop visAlignM iddle
visAlignBottom
I NDI CES DE SECTI ON, DE L I GNE ET DE CEL L UL E SHAP ESHEET 549
Section
Caractres
Car.Police[i]
Car.Taille[i]
Car.Echelle[i]
Car.Espacement[i]
Car.Couleur[i]
Car.Style[i]
Car.M aj/min[i]
Car.Pos[i]
Car.Barr[i]
Car.LigneSDouble[i]
Car.Ligne de sparation[i]
Car.Perpendiculaire[i]
Car.Locale[I]
4
visSectionCharacter visRowCharacter + i visCharacterFont
visCharacterSize
visCharacterFontScale
visCharacterLetterspace
visCharacterColor
visCharacterStyle
visCharacterCase
visCharacterPos
visCharacterStrikethru
visCharacterDblUnderline
visCharacterO verline
visCharacterPerpendicular
visCharacterLocale
Section Points de
connexion
Connections.Xi
Connections.Yi
Connections.DirX[i]
Connections.DirY[i]
Connections.Type[i]
Connections.AutoGen[i]
visSectionConnectionPts visRowConnectionPts + i visX
visY
visCnnctDirX
visCnnctDirY
visCnnctType
visCnnctAutoGen
Section Points de
contrle
Points de contrle.Xi
Points de contrle.Yi
Points de contrle.XDyn[i]
Points de contrle.YDyn[i]
Points de contrle.XCon[i]
Points de contrle.YCon[i]
Points de contrle.CanGlue[i]
Points de contrle.M essage[i]
visSectionControls visRowControl + i visCtlX
visCtlY
visCtlXDyn
visCtlYDyn
visCtlXCon
visCtlYCon
visCtlGlue
visCtlTip
Section
Proprits
personnalises
Prop.N om .Libell
Prop.N om .M essage
Prop.N om .Nom
Prop.N om .Type
Prop.N om .Format
Prop.N om .Valeur
5
Prop.N om .I nvisible
Prop.N om .Vrifier
visSectionProp visRowProp + i visCustPropsLabel
visCustPropsPrompt
visCustPropsSortKey
visCustPropsType
visCustPropsFormat
visCustPropsValue
visCustPropsI nvis
visCustPropsAsk
Section
Evnements
LeTexte
EvnDblClic
EvnDblClic
CrationEvn
visSectionO bject visRowEvent visEvtCellTheText
visEvtCellDblClick
visEvtCellXFM od
visEvtCellDrop
Section Format
de remplissage
RemplArrPlan
M otifRempl
RemplPremPlan O mbArrPlan
M otifO mbrage
O mbPremPlan
visSectionO bject visRowFill visFillBkgnd
visFillPattern
visFillForegnd
visFillShdwBkgnd
visFillShdwPattern
visFillShdwForegnd
Section I nfos sur
l' image externe
6
LargeurI mage
HauteurI mage
DcalI mageY
DcalI mageX
visSectionO bject visRowForeign visFrgnI mgWidth
visFrgnI mgHeight
visFrgnI mgO ffsetY
visFrgnI mgO ffsetX
Indices de section, de ligne et de cellule associs aux formes (suite)
Section ou
ligne Cellule Indice de section Indice de ligne Indice de cellule
550 ANNEXE B
Section
Gomtriei
Gomtrie.NoFill
Gomtrie.NoLine
Gomtrie.AucunAff
Gomtrie.NoSnap
visSectionFirstComponent + i visRowComponent visCompNoFill
visCompNoLine
visCompNoShow
visCompNoSnap
Ligne
DplacerVers
(section
Gomtrie)
Gomtrie.Xj
Gomtrie.Yj
visRowVertex + j visX
visY
Ligne TraitVers
(section
Gomtrie)
Gomtrie.Xj
Gomtrie.Yj
visRowVertex + j visX
visY
Ligne ArcVers
(section
Gomtrie)
Gomtrie.Xj
Gomtrie.Yj
Gomtrie.Aj
visRowVertex + j visX
visY
visBow
Ligne
ArcElliptiqueVers
(section
Gomtrie)
Gomtrie.Xj
Gomtrie.Yj
Gomtrie.Aj
Gomtrie.Bj
Gomtrie.Cj
Gomtrie.Dj
visRowVertex + j visX
vis
visControl
visControl
visEccentricityAngle
visAspectRatio
Ligne
PolyligneVers
(section
Gomtrie)
Gomtrie.Xj
Gomtrie.Yj
Gomtrie.Aj
visRowVertex + j vis
vis
visPolylineData
Ligne
NURBSVers
(section
Gomtrie)
Gomtrie.Xj
Gomtrie.Yj
Gomtrie.Aj
Gomtrie.Bj
Gomtrie.Cj
Gomtrie.Dj
Gomtrie.Ej
visRowVertex + j visX
visY
visNURBSKnot
visNURBSWeight
visNURBSKnotPrev
visNURBSWeightPrev
visNURBSData
Ligne
DbutSpline
(section
Gomtrie)
Gomtrie.Xj
Gomtrie.Yj
Gomtrie.Aj
Gomtrie.Bj
Gomtrie.Cj
Gomtrie.Dj
visRowVertex + j visX
visY
visSplineKnot
visSplineKnot2
visSplineKnot3
visSplineDegree
Ligne
NoeudSpline
(section
Gomtrie)
Gomtrie.Xj
Gomtrie.Yj
Gomtrie.Aj
visRowVertex + j visX
visY
visSplineKnot
Ligne LigneI nfinie
(section
Gomtrie)
Gomtrie.X1
Gomtrie.Y1
Gomtrie.A1
Gomtrie.B1
visRowVertex visI nfiniteLineX1
visI nfiniteLineY1
visI nfiniteLineX2
visI nfiniteLineY2
Ligne Ellipse
(section
Gomtrie)
Gomtrie.X1
Gomtrie.Y1
Gomtrie.A1
Gomtrie.B1
Gomtrie.C1
Gomtrie.D1
visRowVertex visEllipseCenterX
visEllipseCenterY
visEllipseM ajorX
visEllipseM ajorY
visEllipseM inorX
visEllipseM inorY
Indices de section, de ligne et de cellule associs aux formes (suite)
Section ou
ligne Cellule Indice de section Indice de ligne Indice de cellule
I NDI CES DE SECTI ON, DE L I GNE ET DE CEL L UL E SHAP ESHEET 551
Section I nfos sur
le collage
AttacheType
LienI nscable
DbAction
FinAction
visSectionO bject visRowM isc visGlueType
visWalkPref
visBegTrigger
visEndTrigger
Section
Proprits de
groupe
7
M odeSlection
M odeAffichage
CibleM odifTexte
CibleM agntisme
CibleADposer
PasDplacEnfants
visSectionO bject visRowGroup visGroupSelectM ode
visGroupDisplayM ode
visGroupI sTextEditTarget
visGroupI sSnapTarget
visGroupI sDropTarget
visGroupDontM oveChildren
Section Liens
hypertexte
Lien
hypertexte.N om .Description
Lien hypertexte.N om .Adresse
Lien hypertexte.N om .Sous-
adresse
Lien hypertexte.N om .Cadre
Lien
hypertexte.N om .NouvelleFen
tre
Lien hypertexte.N om .Valeur
par dfaut
visSectionHyperlink visRow1stHyperlink + i visHLinkDescription
visHLinkAddress
visHLinkSubAddress
visHLinkExtraI nfo
visHLinkNewWin
visHLinkDefault
Section
Proprits
d' image
8

Contraste
Luminosit
Gamma
Estomper
Accentuer
SupprBruit
visSectionO bject visRowI mage visI mageContrast
visI mageBrightness
visI mageGamma
visI mageBlur
visI mageSharpen
visI mageDenoise
Section
Appartenance au
calque
ElmentCalque visSectionO bject visRowLayerM em visLayerM ember
Section Format
de trait
EpaisseurTrait
CouleurTrait
M otifTrait
DpartFlche
FinFlche
CouleurTrait
TailleFlcheDpart
TailleFlcheFin
Arrondissement
visSectionO bject visRowLine visLineWeight
visLineColor
visLinePattern
visLineBeginArrow
visLineEndArrow
visLineEndCap
visLineBeginArrowSize
visLineEndArrowSize
visLineRounding
Section Divers PasPoignO bj
NonI mprimable
PasPoingCtl
PasRectSl
M seAJourRectSl
M asquerTexte
TypeO bj
RetourDyn
SansDyn
SourceDpt
Commentaire
visSectionO bject visRowM isc visNoO bjHandles
visNonPrinting
visNoCtlHandles
visNoAlignBox
visUpdateAlignBox
visHideText
visLO Flags
visDynFeedback
visNoLiveDynamics
visDropSource
visComment
Indices de section, de ligne et de cellule associs aux formes (suite)
Section ou
ligne Cellule Indice de section Indice de ligne Indice de cellule
552 ANNEXE B
Section
Paragraphe
Para.RetrPrem[i]
Para.RetrGche[i]
Para.RetrDroit[i]
Para.EspTrait[i]
Para.EspAvant[i]
Para.EspAprs[i]
Para.HorzAlign[i]
Para.Puce[i]
Para.ChanePuce[i]
visSectionParagraph visRowParagraph + i visI ndentFirst
visI ndentLeft
visI ndentRight
visSpaceLine
visSpaceBefore
visSpaceAfter
visHorzAlign
visBulletI ndex
visBulletString
Section
Protection
VerrLargeur
VerrHauteur
VerrDplacX
VerrDplacY
VerrAspect
VerrSupprimer
VerrDbut
VerrFin
VerrPivoter
VerrDcouper
VerrM odifVtx
VerrM odifTexte
VerrFormat
VerrGroupe
VerrCalcLH
VerrSlection
visSectionO bject visRowLock visLockWidth
visLockHeight
visLockM oveX
visLockM oveY
visLockAspect
visLockDelete
visLockBegin
visLockEnd
visLockRotate
visLockCrop
visLockVtxEdit
visLockTextEdit
visLockFormat
visLockGroup
visLockCalcWH
visLockSelect
Section M ontage M ontage.Xi
M ontage.Yi
M ontage.Ai
M ontage.Bi
M ontage.Ci
M ontage.Di
visSectionScratch visRowScratch + i visScratchX
visScratchY
visScratchA
visScratchB
visScratchC
visScratchD
Section M ise en
pg. formes
PermableFormeX
PermableFormeY
PermableFormePlace
CodeFixeForme
CodeTracForme
StylePositionForme
DirDvTraitLienX
DirDvTraitLienY
CodeFixeLien
CodeDvTraitLien
StyleDvTraitLien
visSectionO bject visRowShapeLayout visSLO PermX
visSLO PermY
visSLO PermeablePlace
visSLO FixedCode
visSLO PlowCode
visSLO RouteSyle
visSLO JumpDirX
visSLO JumpDirY
visSLO ConFixedCode
visSLO JumpCode
visSLO JumpStyle
Section
Transformation
de la forme
AxeX
AxeY
Largeur
Hauteur
AxeLocX
AxeLocY
Angle
RetournementX
RetournementY
M odeRedim
visSectionO bject visRowXFormO ut visXFormPinX
visXFormPinY
visXFormWidth
visXFormHeight
visXFormLocPinX
visXFormLocPinY
visXFormAngle
visXFormFlipX
visXFormFlipY
visXFormResizeM ode
Indices de section, de ligne et de cellule associs aux formes (suite)
Section ou
ligne Cellule Indice de section Indice de ligne Indice de cellule
I NDI CES DE SECTI ON, DE L I GNE ET DE CEL L UL E SHAP ESHEET 553
1
Cette section et ses cellules n apparaissent pas dans la fentre ShapeSheet.
2
Cette section n est disponible que pour les formes 1D.
3
Cette section n est disponible que pour les formes colles un ou plusieurs repres/formes.
4
Cette cellule n apparat pas dans la fentre ShapeSheet.
5
Valeur est la cellule par dfaut et peut tre omise dans la rfrence de cellule.
6
Cette section n est disponible que pour les objets lis ou incorpors.
7
Cette section n est disponible que pour les groupes.
8
Cette section n est disponible que pour les bitmaps.
9
Cette section n est disponible que si vous avez insr un champ dans un bloc de texte.
10
La variable j reprsente un taquet de tabulation dans cette section.
Section
Tabulations
Tabulations.ij
10
Tabulations.ij
10
visSectionTab visRowTab + i (j* 3) + visTabPos
(j* 3) + visTabAlign
Section Format
de bloc de texte
AlignVertical
M argeHaut
M argeBas
M argeGauche
M argeDroite
ArrPlanTexte
DirectionTexte
TaquetTabDfaut
M argeGauche visRowText visTxtBlkVerticalAlign
visTxtBlkTopM argin
visTxtBlkBottomM argin
visTxtBlkLeftM argin
visTxtBlkRightM argin
visTxtBlkBkgnd
visTxtBlkDirection
visTxtBlkDefaultTabStop
Section Champs
de texte
9
Champs.Type[i]
Champs.Format[i]
Champs.Valeur[i]
Champs.M odeEdition[i]
Champs.UI Cat[i]
Champs.UI Cod[i]
Champs.UI Fmt[i]
visSectionTextField visRowField + i visFieldType
visFieldFormat
visFieldCell
visFieldEditM ode
visFieldUI Category
visFieldUI Code
visFieldUI Format
Section
Transformation
du texte
AxeXTexte
AxeYTexte
LargeurTxt
HauteurTxt
AxeLocXTexte
AxeLocYTexte
AngleTexte
visSectionO bject visRowTextXForm visXFormPinX
visXFormPinY
visXFormWidth
visXFormHeight
visXFormLocPinX
visXFormLocPinY
visXFormAngle
Section Cellules
personnalises
Util.N om .Valeur
5
Util.N om .M essage
visSectionUser visRowUser + i visUserValue
visUserPrompt
Indices de section, de ligne et de cellule associs aux formes (suite)
Section ou
ligne Cellule Indice de section Indice de ligne Indice de cellule
554 ANNEXE B
Indices de sect ion, de ligne et de cellule associs aux st yles
Le tableau suivant rpertorie les sections, les lignes et les cellules de la fentre
ShapeSheet

associes un style, avec les constantes pour les indices de section, de


ligne et de cellule correspondants.
Les sections et les cellules associes un style et auxquelles vous pouvez faire rfrence
sont pour la plupart les mmes que celles associes une forme et auxquelles vous
pouvez faire rfrence : sections Protection, Divers, Proprits de groupe, Format de
trait, Format de remplissage, Caractres, Paragraphe, Tabulations, Format de bloc de
texte, Evnements, Proprits d'image et Mise en page formes. Pour plus
dinformations sur ces sections et cellules, reportez-vous la section Indices de
section, de ligne et de cellule associs aux formes , page 548.Vous pouvez galement
crer une rfrence la section et aux cellules rpertories dans ce tableau, associes
un style.
REMARQUE : pour afficher la fentre ShapeSheet associe un style, ouvrez la fentre
Drawing
TM
Explorer (accessible via Affichage > Fentres > Drawing Explorer), recherchez
un style, cliquez dessus avec le bouton droit, puis choisissez Afficher la feuille ShapeSheet
dans le menu contextuel.
Indices de sect ion, de ligne et de cellule associs aux pages
Le tableau suivant rpertorie les sections, les lignes et les cellules de la fentre
ShapeSheet

associes une page de dessin, avec des constantes pour les indices de
section, de ligne et de cellule correspondants.
Les sections et les cellules associes une page et auxquelles vous pouvez faire
rfrence sont pour la plupart les mmes que celles associes une forme et
auxquelles vous pouvez faire rfrence : sections Actions, Proprits personnalises,
Liens hypertexte, Montage et Cellules personnalises. Pour plus dinformations sur
ces sections et cellules, reportez-vous la section Indices de section, de ligne et de
cellule associs aux formes , page 548. Vous pouvez galement crer une rfrence
aux sections et aux cellules rpertories dans ce tableau, associes une page.
Indices de section, de ligne et de cellule associs aux styles
Section ou
ligne Cellule Indice de section
Indice de
ligne Indice de cellule
Section
Proprits de
style
ActiverPropsTexte
ActiverPropsTraits
ActiverPropsRemp
M asquerPourAppl
visSectionO bject visRowStyle visStyleI ncludesText
visStyleI ncludesLine
visStyleI ncludesFill
visStyleHidden
I NDI CES DE SECTI ON, DE L I GNE ET DE CEL L UL E SHAP ESHEET 555
REMARQUE : pour afficher la fentre ShapeSheet associe une page, vrifiez quaucun
lment de la page nest slectionn, puis choisissez Fentre > Afficher la feuille
ShapeSheet. Si vous travaillez en mode dveloppeur, vous pouvez cliquer avec le bouton
droit sur la page, puis choisir Afficher la feuille ShapeSheet dans le menu contextuel.
Indices de section, de ligne et de cellule associs aux pages
Section ou ligne Cellule Indice de section Indice de ligne Indice de cellule
Section Calques Calques.Nom[i]
Calques.Visible[i]
Calques.Print[i]
Calques.Actif[i]
Calques.Locked[i]
Calques.M agn[i]
Calques.Colle[i]
Calques.Couleur[i]
Calques.NameUniv[i]
1
visSectionLayer visRowLayer + i visLayerName
visLayerVisible
visLayerPrint
visLayerActive
visLayerLock
visLayerSnap
visLayerGlue
visLayerColor
visLayerNameUniv
Section M ise en page StypePlace
ProfPlace
CodeTrac
RedimPage
DynamDsac
ActiverGrille
CtrlCommeEntre
TailleBlocX
TailleBlocY
EspacementX
EspacementY
StylePosition
DirDvTraitPageX
DirDvTraitPageY
TraitVersNoeudX
TraitVersNoeudY
TraitVersTraitX
TraitVersTraitY
FacteurDvTraitX
FacteurDvTraitY
CodeDvTrait
StyleDvTrait
AjustTraitDepuis
AjustTraitVers
visSectionO bject visRowPageLayout visPLO PlaceSyle
visPLO PlaceDepth
visPLO PlowCode
visPLO ResizePage
visPLO DynamicsO ff
visPLO EnableGrid
visPLO CtrlAsI nput
visPLO BlockSizeX
visPLO BlockSizeY
visPLO AvenueSizeX
visPLO AvenueSizeY
visPLO RouteSyle
visPLO JumpDirX
visPLO JumpDirY
visPLO LineToNodeX
visPLO LineToNodeY
visPLO LineToLineX
visPLO LineToLineY
visPLO JumpFactorX
visPLO JumpFactorY
visPLO JumpCode
visPLO JumpStyle
visPLO LineAdjustFrom
visPLO LineAdjustTo
Section Proprits de la
page
LargeurPage
HauteurPage
EchellePage
EchelleDessin
DcalO mbrX
DcalO mbrY
TypeTailleDessin
TypeEchelleDessin
I nterdireM agnt
visSectionO bject visRowPage visPageWidth
visPageHeight
visPageScale
visPageDrawingScale
visPageShdwO ffsetX
visPageShdwO ffsetY
visPageDrawSizeType
visPageDrawScaleType
visPageI nhibitSnap
556 ANNEXE B
1
Cette cellule n apparat pas dans la fentre ShapeSheet.
Indices de sect ion, de ligne et de cellule associs aux document s
Les sections et les cellules associes un document et auxquelles vous pouvez faire
rfrence sont pour certaines les mmes que celles associes une forme et auxquelles
vous pouvez faire rfrence : sections Proprits personnalises, Liens hypertexte,
Montage et Cellules personnalises. Pour plus dinformations sur ces sections et
cellules, reportez-vous la section Indices de section, de ligne et de cellule associs
aux formes , page 548. Vous pouvez galement crer une rfrence aux sections et
aux cellules rpertories dans ce tableau, associes un document.
REMARQUE : pour afficher la fentre ShapeSheet

associe un document, ouvrez la


fentre Drawing

Explorer (accessible via Affichage > Fentre > Drawing Explorer),


cliquez avec le bouton droit sur ce document, puis choisissez Afficher la feuille ShapeSheet
dans le menu contextuel.
Section Rgles et grille O rigineRgleX
O rigineRgleY
DensitRgleX
DensitRgleY
O rigineGrilleX
O rigineGrilleY
DensitGrilleX
DensitGrilleY
EspacementGrilleX
EspacementGrilleY
visSectionO bject visRowRulerGrid visXRulerO rigin
visYRulerO rigin
visXRulerDensity
visYRulerDensity
visXGridO rigin
visYGridO rigin
visXGridDensity
visYGridDensity
visXGridSpacing
visYGridSpacing
Indices de section, de ligne et de cellule associs aux pages (suite)
Section ou ligne Cellule Indice de section Indice de ligne Indice de cellule
Indices de section, de ligne et de cellule associs aux documents
Section ou
ligne Cellule Indice de section
Indice de
ligne Indice de cellule
Section
Proprits de
doc
Q ualitAperu
PorteAperu
FormatSortie
ApercuVerrouil
visSectionO bject visRowDoc visDocPreviewQ uality
visDocPreviewScope
visDocO utputFormat
visDocLockPreview
I NDI CES DE SECTI ON, DE L I GNE ET DE CEL L UL E SHAP ESHEET 557
Cellules de t abulat ion et t ypes de ligne
Les paramtres de tabulation associs au texte dune forme sont accessibles partir
dun programme par lindice de section, de ligne et de cellule. Dans les produits
Microsoft

Visio

, vous pouvez afficher et modifier les paramtres de tabulation en


choisissant Format > Texte, puis en cliquant sur Tabulations ou en utilisant la section
Tabulations de la fentre ShapeSheet

.
La section Tabulations comporte une ligne pour chaque groupe de tabulations dfini
pour la forme. Chaque ligne contient trois cellules pour chaque taquet de tabulation
dfini dans cette ligne, le maximum tant 60 taquets de tabulation. Les cellules de la
totalit de la ligne sont indexes partir de 0.
REMARQUE : la position du jme taquet de tabulation (j>0) est stocke dans la cellule
((j-1)*3) + visTabPos. Lalignement du jme taquet de tabulation est stock dans la
cellule ((j-1)*3) + visTabAlign.
Le nombre de tabulations pouvant tre dfinies dpend du type de ligne de
tabulation. Vous pouvez modifier ce type de ligne en dfinissant la proprit
RowType de lobjet Shape associe la ligne et la section de tabulation sur lune des
constantes de libell de ligne dans le tableau suivant.
Indice de section Indice de ligne Indice de cellule
visSectionTab visRowTab + i 0 ... 180
Indice Description Indice Description
0 Nombre de tabulations actives dans la ligne 6 Rserv
1 Position de la premire tabulation
2 Code d alignement de la premire tabulation 178 Position de la 60me tabulation
3 Rserv 179 Code d alignement de la 60me
tabulation
4 Position de la seconde tabulation 180 Rserv
5 Code d alignement de la seconde tabulation 6 Rserv
Constante Description
visTagTab0 Zro taquet de tabulation
visTagTab2 Zro, un ou deux taquets de tabulation
visTagTab10 De zro dix (10) taquets de tabulation
visTagTab60 De zro soixante (60) taquets de tabulation
Glossaire
Action : 1. Elment de menu dfini par lutilisateur et associ une forme. Lorsque la
forme est slectionne, llment apparat dans le menu contextuel et dans le sous-
menu Actions du menu Forme. 2. Programme ou commande dapplication
Microsoft

Visio

qui sexcute en rponse un vnement.


Activit sans mode : activit du programme qui ne se termine pas lorsque le contrle
renvoie Visio. Par exemple, un programme complmentaire peut ouvrir une fentre
sans mode ; cette fentre reste ouverte aprs la fin du programme complmentaire.
Angle de rotation : angle de lorientation dun systme de coordonnes locales par
rapport son systme de coordonnes parent. Langle de rotation est spcifi dans la
cellule Angle de la section Transformation de la forme.
Application contrleur : dans Automation, application (votre programme par
exemple) qui utilise les objets mis disposition par une application fournisseur comme
Visio. Lapplication contrleur cre les occurrences des objets, puis paramtre leurs
proprits ou appelle leurs mthodes pour que les objets servent lapplication.
Application fournisseur : application qui fournit des objets pouvant tre contrls par
lintermdiaire dAutomation. Une application fournisseur rend les objets accessibles
pour dautres applications et fournit, ou met disposition, les proprits et les
mthodes qui les contrlent.
Application serveur : application qui fournit des objets pouvant tre contrls par
lintermdiaire dAutomation. Une application fournisseur rend les objets accessibles
pour dautres applications et fournit, ou met disposition, les proprits et les
mthodes qui les contrlent.
Argument : constante, variable ou expression transmise une procdure, comme une
fonction.
Arrire-plan : page apparaissant derrire une autre page dans un dessin. Les formes
insres dans la page darrire-plan apparaissent sur la page de premier plan, mais ne
peuvent tre ni slectionnes ni modifies si la page darrire-plan na pas t active
en premier.
Assistant : programme complmentaire qui automatise certaines tches partir
dinformations fournies par lutilisateur.
560 GL OSSAI RE
Attraction : capacit des formes, des repres et des lignes de la grille dattirer les formes
et dautres lments que vous dplacez et redimensionnez.
Attribut : lment de formatage, comme une couleur de trait, de remplissage ou une
paisseur de trait que vous pouvez appliquer aux formes. Un style peut comporter
plusieurs attributs.
Automation : moyen par lequel une application peut incorporer ou tendre les
fonctionnalits dune autre application en utilisant ses objets. Auparavant plus connu
sous le nom dOLE Automation.
Axe : point autour duquel une forme ou un bloc de texte pivote. Lorsque vous
slectionnez une forme en deux dimensions (2D) avec loutil Rotation, son centre de
rotation est marqu dun signe plus entour dun cercle. Laxe dune forme exprim
dans les coordonnes parent (les cellules AxeX et AxeY de la section Transformation
de la forme) dfinit lemplacement de la forme sur la page de dessin. Egalement
appel centre de rotation.
Barre doutils : range de cases, de boutons et doutils apparaissant au-dessous de la
barre de menus dans la fentre de lapplication Visio. Pour slectionner les barres
doutils afficher et pour crer des barres doutils personnalises, choisissez
Affichage > Barres doutils.
Barre de formule : partie dune fentre ShapeSheet

dans laquelle vous saisissez une


formule pour la cellule ShapeSheet slectionne. Vous pouvez aussi saisir des
formules directement dans une cellule.
Bibliothque : la bibliothque de types Visio est un fichier qui contient les dfinitions
des objets, des proprits, des mthodes, des vnements et des constantes que Visio
met disposition dAutomation.
Bibliothque de types Visio : fichier contenant les dfinitions des objets, des proprits,
des mthodes, des vnements et des constantes que lapplication Visio met la
disposition dAutomation.
Bibliothque de types : fichier contenant les dfinitions des objets, des proprits, des
mthodes et des constantes que lapplication Visio met la disposition dAutomation.
Bibliothque Visio : bibliothque de liaison dynamique (DLL) charge lors de
lexcution de lapplication Visio et pouvant mettre en oeuvre un ou plusieurs
programmes complmentaires Visio. Les bibliothques Visio sont identifies par
lextension .vsl.
Bitmap : image stocke sous la forme dun motif de points. Une photographie ou un
graphique numris que vous crez dans un programme de dessin est stock sous la
forme dun bitmap.
GL OSSAI RE 561
Bloc de texte : zone de texte associe une forme, affiche lorsque vous cliquez sur
cette dernire avec les outils Texte ou Bloc de Texte, ou que vous la slectionnez pour
y saisir des caractres. Vous pouvez modifier la taille dun bloc de texte, le dplacer et
le faire pivoter selon le systme de coordonnes locales de sa forme.
Calque : catgorie nomme de formes. Vous pouvez organiser les formes de votre
dessin en les attribuant des calques. Vous pouvez afficher, modifier, imprimer ou
verrouiller des calques de manire slective. Vous pouvez galement contrler
laccrochage et le collage des formes dun calque. Les calques nont pas dincidence sur
lordre dempilement des objets dans une page.
Centre de rotation : point autour duquel une forme ou un bloc de texte pivote.
Lorsque vous slectionnez une forme en deux dimensions (2D) avec loutil de
rotation, son centre de rotation est marqu dun signe plus entour dun cercle. Par
dfaut, le centre de rotation est situ au centre de la forme. Vous pouvez dplacer le
centre de rotation laide de loutil de rotation.
Chane : squence de zro, un ou plusieurs caractres entre guillemets : voici un
exemple de chane . Pour une meilleure lisibilit, certaines interfaces utilisateur
peuvent automatiquement ajouter et supprimer des guillemets.
Champ : emplacement dans un texte qui affiche des informations, comme des
dimensions, des dates et des heures dans un format dtermin. Un champ peut
afficher la date et lheure auxquelles un dessin est imprim, langle de rotation dune
forme ou le rsultat dune formule que vous crivez. Les champs sont
automatiquement mis jour lorsque vous modifiez un dessin. Un champ peut aussi
lire des informations depuis Lotus Notes.
Chemin : srie de segments contigus de lignes, darcs ou de splines. Une forme peut
avoir plusieurs chemins.
Collage forme forme : type de comportement de collage dans lequel le point de fin
dun lien peut se dplacer dun point de connexion un autre lorsque les formes
connectes sont dplaces. Aussi appel collage dynamique.
Collage point point : type de comportement de collage dans lequel le point de fin
dun lien reste fix un point de connexion donn, mme en cas de dplacement de la
forme laquelle il est coll.
Colle : proprit des formes permettant ces dernires de rester lies les unes aux
autres, mme si vous en dplacez une. Lopration de collage est directionnelle : si la
forme A est colle la forme B, cette dernire nest pas colle la forme A.
Contrle : objet que vous pouvez placer dans un formulaire utilisateur ou dans un
dessin et qui possde son propre ensemble de proprits, de mthodes et
dvnements, par exemple un bouton de barre doutils.
Contrle ActiveX : objet que vous pouvez placer dans un formulaire utilisateur ou dans
un dessin et qui possde son propre ensemble de proprits, de mthodes et
dvnements, par exemple, un bouton de barre doutils.
562 GL OSSAI RE
Coordonnes : paire de nombres qui indique la position dun point par rapport
lorigine dune forme, dun groupe ou de la page. La coordonne x indique la position
horizontale et la coordonne y la position verticale.
Coordonnes de la page : systme de coordonnes dont lorigine est le coin infrieur
gauche dune page de dessin.
Coordonnes locales : systme de coordonnes dont lorigine est le coin infrieur
gauche du plan largeur-hauteur de la forme. La gomtrie dune forme est exprime
en coordonnes locales.
Coordonnes parent : systme de coordonnes du parent dune forme. Si la forme est
dans un groupe, le systme de coordonnes parent est le systme de coordonnes
locales du groupe. Si la forme nest pas dans un groupe, le systme de coordonnes
parent est le systme de coordonnes de la page.
Corde : ligne qui relie les points de fin dun arc.
Couleur personnalise : couleur dun dessin Visio stocke avec une forme sous la forme
dune valeur RVB ou TSL plutt que sous la forme dun indice sur la palette de
couleurs du document. Une couleur personnalise est enregistre avec la forme
laquelle elle est applique.
Courbure : distance qui spare le point central dun arc de cercle du point central de la
corde de larc.
Dessin : ensemble de toutes les formes situes sur une page de premier plan ajoutes
toutes les formes situes sur des pages darrire-plan attribues.
Document actif : document en cours pouvant tre modifi dans une copie de Visio.
Domaine dannulation : squence dunits dannulation qui sont marques par un
dbut et une fin.
Domaine dinfluence : partie dune spline, exprime en nombre de noeuds de spline,
dont la courbure dpend dun point de contrle unique.
Echelle de dessin : rapport entre lunit de mesure de la page et la distance relle
quelle reprsente. Par exemple, un centimtre quivaut un mtre. Voir aussi
Echelle.
Echelle de la page : nombre dunits de page qui reprsentent le nombre dunits de
dessin indiques dans lchelle du dessin. Par exemple, si lchelle du dessin est 1 cm =
1 m, lchelle de la page est 1 cm.
Empilement : ordre dans lequel les formes se superposent les unes aux autres sur la
page, ou ordre dans lequel elles sont slectionnes. Vous pouvez modifier lordre
dempilement via les commandes du menu Forme.
Endpoint : poigne de slection carre lextrmit dune forme 1D slectionne
(ligne, arc ou autre). Le point de dbut de la forme est dot dun x. Le point de fin
situ la fin de la forme est dot dun signe plus (+).
GL OSSAI RE 563
Espace de travail : 1. Fichier contenant la liste des documents et des fentres ouvrir,
ainsi que la taille et lemplacement des fentres. Les fichiers despace de travail portent
lextension .vsw. 2. Zone dun fichier .vsd, .vss ou .vst stockant ces informations.
Evnement : fait qui se produit dans une copie de Visio, comme la modification dune
formule ou la suppression dune page.
Expression : combinaison de constantes, doprateurs, de fonctions et de rfrences
aux cellules ShapeSheet

qui aboutit une valeur.


Feuille de calcul ShapeSheet : donnes qui dfinissent une forme, un groupe, un
repre, un point de repre ou une page. Par exemple, une feuille de calcul ShapeSheet


dcrit les dimensions dune forme, ainsi que langle, le centre de rotation et les styles
qui dterminent laspect de cette forme. Les feuilles de calcul ShapeSheet peuvent
contenir des formules qui dfinissent le comportement de la forme lorsquelle est
dplace ou redimensionne et la faon dont elle rpond des vnements. La feuille
de calcul ShapeSheet est affiche dans une fentre ShapeSheet et est accessible par
lintermdiaire de linterface de programmation Automation de Visio.
Feuille de page : feuille de calcul ShapeSheet

qui reprsente une page.


Fichier de dessin : fichier stockant un ou plusieurs dessins Visio. Les fichiers de dessin
portent lextension .vsd. Ils peuvent contenir une ou plusieurs pages. Chaque fichier
de dessin possde son propre gabarit, appel gabarit de document, contenant toutes
les formes de base que vous utilisez sur les pages de dessin de ce fichier, mme si vous
les avez supprimes de la page de dessin. Vous pouvez afficher le gabarit de document
en choisissant Fentre > Afficher le gabarit de document.
Filet de slection : outil permettant de slectionner plusieurs formes la fois laide de
loutil Pointeur en dfinissant une zone rectangulaire regroupant toutes les formes
slectionner.
Fonction : procdure qui ncessite des arguments et renvoie une valeur. Si une
fonction ne ncessite aucun argument, elle doit tre suivie de parenthses vides ( ).
Lapplication Visio inclut les fonctions mathmatiques, trigonomtriques,
gomtriques, logiques, statistiques, dvnement, de date et dheure, de couleur, etc.
Format : 1. Modification de lapparence visuelle dune forme (paisseur et couleur des
lignes, couleur et motif prsents lintrieur de la forme, police, etc.). Vous pouvez
modifier le format dune forme en lui appliquant un style ou en modifiant ses
attributs. Voir aussi Attribut, Style. 2. Apparence visuelle dune forme.
Formatage local : attributs de formatage, comme la largeur de trait, la couleur de
remplissage ou la taille de police que vous appliquez une forme slectionne laide
de la commande correspondante du menu Format : trait, Remplissage ou Texte. Le
formatage local est trs utile si vous souhaitez donner un aspect unique une forme
ou quelques formes seulement. Les modifications apportes au formatage dun style
remplacent le formatage local moins que vous ne prserviez explicitement les
substitutions locales.
564 GL OSSAI RE
Forme : 1. Objet ouvert ou ferm, cr laide des commandes et des outils de dessin
Visio. 2. Ensemble de formes regroupes. 3. Occurrence dune forme de base dplace
dans un dessin. 4. Dans un programme, lment reprsent par un objet Shape
(forme, groupe, repre, point de repre, feuille dune page de dessin ou forme de
base).
Forme 1D : ligne droite que vous tracez laide des outils de dessin de Visio, ou forme
dote dun point de dbut et dun point de fin, que vous pouvez coller entre deux
formes pour les lier. Une forme 1D se comporte comme une ligne.
Forme 2D : forme dote de huit poignes de slection qui vous permettent de
redimensionner la forme de manire proportionnelle. La plupart des formes fermes,
comme les rectangles et les ellipses, sont 2D. Une forme 2D se comporte comme une
case.
Forme dessine : forme cre laide des outils de dessin de Visio.
Forme multiple : forme fusionne comprenant plusieurs sections gomtriques. Les
formes multiples sont cres laide de la commande Combinaison ou Jonction
(choisissez Forme > Oprations).
Forme positionnable : forme en deux dimensions (2D) paramtre pour utiliser les
liens routables et la disposition automatique. Si une forme est paramtre comme
tant positionnable, un lien routable peut la dtecter et viter de la croiser. Vous
pouvez paramtrer une forme comme positionnable dans la bote de dialogue
Comportement en slectionnant Disposer et repositionner. Si vous collez un lien
routable, comme le Lien Dynamique, une forme 2D, Visio dfinit automatiquement
la forme 2D comme tant positionnable.
Formulaire : dans un projet Microsoft

Visual Basic

ou Visual Basic pour Applications


(VBA), fichier avec lextension .frm contenant les contrles de linterface utilisateur,
comme les boutons de commande et les zones de texte.
Formulaire utilisateur : dans un projet Microsoft Visual Basic ou Visual Basic pour
Applications (VBA), fichier avec lextension .frm contenant les contrles de linterface
utilisateur, comme les boutons de commande et les zones de texte.
Formule : expression saisie dans une cellule ShapeSheet

et qui renvoie une valeur.


Formule base sur la hauteur : formule dont la valeur varie seulement avec la hauteur
de la forme.
Forme de base : forme figurant dans un gabarit, que vous pouvez utiliser autant de fois
que vous le souhaitez pour crer des dessins. Lorsque vous insrez dans la page de
dessin une forme dun gabarit, la forme constitue une occurrence de la forme de base.
GL OSSAI RE 565
Formule hrite : formule stocke dans un style ou dans une forme de base mais
utilise par une occurrence comme si la formule tait stocke localement avec la
forme. Une modification apporte dans une formule au style ou la forme de base a
une incidence sur toutes les formes qui hritent de la formule et nont pas de formule
locale de substitution. La modification dun style remplace une formule locale
moins que vous ne les prserviez explicitement.
Formule locale : formule stocke localement dans la cellule dune forme au lieu dtre
hrite dune forme de base ou dun style. Une formule locale remplace les
modifications dans la cellule correspondante de la forme de base dont la forme est
une occurrence. Aussi appele substitution locale.
Gabarit : ensemble de formes de base associ un type de dessin Visio ou modle. Les
gabarits ouverts avec un modle sont ancrs par dfaut gauche de la fentre de
dessin. Vous pouvez ouvrir des fichiers de gabarit (.vss) indpendamment dun
modle.
Gabarit ancr : gabarit associ une fentre de dessin et qui suit le dplacement de la
fentre de dessin. Par dfaut, les gabarits sont ancrs dans la partie gauche de la
fentre. Vous pouvez les rendre flottants ou les ancrer dans la partie droite de la
fentre de dessin.
Gabarit autonome : fichier Visio portant lextension .vss contenant une collection de
formes de base et gnralement appel un gabarit. A la diffrence dun gabarit de
document, un gabarit autonome nest pas accompagn dun dessin.
Gabarit de document : gabarit contenant la copie dune forme de base utilise sur une
page du fichier. Les formes de base du gabarit de document permettent de dessiner
leurs occurrences dans le fichier de dessin. Le gabarit de document est stock dans un
fichier de dessin ou de modle.
Gabarit flottant : gabarit qui apparat dans une fentre distincte toujours situe au
premier plan par rapport aux autres fentres Visio. Par dfaut, les gabarits sont ancrs
dans la partie gauche de la fentre de dessin. Vous pouvez les rendre flottants ou les
ancrer dans la partie droite de la fentre de dessin.
Gomtrie : organisation de sommets et de segments qui dfinissent un chemin.
Graduation : division entre les lignes de la grille et entre les intervalles de la rgle. Les
choix possibles sont Fin, Normal et Epais.
Grille : lignes verticales et horizontales, espaces intervalles rguliers sur la page de
dessin, mais napparaissant pas limpression. La grille vous permet daligner les
formes plus facilement et de les positionner avec prcision.
Groupe : forme compose de plusieurs formes. Vous pouvez dplacer ou
dimensionner les groupes en tant quunit unique, mais chaque membre du groupe
conserve son apparence et ses proprits dorigine. Un groupe peut galement
comprendre des groupes et des objets appartenant dautres applications.
566 GL OSSAI RE
Icne de forme de base : reprsentation dune forme de base qui apparat sur un
gabarit. Vous slectionnez une forme de base en cliquant sur son icne.
Image de format : chane de caractres qui spcifie le format daffichage du rsultat
dune expression, par exemple une valeur de proprit personnalise ou la sortie dun
champ texte. Par exemple, limage de format m/j/aa affiche la date sous le format
12/31/99.
Info-bulles : informations affiches lorsque vous immobilisez le pointeur de la souris
sur un lment de la barre doutils, sur licne dune forme de base dans un gabarit ou
sur la poigne de contrle dune forme.
Lien : toute forme 1D que vous pouvez coller entre deux formes dun dessin pour les
lier, dans un dessin. Vous pouvez galement utiliser des lignes et dautres formes en
tant que liens. Voir aussi Colle, Forme 1D.
Lien routable : lien en une dimension (1D) qui change automatiquement son chemin
pour viter de traverser les formes positionnables en deux dimensions (2D) situes
entre les deux formes que le lien relie. Lorsque vous slectionnez un lien routable, il
affiche les points intermdiaires et les sommets que vous pouvez dplacer pour
modifier le chemin du lien manuellement. Le Lien dynamique est un lien routable.
Lien universel : forme de base du gabarit Formes de base programme pour relier deux
points sans passer traverser les formes quil relie. Par dfaut, une occurrence du lien
universel est cre lorsque vous utilisez loutil Lien et la commande Lier les formes.
Ligne infinie : ligne contenant des cellules qui dfinissent deux points du systme de
coordonnes locales et permettant Visio de paramtrer une ligne sur une longueur
indfinie. Les repres sont dfinis comme des lignes infinies.
Lignes de grille : lignes verticales et horizontales peine visibles qui apparaissent dans
la fentre de dessin lorsque la grille est active. Vous pouvez utiliser des lignes de grille
pour vous aider positionner avec prcision les formes.
Losange : poigne qui apparat entre deux segments sur une forme compose de
plusieurs segments, ou lextrmit dun segment. Vous pouvez remodeler une forme
ou un lien en faisant glisser ses losanges.
Macro : 1. Programme Microsoft Visual Basic pour Applications (VBA) qui augmente
les fonctionnalits de lapplication Visio par lintermdiaire de rfrences Automation
aux objets, aux mthodes et aux proprits de Visio. 2. Procdure qui ne ncessite
aucun argument et qui est contenue dans un module au sein dun projet stock dans
un modle, un gabarit ou un dessin Visio.
Mthode : procdure qui agit sur un objet.
GL OSSAI RE 567
Mode cration : tat de lapplication Visio qui vous permet dinsrer des contrles
ActiveX sur une page de dessin, de dplacer, de redimensionner les contrles et de
paramtrer leurs proprits. Le mode de cration na aucun incidence sur les autres
commandes et outils Visio ; en revanche, lorsquun document est en mode cration,
aucun de ses objets (notamment les contrles) ne cre dvnements.
Mode excution : tat de lapplication Visio vous permettant dutiliser les contrles
ActiveX insrs en mode cration. Par exemple, vous pouvez cliquer sur un bouton de
commande pour excuter son gestionnaire dvnement Click. Le mode excution na
pas dincidence sur les autres commandes et outils Visio. Un document Visio est
ouvert par dfaut en mode excution, sauf si une protection antivirus est dfinie pour
les macros.
Modle : fichier Visio pouvant ouvrir plusieurs fichiers et plusieurs fentres, et
pouvant contenir les styles et les paramtres dun type de dessin, par exemple, lchelle
et la grille. Vous pouvez crer un dessin comportant les styles et les paramtres dun
modle en ouvrant le fichier de modle. Les fichiers de modle portent
lextension .vst.
Modle de procdure : instructions de dpart et de fin automatiquement insres dans
la fentre de code lorsque vous spcifiez une procdure Function, Property ou Sub
dans la bote de dialogue dinsertion de procdure
Module : dans un projet Microsoft Visual Basic ou Visual Basic pour Applications
(VBA), code constitu dun ensemble de dclarations suivies de procdures. Un
module standard contient seulement des dclarations et des dfinitions de procdure,
de type et de donnes.
Module de classe : dans un projet Microsoft Visual Basic ou Visual Basic pour
Applications (VBA), module contenant la dfinition dune classe (ses proprits et ses
mthodes).
Mosaque : 1. Technique permettant dimprimer les pages de dessin de trs grand
format sur plusieurs feuilles de papier pour former un seul dessin. 2. Technique
permettant dafficher les fentres dans la fentre principale de Visio.
Multiplicit : nombre ditrations dun noeud spline.
Noeud : nombre rel qui marque sur une spline la frontire entre les parties
polynomiales.
Noeud de spline : nombre rel qui dlimite les parties polynomiales dune spline.
Nom local : nom dune forme, forme de base, dune page, dun style, dune ligne ou
dun calque qui apparat dans linterface utilisateur ; les objets ont galement un nom
universel accessible uniquement aux clients Automation.
568 GL OSSAI RE
Nom universel : nom dune forme, dune forme de base, dune page, dun style, dune
ligne ou dun calque utilis par les clients Automation ; les objets peuvent aussi avoir
des noms locaux qui sont utiliss dans des versions localises dune solution
Automation. Les noms universels permettent de conserver le mme code source dans
les versions localises.
Non-mise lchelle : comportement dune forme qui nest pas redimensionne en
fonction de lchelle de dessin dune page. Lapplication Visio ne met pas les formes
lchelle lorsque lchelle du dessin dpasse le rapport huit.
NURBS (nonuniform rational B-spline) : forme frquemment utilise pour reprsenter
mathmatiquement des courbes semblables celles dessines laide de loutil Dessin
main leve.
Objet : lment de programme quune application fournisseur met la disposition, via
Automation, dune application contrleur. Dans Visio, les objets sont
hirarchiquement relis comme lindique le modle dobjet Visio.
Objet Event : objet Visio que vous crez pour grer les vnements Visio. Un objet
Event associe un vnement et une action, soit pour excuter un programme
complmentaire, soit pour informer un objet de votre programme que lvnement
sest produit. Lorsque lvnement se produit, lobjet Event sactive et dclenche
laction.
Objet rcepteur : dans un programme Microsoft Visual Basic pour Applications
(VBA), classe qui reoit des vnements dclenchs par un certain type dobjet de
lapplication Visio. Dans un programme autonome Visual Basic, C ou C++, objet
destinataire de la notification envoye par un objet Event Visio et qui tablit une
communication bidirectionnelle entre une solution autonome et une copie de Visio.
Egalement appel rcepteur dvnement, rcepteur de notification.
Occurrence : 1. Forme base sur la forme de base. 2. Image dapplication de Microsoft


Windows

.
Oprateur : symbole reprsentant ou excutant une opration mathmatique ou
logique.
Origine : point (0,0) dun systme de coordonnes cartsien. Dans Visio, lorigine est
toujours le coin infrieur gauche du systme de coordonnes dune forme, dun
groupe ou dune page. Les dimensions dune forme, comme sa largeur et sa hauteur,
ainsi que le centre de rotation, sont mesurs partir de son origine. Lemplacement
dune forme par rapport son parent (un groupe ou une page) est mesur partir de
lorigine du parent.
Origine de la grille : point qui dfinit la disposition des lignes de la grille sur la page de
dessin. Une ligne de grille verticale et une ligne de grille horizontale passent par
lorigine de la grille, toutes les autres lignes de grille tant dessines des intervalles
rguliers partir de ces lignes de rfrence. Par dfaut, lorigine de la grille se situe
dans le coin infrieur gauche de la page de dessin.
GL OSSAI RE 569
Page : zone imprimable de la fentre de dessin contenant un dessin. Une page peut
tre une page de premier plan ou darrire-plan. A chaque page sont attribus un
format (correspondant gnralement au format de papier standard) et une chelle
(que le programme Visio prconfigure pour les diffrents types de dessin).
Page de dessin non mise lchelle : page de dessin dont lchelle est de 1:1.
Page active : page de dessin en cours pouvant tre modifie dans un document Visio.
Page de dessin : zone imprimable dune fentre de dessin contenant un dessin. Une
page peut tre de premier plan ou darrire-plan. Chaque page possde des
dimensions qui correspondent gnralement une taille de papier standard et
comporte une chelle.
Paire nombre unit : expression compose dun nombre et dune dimension. Par
exemple, 1 cm est une paire nombre unit.
Paramtrique : caractristique dune forme dans un dessin Visio ayant la possibilit de
rgler sa gomtrie et dautres attributs en fonction des valeurs de certains
paramtres.
Parent : niveau immdiatement suprieur dans la hirarchie du systme de
coordonnes. Si une forme est un membre ou un groupe, son parent est le groupe. Si
une forme nest pas le membre dun groupe, son parent est la page de dessin.
Persistance : dure de vie dune variable, dune procdure ou dun objet. Par exemple,
un objet peut persister pendant lexcution de lapplication Visio. Un objet pouvant
stocker les objets Event dune session Visio lautre est un objet qui persiste aux
vnements.
Pile dannulation : rgion de la mmoire rserve o sont stockes les units
dannulation.
Plan largeur-hauteur : rectangle orthogonal dun espace de coordonnes local dont un
coin a pour coordonnes (0,0) et le coin oppos correspond (largeur,hauteur).
Poigne : contrle qui apparat lorsque vous slectionnez une forme. Vous pouvez
utiliser des poignes pour modifier une forme. Les poignes varient en fonction de la
forme que vous slectionnez et de loutil de slection que vous utilisez. Par exemple,
lorsque vous slectionnez une forme avec loutil Pointeur, lapplication fait apparatre
des poignes de slection que vous pouvez dplacer pour changer la taille et les
proportions de la forme. Lorsque vous slectionnez une forme avec loutil Rotation,
les poignes de rotation qui apparaissent vous permettent de faire pivoter la forme.
Poigne de contrle : poigne qui contrle le comportement dune forme. Par
exemple, vous pouvez crer une poigne de contrle pour que lutilisateur puisse
ajuster larrondi des angles, modifier la forme dune flche ou crer un lien
directement depuis une forme 2D.
570 GL OSSAI RE
Poigne de direction : poigne qui apparat sur un point de connexion slectionn
pour indiquer sa direction. La poigne de direction dtermine si la forme pivote
lorsquelle est colle une autre forme.
Poign de rotation : poigne circulaire qui apparat au coin du rectangle de slection
dune forme lorsque vous slectionnez la forme avec loutil de rotation. Le
dplacement dune poigne de rotation modifie langle de rotation de la forme.
Poigne de slection : poigne carre qui apparat sur une forme slectionne laide
de loutil Pointeur. Les poignes de slection indiquent que vous pouvez dplacer ou
redimensionner la forme.
Poigne dexcentricit : cercle qui apparat chaque extrmit dune ligne en pointill
lorsque le point de contrle dun arc dellipse est slectionn avec loutil Crayon. Le
dplacement dune poigne dexcentricit change langle et lamplitude de
lexcentricit dun arc.
Point de connexion : point situ sur une forme, auquel un autre point de connexion
peut tre coll. Vous pouvez crer des points de connexion lintrieur ou
lextrieur de la forme, ou sur son primtre, laide de loutil Point de connexion.
Chaque point de connexion de la forme est signal par une coche () bleue lorsque
loption Points de connexion est coche dans le menu Affichage.
Point de contrle : 1. Poigne circulaire qui apparat sur une ligne, un arc ou une spline
(ou un segment de ligne, darc ou de spline) lorsque la forme est slectionne avec
loutil Crayon. Vous pouvez dplacer un point de contrle pour modifier la courbure
dun arc ou dune ellipse. 2. Point ayant une influence sur la courbure dun segment
de spline.
Point de dpart : poigne de slection au dbut dune forme 1D. Le point de dpart
porte la marque . Egalement appel point de dbut.
Point de repre : lignes de rfrence que vous pouvez faire glisser sur la page de dessin
afin de positionner les formes avec prcision. Le point de repre partir de langle
suprieur gauche de la fentre de dessin, lintersection des rgles verticale et
horizontale.
Point zro : 1. Emplacement du 0 sur la rgle horizontale ou verticale. 2. dintersection
dans la fentre de dessin des points zro de chaque rgle. Par dfaut, le point zro est
le coin infrieur gauche de la page de dessin.
Point dancrage : point fixe qui ancre une ligne lastique dont lautre extrmit est
relie une poigne de contrle. Les points dancrage sont visibles seulement lorsque
les effets dynamiques sont dsactivs dans un document. Dans ce cas, la ligne
lastique stire et se rtrcit pour donner un effet de retour lorsque lutilisateur
dplace la poigne de contrle, sans que cela intervienne sur le comportement de la
poigne.
Polygone de contrle : srie de segments dune ligne droite qui relient tous les points
de contrle dune seule spline.
GL OSSAI RE 571
Polyligne : srie contigu de segments de ligne reprsents dans un dessin Visio par
une ligne Polyligne dans une section Gometrie de la forme. Les lignes reprsentes
sous la forme dune ligne Polyligne quivalent aux lignes reprsentes sous la forme
dune squence de lignes TraitVers, mais une ligne Polyligne est plus efficace. Dans les
dessins Visio, les dessins imports contiennent souvent des polylignes.
Porte : tendue de persistance dune variable, dune procdure ou dun objet dans un
programme dexcution. La porte dun lment dpend gnralement de
lemplacement partir duquel il est dclar. Par exemple, la porte dune variable
dclare dans une procdure est la procdure mme. En dautres termes, que lorsque
la procdure termine son excution, la variable sort.
Premier plan : page suprieure dun dessin. Les formes insres dans la page de premier
plan apparaissent devant celles de la page darrire-plan. Elles ne sont pas visibles
lorsque vous modifiez la page darrire-plan du dessin.
Procdure : squence nomme dinstructions excutes en tant quunit. Function,
Property et Sub sont des types de procdure.
Procdure dvnement : dans un programme Microsoft Visual Basic ou Visual Basic
pour Applications (VBA), code excut lorsquun vnement se produit. Par exemple,
un bouton situ dans un formulaire Visual Basic dispose gnralement dune
procdure dvnement pour grer lvnement Click.
Programme complmentaire : programme qui, par lintermdiaire de rfrences
Automation, tend lapplication Visio aux objets, aux mthodes et aux proprits
Visio.
Projet : dans Microsoft Visual Basic pour Applications (VBA), code que vous rdigez
et qui est enregistr avec un fichier Visio. Vous pouvez crer seulement un projet pour
un document Visio, mais ce projet peut comporter nimporte quel nombre de
modules, de modules de classe et de formulaires utilisateur.
Proprit : attribut nomm dun objet. Les proprits dfinissent les caractristiques
de lobjet comme la taille, la couleur et lemplacement lcran, ou ltat dun objet
(activ ou dsactiv).
Proprit personnalise : donnes dfinies par lutilisateur et associes une forme. Par
exemple, les proprits personnalises dune forme reprsentant la partie dun moteur
identifient son numro de pice, son prix et le nombre de ses composants en stock.
Rapport de huit : rgle de manipulation des occurrences de forme dont lchelle est
diffrente de celle de la page de dessin. Si le facteur qui diffrencie lchelle de dessin
de la forme de base et lchelle de la page de dessin est infrieur ou gal huit, la forme
est mise lchelle en fonction des paramtres de la page de dessin. Si ce facteur est
suprieur huit, la forme nest pas mise lchelle.
572 GL OSSAI RE
Rcepteur dvnements : dans un programme Microsoft Visual Basic pour
Applications (VBA), classe qui reoit les vnements dclenchs par un type dobjet
de Visio. Dans un programme autonome Visual Basic, C ou C++, objet qui reoit la
notification envoye par un objet Event Visio et qui permet une communication
bidirectionnelle entre une solution autonome et une copie de Visio.
Rcepteur de notification : dans un programme Microsoft Visual Basic pour
Applications (VBA), classe qui reoit les vnements activs par un type spcifique
dobjet de lapplication Visio. Dans un programme autonome Visual Basic, C ou
C++, objet destinataire de la notification envoye par un objet Event Visio et qui
tablit une communication bidirectionnelle entre une solution autonome et une
copie de Visio.
Rectangle de slection : ligne en pointill formant un rectangle autour des formes ou
des objets slectionns issus dautres applications.
Redimensionner : modifier les dimensions dune forme.
Rfrence de cellule : rfrence utilise dans les formules dune feuille de calcul
ShapeSheet

pour calculer la valeur dune cellule daprs la valeur dune autre cellule.
Remplissage : couleur et/ou motif situs lintrieur dune forme ferme. Le
remplissage par dfaut pour les formes Visio est blanc uni.
Repre : lignes de rfrence que vous pouvez faire glisser sur la page de dessin afin de
positionner les formes avec prcision. Vous pouvez faire glisser le repre horizontal
partir de la rgle horizontale, le repre vertical partir de la rgle verticale.
Segment : ligne droite, arc ou partie dune spline.
Slection : formes slectionnes dans un dessin et modifiables. Les formes
slectionnes sont dotes de poignes de slection. La slection fait galement
rfrence au texte slectionn dans un bloc. Lorsque vous pouvez modifier un texte
slectionn, il est mis en surbrillance.
Slection primaire : premire forme slectionne dans une slection multiple, indique
sur la page de dessin par des poignes de slection vertes. Lorsquune slection
multiple est combine, le formatage de la slection primaire est appliqu la nouvelle
forme. Dans un objet Selection, la slection primaire est le premier lment dans la
collection Shapes de lobjet.
Sous-slection : slection de chacune des formes dun groupe.
Spline : courbe trace main leve, base sur une quation polynomiale.
Spline non priodique : spline avec points de fin dfinis. Si le point de dpart et le point
de fin dune spline concident, la spline est ferme.
Spline priodique : spline ferme sans points de fin dfinis.
Style : ensemble nomm dattributs enregistr avec un modle ou un fichier de dessin.
Voir aussi Attribut, Format.
GL OSSAI RE 573
Technologie SmartShapes : la technologie SmartShapes

permet de personnaliser le
comportement dune forme avec des formules de la feuille de calcul ShapeSheet

.
Unit de dessin : dimensions qui refltent la taille relle des objets reprsents par les
formes dans un dessin Visio. Par exemple, dans un dessin architectural qui utilise
lchelle 1 cm = 1 m, lunit de dessin est le mtre.
Unit de page : dimensions qui refltent la taille des formes telles quelles sont
dessines sur une page de dessin Visio. Par exemple, dans un dessin architectural qui
utilise lchelle 1 cm = 1 mtre, lunit de page est le centimtre.
Unit dangle : unit dans laquelle les angles sont exprims dans les cellules
ShapeSheet

.
Unit dannulation : occurrence dune classe qui regroupe les informations ncessaires
linversion dune action excute par un utilisateur dans linterface utilisateur ou par
un client Automation.
Units explicites : unit de mesure indique sous la forme dune paire nombre unit et
concernant laffichage du rsultat. Dans une feuille de calcul ShapeSheet

, par
exemple, la valeur 3 mm apparat toujours sous la forme 3 mm .
Unit implicite : unit de mesure indique sous la forme dune paire nombre unit et
concernant laffichage du rsultat dans un systme de mesure dtermin. Ce systme
peut ne pas concider avec lunit saisie lorigine. Par exemple, lexpression
1 [po.,d] spcifie que la valeur est au dpart interprte comme un pouce, mais
le d indique que le rsultat est affich laide de lunit de dessin par dfaut de la page
courante. Si lunit de dessin est le centimtre, la feuille de calcul ShapeSheet

affiche
2,54 .
Unit interne : unit de mesure que lapplication Visio utilise en interne pour stocker
les valeurs de dimension. Les units internes de lapplication Visio sont les pouces
pour les mesures linaires et les radians pour les mesures angulaires.
Unit par dfaut : unit de mesure utilise pour afficher une valeur dans une cellule
ShapeSheet

si aucune unit nest explicitement spcifie. Les units par dfaut dun
dessin et de la page sont les proprits dune page de dessin. Les units par dfaut de
texte et dangle sont les paramtres de lapplication.
Valeur boolenne : type de donnes ayant deux valeurs possibles : TRUE (vrai) ou
FALSE (faux). Lorsque les types numriques sont convertis en valeurs boolennes, 0
devient FALSE et toutes les autres valeurs deviennent TRUE.
Verrouillage : paramtre qui limite les moyens dont disposent les utilisateurs pour
modifier une forme. Par exemple, un verrouillage sur une poigne de slection
empche lutilisateur de redimensionner une forme laide dune poigne de ce type.
Zoom: degr de grossissement dun dessin dans la fentre de dessin. Un dessin affich
en 100 % a la mme taille que lorsquil est imprim, sauf si vous rduisez ou
agrandissez la sortie imprime dans la bote de dialogue Mise en page.
Index
Symboles
!ShapeCount, variable 400
(= ) Signe gal en prfixe des formules
ShapeSheet 83
Nombres
128 bits, valeur 328
A
Acclrateur, suppression 455
AccelItem, objet 437
AccelItems, collection 285
AccelTable, objet 437, 444
AccelTables, collection 285
Accepter les formes insres, option 116
Action
annulable 473
cellule 139
commande 138, 139
Actions. Voir noms des actions
spcifiques
Actions au dplacement des raccourcis
de la forme de base 269
Actions au dplacement, champ 269
Actions, section 66, 68, 138, 145
ActionText, proprit 451
Activate, mthode 291
ActiveDocument, proprit 319
ActivePage, proprit 324
Activer les effets dynamiques 136
ActiveWindow, proprit 313
ActiveX, contrles 461
ajout 462
attribution dun nom 467
avec les formes 472
dfinition des tabulations 465
distribution 469
excution 467
gestion des vnements 466
mode cration 464
proprits dambiance 465
protection 466
rcupration 468
Activit non modale 529
Add, mthode 325
AddAdvise, mthode 422, 425, 427, 430,
523
AddAt, mthode 439
AddNamedRow, mthode 393
Addon, objet 500
AddOnArgs, proprit 505
AddOnName, proprit 451
AddonPaths, proprit 487, 500
Addons, collection 500
AddRef, mthode 512, 516
AddRow, mthode 349
AddSection, mthode 349, 351
Addsink.h 523
AddUndoUnit, mthode 481
Affichage des formules, commande 71
Afficher la feuille ShapeSheet,
commande 65, 66
Afficher le gabarit de document,
commande 54, 66
Afficher les accoudoirs, commande 145
Afficher les membres cachs,
commande 465
Aide
en ligne 4
fichiers 261, 487
HTML Help (fichiers .chm) 266
identificateurs de contexte 266
Ajout aux dessins
contrles 464
contrles ActiveX 461, 462
cration 338
pages 325
Ajout doptions de menu, exemple 480
Ajout dun menu et dune option de
menu (exemple) 447
Ajout dune option de menu au menu
Dmo (exemple) 447
Ajout dune section Gomtrie, exemple
352
Ajouter au groupe, commande 116
Ajouter la forme aux groupes
linsertion, option 116
Ajouter une poigne de contrle la
forme, option 184
Ajouter une procdure, bote de
dialogue 300
Alignement
cellule 386
section 68
Analyse 506
ANG360( ), fonction 199
Angle
champ 100
normalis 199
protection de la cellule Angle 102
rotation 78, 193
variables 192
AngleTexte, cellule 181, 198
ANGLEVERSPAR, formules 170
Appartenance au calque, section 68, 232
APPELER_CE, fonction 154
Application, objet
cration 496
dans le modle dobjet Visio 279
dans un exemple Visual Basic 416
dans un modle dobjet de Visio 282
exemple dans Visual Basic 497
interfaces 432, 441
libration 497
personnalisation 434
proprits 284
rcupration 319, 497, 516
rfrences 306
Application, proprit 308
Arc, outil 40, 104
576 I NDEX
ArcElliptiqueVers, ligne 104, 107
Arcs
Voir aussi Splines
contrle des courbes 103
conversion 108
elliptiques 103, 104, 106, 107, 108
Arcs elliptiques 108
ArcVers, ligne 106
Arguments
Voir aussi noms des mthodes ou des
proprits spcifiques
chane 519
dfinition de valeurs 289
excution de programmes 505
fonctions 73
ID uniques 395
pointeur dobjet 518
transmission 518
VARIANT 519
Arrire-plan, pages 58, 367
Voir aussi Pages
ATTEINDREPAGE, fonction 140, 154
Attraction
vers la gomtrie des formes 176
Attribution de noms
Voir aussi noms des objets spcifiques
formes de base 262, 263
AucunAff, cellules 129, 145
Automation
Voir aussi noms des langages de
programmation spcifiques
concepts COM 509
connexions 375
dans les dessins 357
description 279
dveloppeurs 25
extraction 396
programmation pour lapplication
Visio 293
rfrences de bibliothque 305
serveur 20, 30
Automation dans les solutions
attribution de noms 493
diffusion 485
intgration 29, 30
langages de programmation 20
mise en oeuvre de la conception 29
utilisation 20
Automation et les objets
formes 29, 391
modles 29
utilisation 20
Automatisation des ventes sur le terrain,
exemple 13
Autonomes, gabarits
Voir aussi Gabarits
Autonomes, programmes
Voir aussi Programmes
Axe
blocs de texte 180
consquence du retournement 99
consquences de la rotation 100
coordonnes 92
cube en 3D 122
dplacement 228
dplacement autour 93, 101
dplacement par rapport laxe 121
formules 64
personnalisation 226
poigne de contrle du texte 184
AxeLocX et AxeLocY, cellules 92, 101
Voir aussi AxeX et AxeY, cellules
AxeLocXTexte et AxeLocYTexte,
cellules 181
AxeX et AxeY, cellules 70, 71, 92, 93, 94,
101
Voir aussi AxeLocX et AxeLocY,
cellules
AxeXTexte et AxeYTexte, cellules 181,
193, 198
B
B-splines 111
BackColor, proprit 465
BackPage, proprit 367
Barre de formule 64, 73
Barres doutils 454
ajout 449
suppression 454
Bas sur, option 208
Bases sur la hauteur
formes 89, 96
formules 94, 95
BaseID, proprit 395
Bases de donnes
accs 152
Assistant 30, 152
dans les solutions Visio 29
intgration de solutions 407
liaison personnalise 151
BeforeDocumentClose, vnement 407,
416
BeforeQuit, vnement 430
BeforeShapeDelete, vnement 24
BeginUndoScope, mthode 477
Bzier, courbes 330
Voir aussi Courbes, Splines
Bibliothques 31, 303, 305, 306, 525
de symboles CAO 46
de types 303, 305, 507
de types Visio 303, 305, 306
dossier 5
dynamiques 524
Visio (.vsl) 31, 284, 303, 524, 525,
526, 529
Bidimensionnelles, formes. Voir Formes
2D
Bitmaps 45
Bloc de texte droit, largeur 195
Bloc de texte, outil 183
Blocs de texte
affichage des rsultats relatifs au
format 198
conception 179
coordonnes 180
dans les formes 179, 180, 181
dcalage 198
droits 195
positionnement 183
quantit de texte 188
redimensionnement 186, 187
restriction 187
rotation 192, 194
test 204
Bote 2D 159
Botes de dialogue. Voir noms des botes
de dialogue spcifiques
Bonjour tous !, exemple de
programme 338
Bonjour.vsd 309, 319, 339
Boolennes, valeurs 150, 366
Boucles 286, 287, 355, 400
Boulon, exemple de forme 15
Boutons de barre doutils
ajout 449
pour lancer les programmes 491
Boutons de barre doutils personnalise
449
B-splines
Voir aussi Splines
I NDEX 577
BSTR, mthodes 518, 519
BuiltInMenus, proprit 434
BuiltInToolbars, proprit 434
Bulle avec poigne de contrle, exemple
138
Bulle, forme 134
Bureau Windows, lancement de Visio 30
Bus, forme 161
C
C/C++, programmes
Voir aussi Programmes
contrles 469
copyright 494
fichiers dans le dossier DVS 512
gestion des vnements 521
programmation 279, 509
Cadenas pour les formes 102
Calcul dun total, exemple 22
Calcules sur la base de la hauteur
formes 97
formules 97
Calculs
pour la courbure des arcs 109
pour le rayon des arcs 109
Calque, bote de dialogue 233
Calque, indice 371
Voir aussi Indices dobjets, proprits
Calques
Voir aussi Pages
attribution 230
attribution de formes 230, 231
attribution de formes de base 231,
233
avec formes 229, 230, 231
description 59, 230, 371
formes 59
identification 371, 372
modification des paramtres 374
optimisation 231
section 68
suppression 231
utilisation 371
Canalisation, formes 167
Caption, proprit 451
Caractres, section 68, 182, 191
C-CPP, dossier 512
CD-ROM, matriaux de rfrence 4
Cell, objet
automatisation des dessins 341
collage 380
dans le modle dobjet Visio 342
formules 345
proprit Error 314
Cells, proprit
formatage 322
formules 342
rcupration 343
CellsC, proprit 374
CellsSRC, proprit 342, 355, 374
Cellule MseAJourRectSl 242
Cellules
Voir aussi noms des cellules
spcifiques
collage 386
dans la section Evnements 153
formules 72, 84, 342, 346
invisibles 129
Montage 83
units de mesure 79
verrouillage 94
Cellules dfinies par lutilisateur, section
ajout de cellules 82
conventions de nom 75
section Montage 81
Cellules personnalises, section
description 68
Centre de rotation. Voir Axe
Chane 200, 518
de caractres 393, 396
de commande 503, 506
de texte 150
proprit 150
renvoye 396
Chaise, forme 132, 143
Champ
bote de dialogue 202
codes 333
Champs de texte, section 68, 198, 199
Characters, proprit 332
Chemins
description 88
fichiers Visio 277
formes cres par fusion 128
installation des fichiers 487
liens repositionnables 163
outil Crayon 39
recherche de fichiers 487
Chemins daccs 487
bote de dialogue 277
onglet 488
CHM 487
Voir aussi Fichiers daide
Chr$, fonction 332
CibleADposer, cellule 116
ClearCustomMenus, mthode 460
Clipart, importation 44
CLS 302
CmdNum, proprit 452
CntrlType, proprit 449
Coch, cellule 140, 141
CoCreateAddonSink 523
Code
Voir aussi Programmes
copyright 53, 494
criture 401
examen 399, 405
extraction de donnes 391, 396
interface utilisateur 432
lisibilit 2
mise en oeuvre 411
portable 260
protection 316
rdaction 495
source 53
transfert 507
CodeDvTraitLien, cellule 245
CodeFixeForme, cellule 178
CodeTracForme, cellule 245
Coins, commande 104
Collage 157, 169
Voir aussi Liens, Collage des formes
comportement 170
connexions 172, 380
dessins avec connexions 384
dynamique 170, 388
formes 169, 381, 384, 386, 388
paires de cellules 386
poignes de slection 386
points de repre 387
rgles 385
repres 239
spcifications 171
statique 170
CollagePossible, cellule 133, 135
Colle
Voir aussi Liens, Collage de formes
Collections
Voir aussi noms des collections
spcifiques
578 I NDEX
itration 286, 355
rfrence aux objets 285
suppression dobjets 287
vrification des objets 314
Coller le raccourci, commande 269
Coller sur Gomtrie des formes 176
Colors, collection 285
COM (Component Object Model) 280,
316
Combinaison de formes
Voir aussi Formes regroupes,
Formes multiples, Formes
Combinaison, commande 42, 127, 144
Voir aussi Formes multiples
Combine, mthode 366
Combines, formes 113, 126
Commande Menu pour lancer les
programmes 491
Commande, bouton de contrle 301
Commandes coches 141
Component Object Model (COM) 279,
316, 509
Comportement
bote de dialogue 116
cellules 135, 137
ComportementX et ComportementY,
cellules 135, 138, 184
Composant de rfrence dobjet
Voir aussi Rfrences
Composes, rfrences dobjet 288
Concatnation 288
Conception de forme
laide dAutomation 29
composants 10
conformit aux spcifications 17
planification 27
Conception de solution
cration 15
dans les dessins 11
mise en oeuvre 29
objets Visio 21
utilisabilit 25
Configuration de pages, exemple 369
Connect, objet
utilisation 377
Connecteurs, cration 157
ConnectionsAdded, vnement 407
ConnectionsDeleted, vnement 407
Connects
collection 377
proprit 377
Connexion de formes 117, 377
exemple dans un diagramme de flux
389
Connexion de formes 1D
automation 380
liens 157
Connexion de formes 2D, automation
380
Connexion, donnes. Voir Donnes
Connexions
analyse 378, 379, 381
collage 172
consquences sur le regroupement
117
dans les solutions Visio 375
formes 1D et 2D 380
itration 381, 382
rcupration de cellules 380
utilisation 377
Conserver le formatage local, option 216
Constantes
Voir aussi noms des proprits ou des
constantes spcifiques
dans la bibliothque 507
globales 303
libell de ligne 557
pour les connexions 380
ContainingMaster, proprit 366
ContainingPage, proprit 366
ContainingShape, proprit 366
Conteneurs 76
Contrle de recalcul 84
Contrles
ajout 301, 462
attribution dun nom 467
collection OLEObjects 468
contrles de section 67
dfinition de lordre de tabulation
465
dnomination 302
distribution 469
excution 467
gestion des vnements 466
interaction avec les formes 472
mode cration 464
ordre dempilement 465
personnalisation 461
proprits dambiance 465
protection 466
Contrles, barre doutils 301
Contrles, bote de dialogue 464
Contrles, section 68
Voir aussi Poignes de contrle
Contrleur
application 20
Automation ActiveX 31
Conversion
formes 46
formes 1D en 2D 159
Convertir en groupe, commande 46
Convertir les bibliothques CAO, bote
de dialogue 46
Coordonnes
consquence du retournement 99
dans les blocs de texte 180
de page 362
formes 89
formules bases sur la hauteur 95
locales 89, 90, 92, 118
modification 71
parent 90, 92, 118
poignes de contrle 135
point zro 90
pour les sommets 89
sur la page 89, 118
types 89
Copie de Visio
cration 496
dans un objet Application 501
descripteur de fentre 500
excution dautres programmes 496
gestion des erreurs 499, 502
rcupration 497
utilisation de raccourcis 499
Copie des lments dune forme 41
Copy, mthode 291, 331, 366
Copyright 50, 53, 494
Cordes 105
CorelDRAW! (.cdr) 45
Couleurs
copie 218
dfinition de RVB 217
dfinition de TSL 217
gestion 217
indices 217
personnalisation 217
Count, proprit 285, 286
Coupure, commande 43
Courbes 103
I NDEX 579
Voir aussi Arcs, Splines
Courbures des arcs 104, 105, 109
Crayon, outil 40, 47, 71
CreateDrawing, procdure 361
CreateObject, fonction 496, 499
Voir aussi GetObject, fonction
Cration dun exemple dunit
dannulation 482
Cration dun processus de
dveloppement 25
Cration de dessins partir de donnes,
exemple 429
Cration de formes
formes fermes 41
par fusion 42
rptition dlments 41
CrationEvn, cellule 153
Cubes en 3D 121, 122, 123
Custom.vsu 457
CustomMenus, proprit 434
CustomMenusFile, proprit 459
CustomToolbars, proprit 434
Cut, mthode 331, 366
CVisioAddOnSink, classe daide 523
CVisioApplication, classe wrapper 512
CVisioCell, argument 518
CVisioDocument
classe wrapper 515
objet 516
CVisioMaster 519
CVisioPage 519
D
DAO (Data Access Objects - objets
daccs aux donnes) 30, 407
Data Access Objects (DAO) 407
Data1, Data2 et Data3, proprits 333
Date/heure, proprit 150
DbAction, cellule 170
Dcaler, commande 43
Dclenchement des vnements 156
DEFF, fonction 139, 143, 145, 154
Dfinir le style, commande 208, 210, 213
Dfinir les proprits personnalises,
bote de dialogue 147
Dfinir les styles, bote de dialogue 208,
209, 214, 321
Degrs dangle 199
Delete, mthode 331, 366, 373
DeleteSection, mthode 353
DeleteShapesFlag, argument 373
Dlimitation dune forme, zone 177
Dmarrage, programmes. Voir
Programmes
Dnomination
styles 214
DensitGrilleX et DensitGrilleY,
cellules 233
DpartFlche, cellule 220
DpartX et DpartY, cellules 117
DEPENDDE, fonction 152, 154
Dsactiv, cellule 140, 142
Description
proprit 320, 480
zone 311
DeselectAll, mthode 365
Dessin main leve, outil 40
Voir aussi Splines
Dessin, pages
Voir aussi Pages
Dessins
partir de formes de base 358
association de fichiers daide 485
avec Automation 357
avec connexions 381
enregistrement 62, 323
extraction de donnes 396
impression 322
mis lchelle 57
ouverture 61
partage de donnes 391
rpondant aux spcifications 17
taille des fichiers 492
Developing Visio Solutions sur CD-
ROM 4
Dveloppeur
barre doutil 65
ressources 5
Devise, proprit 151
Diagramme de base, modle 501
Diagramme de flux, gabarit 210
Diagrammes avec connexions 377
analyse 381
Automation 375
cration 384, 385
lignes de repre 381
obtention dinformations 378
Diffusion de formes
peaufinage 259, 260
performances 261
Dim, instruction 400
DirDvTraitLienX et DirDvTraitLienY,
cellules 245
Dissociation 50, 115
Dissocier, commande 50, 115
Divers, section 68
DLL (Dynamic link libraries) 31, 509,
524
Voir aussi Bibliothques
DllMain 526
Do, procdure 480
Document, gabarits 18
Document, objet
comparaison 309
contrle de la porte 442
dans le modle dobjet Visio 317
dans un modle dobjet de Visio 282
dans une collection Masters 359
description 282, 318
formules 341, 342
personnalisation 432, 434
proprits 284
rcupration 319
ThisDocument 309
Document, proprit 284, 319, 321
Documentation de gabarit, Assistant 5
DocumentOpened
vnement 407
gestionnaire dvnements 414
Documents
actifs 318, 319
collection 282, 284, 286, 309, 319, 359
contenant plusieurs pages 59
cration 501
lments 56
enregistrement 62, 297, 323
format dun fichier Visio 60
impression 322
modification 65
ouverture 57, 61
partage de donnes 391
proprit 284
rcupration dinformations 320
Domaine dannulation
association dvnements 478
cration avec des programmes
complmentaires 477
description 473
vrification 478
Donnes
et formes 391
exportation 400
580 I NDEX
intgration avec des programmes
391
liaison personnalise 151
proprits personnalises 147
rcupration 396
vrification de la collection 400
Dossiers Visio dinstallation des
solutions 487
Doubles, variables
Voir aussi Variables
DrawBezier, mthode 331
Drawing Explorer 207, 209
DrawingPaths, proprit 487
DrawLine, mthode 330
DrawNURBS, mthode 331
DrawOval, mthode 330
DrawPolyline, mthode 331
DrawRectangle, mthode 330
DrawSpline, mthode 331
Droits dauteur sur les formes 50
Drop, mthode 331, 335, 360
DropMany, mthode 360
DropManyU, mthode 493
Duplicate, mthode 331, 366
Duration, proprit 150
DWG, fichiers 47, 111
Dynamiques, liens 177
DynamiqueX et DynamiqueY, cellules
135, 136, 184
E
Echelle de dessin
section 253
Echelle personnalise, option 253
Echelles de dessin
configuration 253
description 249
facteurs 252
pour les formes de base 253
rgle du rapport huit 254
test 263
utilisabilit 251, 252
Ecriture seulement, proprits. Voir
Proprits
Editeur de proprits personnalises 151
Editeur Visual Basic
configuration des options 295
dmarrage 295
enregistrement de projets 297
excution de macros 311
excution du code 311
Gestionnaire de complments 316
navigation dans le projet 296
utilisation 294
Ellipse, outil 40
Elliptiques, arcs 108
Voir aussi Arcs
EMETTRESON, fonction 154
En ligne, aide 4
Enabled, proprit 436, 453
Encapsulated PostScript (.eps) 45
EndUndoScope, mthode 477
Enlever du groupe, commande 116
Enregistrement de dessins 297
Enregistrement de donnes
dans dautres programmes 398
sur le disque 398
EnterScope, vnement 477, 478
EpaisseurTrait, cellule 206, 208
Equations. Voir Formules
Error, fonction 314
Espace de travail 57
enregistrement 62
enregistrer sous 62
liste 60, 271, 277
ouverture 61
EspacementGrilleX et
EspacementGrilleY, cellules 233
Etiquettes de ligne, constantes 350
EVALTEXT, fonction 189
EvnDblClic, cellule 153
Evnements
Voir aussi noms des vnements
spcifiques
associs des actions 420
code de module de classe 417
de dclenchement 85
dclenchant une action 420
dclenchement 412, 414
dfinition dune classe 417
excution 491
gestion 409
indexation par objet 532
initialisation 418
mise en oeuvre du code 411
persistance 424
procdures 413, 466
protocole 520
rception 293
section 68, 153, 154
utilisation avec un domaine
dannulation 478
vrification 478
Event, objet
cration 427
dfinition 420
excution 422
excution dun programme
complmentaire 423
notification 425, 430
persistance 424
porte 420
proprits 409, 410, 422
EventInfo, proprit 422
EventList, collection 420, 422, 523
EventList.Add 520
EventList.AddAdvise 520
EventsEnabled, proprit 472
EvnXFMod, cellule 153, 170
Excel 284
Excentricit
arcs 37, 106, 108
poignes 37
EXD, fichiers 464
EXE, fichiers 31, 423, 487
Excuter sous le mode dveloppeur,
option 65, 66, 174
Excuter Sub/UserForm 311
Excution
fentre 400
mode 462
Excution de programmes
au dmarrage 488
avec des arguments 505
calcul de formules 504
depuis le dossier Startup 506
depuis le menu Macros 503
en contexte 313
options 488
Exemple de premire procdure Sub
dans le module 297
Exemples
Voir aussi noms des exemples
spcifiques
ajout doptions de menu 480
ajout dun menu et dune option de
menu 447, 480
ajout dune menu et dune option de
menu 447
I NDEX 581
ajout dune option de menu au menu
Dmo 447
ajout dune section Gomtrie 352
automatisation des ventes sur le
terrain 13
bulle avec poigne de contrle 138
configuration de pages 369
connexion de formes dans un
diagramme de flux 389
cration dun dessin partir de
donnes 401
cration dun groupe de cubes en 3D
122
cration dune unit dannulation
482
cration de dessins partir de
donnes 429
extraction de donnes depuis le
dessin 396
forme de piscine 251
formes dquipement rseau 17
formes de flche 19
formes de racks 17
groupe Ilot cuisine 119
itration dans des connexions 381,
382
itration dans la collection Pages 368
modification de la gomtrie des
formes 143
module de classe rpondant des
vnements 419
objet Application en Visual Basic
416, 497
personnalisation des formules dune
flche 97
plans damnagement 231, 328
positionnement des formes dans un
dessin 361
premire procdure Sub dans le
module 297
programme Bonjour tous ! 338
proprits personnalises pour une
liste de contrle de stock 147
rcupration dobjets Layer 372
redimensionnement dune flche 95
rorganisation dun bureau 10
rorganisation dun service 10
surveillance de la consommation
lectrique 22
surveillance des vnements et calcul
dun total 22
systme de scurit 14, 30
ExitScope, vnement 478
Explicite, type de donnes. Voir Types de
donnes
Explorateur dobjets 303, 304
Explorateur de dessin 65
Explorateur de projet 302, 309
fentre 296
Explorateur Windows, lancement de
Windows 30
Exportation de fichier, commande 302
Exporter un fichier, bote de dialogue
315
Extraction de donnes 11, 29, 30, 396
depuis un exemple de dessin 396
Extrmits de trait 220, 221
personnalises 227
F
Fentre de dessin de la forme de base 55
Fentre de modification dicnes 271
Fichiers
Voir aussi Documents
dplacement des modles 278
en lecture seule 57, 62
en lecture-criture 62
enregistrement 62
excutables 31, 423, 487
format dun fichier Visio 60
lecture-criture 62
ouverture 61
recherche des chemins 487
Fichiers de dessin
extraction des donnes dun modle
11
gabarit de document 52
styles par dfaut 207
utilisation des objets 318
validation des rgles dun modle 11
Fichiers de symboles, plusieurs 46
FillStyle, proprit 334
FillStyleKeepFmt, proprit 334
FilterPaths, proprit 487
FinAction, cellule 170
Fixes, grilles 233, 236
Voir aussi Grilles
Flche, formes 161
Fonctions
Voir aussi noms des fonctions
spcifiques
dans les formules 73
excution des actions 154
nouvelles 3
For, boucles
Voir aussi Count, proprit
For...Next, instruction 400
ForeignType, proprit 468
Format
cellule 202
menu 104, 126
Format de bloc de texte, section 68, 182,
203
Format de caractre, section 181
Format de remplissage, section 68, 71
Format de trait, section 68, 71
FORMAT, fonction 79, 201
Formatage
Voir aussi Styles
application 207
chanes 200
conservation 216
formes regroupes 126
occurrence des formes de base 212
protection 334
rsultats 198
rsultats cohrents 213
texte 181
FORMATEX, fonction 199, 200
Forme de base, menu 55
Forme de bulle 134
Forme non imprimable, option 465
Formes
Voir aussi noms des actions ou des
formes spcifiques, Gomtrie,
Formes de base, Formes
multiples, SmartShapes
accrochage la grille 234
affichage 70
ajout 133, 149, 174, 332, 365
ajout de poignes de contrle 132
ajout de points de connexion 174
ajout de proprits personnalises
149
alignement 237
amliorations 131
anatomie 18, 34
angles arrondis 102, 104
attributs 18
582 I NDEX
collage 169, 381, 386, 388
comportement 16, 246
composants 16
conception 260, 261
connexion 117, 172, 377, 405
copie 331
copyright 261
couleur 217, 219
couper 331
cration 15, 33, 39, 330
cubes en 3D 123
dfinition de la porte 366
dplacement 70, 88, 93, 348
dtermination des connexions 378,
379
dveloppement 18, 25
dissociation 50, 115
duplication 331
fermes 35, 41
formules 71
fusion 113, 114, 128, 144
groupes 41, 115, 116, 239
importation 44
insertion dans une page 358
interaction 472
largeur 199
liaison de donnes 391
liens dynamiques 177
limitation du texte 188
masquage 129
mise lchelle 264
mise en page automatique 243
modlisation 8
modifications 47, 331
non mise lchelle 254
optimisation 110
options de mise en page 244
ouvertes 35
performances 261
personnalisation 260
planification 260
poignes de contrle 132, 134
positionnables 161
positionnement 92, 361
positionnement sur une grille par
magntisme 233
proprits 19
protection 126
redimensionnement 88, 120, 121,
190, 191
reformatage 210
regroupes 38, 41, 116, 330
retournement 98, 101
rotation 98, 101
slection 363
styles 209, 334
suppression 331, 365
systme de coordonnes 89
test 204, 261
units de mesure 78
utilisation de boucles 400
verrouillage 94, 102
Formes 1D
Voir aussi Liens, Formes
collage 385
comparaison avec les formes 2D 158
comportement 36
conversion 159
description 157
galerie 161
points de fin 37
repositionnables 161, 162
utilisabilit 158
Formes 2D
Voir aussi Liens, Formes
accrochage la grille 234
collage 385
comparaison avec les formes 1D 158
comportement 36
conversion 159
description 157
positionnables 161, 162
utilisabilit 158
Formes dquipement rseau, exemples
17
Formes dun dessin, formes de base 54
Formes de base
Voir aussi Groupes, Formes
attribution des calques 230, 232
attribution dun nom 263, 270
attribution de calques 231
attribution de noms 262
automation des dessins 358
automatisation des dessins 17
BaseID 395
cohrence 262, 263
conception 27
copyright 53
cration 51, 52, 54, 331
cration pour les grilles 234
de document 16
fichiers daide 266
icnes 263
ID uniques 395
insertion dans une page 360
modification 55, 66, 185, 270
motifs 220
nettoyage 270
organisation sur des calques 59
paramtrage des units 235
peaufinage 259
poignes de contrle 132
proprits personnalises 148, 151
provenant dautres programmes 54
raccourcis 269
rcupration 359
reformatage 211
rgle de rapport huit 255
rutilisation 52
test 262, 263
texte 180
utilisation des calques 371
utilisation des chelles 249, 253, 254,
256, 257, 263, 265, 266
vrification des lments 263
Formes de cercle 104, 105, 107
Formes de composant
axe parent 121
cubes en 3D 125
protection 126
Formes de flche, exemple 19
Formes de membre 121, 125, 126
Formes de racks, exemples 17
Formes fusionnes
Voir aussi Combinaison de formes,
Regroupement de formes, Formes
multiples
Formes individuelles
redimensionnement 121
Formes lies
Voir aussi Collage de formes
Formes multiples
Voir aussi Combinaison de formes,
Chemins
Formes, proprits 19
FormeValide, procdure 369
Formula, proprit 345
FormulaForce, proprit 290, 347
Formulaires utilisateur 298, 301, 302
Formule de forme de base, calcul 505
I NDEX 583
Formule de style, calcul 505
Formules
Voir aussi noms des formules
spcifiques
affichage 63
associes aux arcs 103
associes aux formes 18, 27, 71, 80,
94
Automation 86
bases sur la hauteur 94
commandes apparaissant en gris
142
contrle des emplacements 88
dans la section Gomtrie 97
dans les cellules de la section
Evnement 152
dans les cellules dfinies par
lutilisateur 81
dans les cellules libelles 66
dans les dessins automatiss 341
dans les groupes 115, 116, 117
des pages 325
lments 63, 72
formules et gomtrie 87, 90
gestion des vnements 409
hrites 18, 71, 81, 126, 208, 356
identification 81
intelligentes 161, 192, 366
liens avec angle 164, 165
lisibilit 2
menus contextuels 141
modification 64, 65, 73, 209
personnalises 168
points de connexion 170
pour le dplacement des formes 93,
348
pour les arcs 109
pour les grilles 235, 236
pour les poignes de contrle 132,
133
pour les units 78, 79
protection 84, 126, 139, 203, 347
redimensionnement 121, 190
rsultats 198, 346, 347
rotation inverse 191
saisie 73
test des blocs de texte 204
Formules associes aux objets
affichage 64, 65
modification 64
Formules dvnement
description 152
liste 152
optimisation 156
simulation 153
Formules relatives aux formes 1D
en fonction de la hauteur 167
formules intelligentes 161
Fragment, mthode 366
Fragmentation, commande 42
FreeLibrary, fonction 526
FRM 302
FromCell, proprit 380
FromConnects, proprit 377
FromPart, proprit 380, 381, 382
FromSheet, proprit 378, 379, 381, 382
FullName, proprit 320
Function, procdure 300
Fusion
cration de formes 42
formes 113, 114, 126, 129, 144, 145
Fusionnes, formes 128
G
Gabarits
Voir aussi Document, gabarits,
Formes de base, Modles
ajout de nouvelles formes de base 54
autonomes 52, 211
conception 27
copyright 53
couleur 218
cration 51, 53, 54
cration de calques 231
de document 52
diffusion 485
enregistrement 62, 297
excution 261
fichier 318
fichiers daide 267
formats de fichier 60
installation 277
locaux 18
migration 507
modification 211
motifs personnaliss 220
nettoyage 271
obtention de gabarits modifiables 55
ouverture 53, 54, 57, 61, 66
peaufinage 259
rcupration 359
stockage 492
styles 213
test 262, 272, 273, 274
Gabarits de document 52
Gnrer automatiquement une icne
partir des donnes de la forme
271
Generic.cpp 512, 516
Gomtrie
formules 81
lignes 71, 91, 350
Gomtrie des formes 15, 110
commandes des menus contextuels
143
description 88
formules 87, 90
masquage 129
optimisation 110
points dancrage 136
Gomtrie, plusieurs sections 110
Gomtrie, section
Voir aussi noms des cellules
spcifiques
ajout 67, 351
chemins 88
considrations relatives aux formes
34
description 68
formes cres par fusion 113, 126
formes fusionnes 144
formules 89, 90, 97, 124
groupes 41
ligne ArcVers, cellules 106
modification des objets 47
poignes de contrle 135
remplissage des formes 128
GeometryCount, proprit 355
Gestion des erreurs 313, 502
Gestionnaire
dannulation 473, 475, 476, 479, 480,
481
dvnements 414, 472
de complments 316
GetFormulasU, mthode 493
GetIDsOfNames, mthode 516
GetObject, fonction 497
GETREF, fonction 85
GetResults, mthode 346
GetTypeInfo, mthode 516
584 I NDEX
GetTypeInfoCount, mthode 516
GETVAL, fonction 85
GetViewRect, mthode 362
GetWindowTask, proprit 500
Global, objet
dans un modle dobjet de Visio 282
description 307
rcupration 319
utilisation 306
Globalement unique, ID (GUID). Voir
GUID, ID unique
Globales, constantes
Voir aussi Constantes
Globales, variables
Voir aussi Variables
GlueTo, mthode 380, 384, 388, 518
GlueToPos, mthode 384, 388
Graphiques
fichiers 44, 45
images 44
objets 45
vectoriels 45
Grilles
affichage 233
comparaison avec les repres 237
cration 233
espacement 233
fixes 233, 236
lignes de repre 237
masquage 233
paramtrage des units de la grille
235
points 102
stockage de formules 235
variables 233, 236
Group, mthode 335
Groupe dvnements 411
Groupe Ilot cuisine, exemple 119
Grouper
commande 41, 115
Groupes
Voir aussi Collections, Formes
multiples
ajout 116, 335
appartenance 59
caractristiques 114
consquence des connexions 117
contrle du comportement 118
contrle du texte dans les formes 185
formes cres par fusion 113, 114
formules associes aux formes 116
imbriqus 119, 120
modification 48, 116
paramtrage du mode 119
protection du formatage 126
rectangles de slection 122, 242
redimensionnement 121
slection 118
test des performances 261
Groupes dobjets 38
Groupes de formes 38, 41, 116, 330
Groupes de formes de base,
comportement 38
GUID 394
Voir aussi ID unique
Guillemets 83, 85, 150, 155, 332, 345
H
Hauteur
cellules 72, 75
valeurs 70
HauteurPage, cellule 361
HAUTEURTEXTE, fonction 186, 188
HauteurTxt, cellule 181, 187, 198
HelpPaths, proprit 487
Hritage
formules 208
Hrites
donnes 356
formules 18, 71, 81, 126, 356
HLP 266, 487
Voir aussi Aide, fichiers
HPJ 266
Voir aussi Aide, fichiers
HRESULT 516
HTML Help (fichiers .chm) 266
Hub, forme 405
Hyperlinks, collection 285
I
IClassFactory2, interface 464
Icnes 55
fentre de modification 271
formes de base 56, 262, 266, 271
IconFileName, proprit 436
IConnectionPoint, protocoles 520
ID de forme 76
Voir aussi ID globalement unique, ID
unique
ID des constantes 444
ID uniques
en tant quarguments 395
gnration 393
objets Shape 394
ID. Voir GUID, ID de forme, ID unique
IDataObject, interface 336
IDE (Integrated development
environment) 293
Identification des formules 81
IDispatch, interface 511
Images
importation 44
numrises 44
Imbrication et liaison dobjet
Voir aussi Automation
Imbriqus, groupes
Voir aussi Groupes
Implements, instruction 428
Importation de fichier, commande 302
Imprimer, bote de dialogue 322
IncludesFill, proprit 322
IncludesLine, proprit 322
IncludesText, proprit 322
Indpendants, gabarits. Voir Gabarits
autonomes
Index pour les objets
vnements 532
mthodes 532
proprits 532
Indice
Voir aussi noms des formes ou des
cellules spcifiques
pages 556
rcupration de cellules 343
rcupration de formes 326
Indice dobjet 285
Indice de cellule
description 548
documents 556
formes 553
pages 556
styles 554
tabulation 557
types de ligne 557
Indice de ligne
description 548
documents 556
formes 553
pages 556
styles 554
I NDEX 585
tabulation 557
types de ligne 557
Indice de section
description 548
documents 556
formes 553
styles 554
tabulation 557
types de ligne 557
Indices de cellules. Voir Cellules, indices
Indices de couleur 217
Indices de lignes. Voir Lignes, indices
Indices de sections. Voir Section, indice
Info-bulles 133
Infos sur limage externe, section 68
Infos sur le collage, section 68, 170
Ingnieur systme 25
Insrer une ligne, commande 71, 139
Insrer une section, bote de dialogue 67
Installation
fichiers dans des dossiers 4
gabarits et modles 277
Instancing, proprit 426
Instruction 286
Intelligentes, formules. Voir Formules
Intelligents, liens. Voir Liens
Interface
contrles 301
fonctions 509, 511, 515
pointeur 511, 517
Interface utilisateur
ajout de formulaires utilisateur 301
persistance 442
Interface utilisateur personnalise
ajout 432, 445, 462
chargement 459
comparaison avec Visio 441
cration 440
description 457
enregistrement 458
fichier 457, 459
masquage 452
modification 434, 443, 456
persistance 442
porte 442
restauration 460
suppression doptions 453
utilisation 432
Interface Visio intgre 441, 453, 460
Interfaces doubles 511
Intersection
commande 43
dynamique 178
Inverser les extrmits, commande 204
Invisible, cellule 150
Invoke, mthode 516
InvokeOnMask 528
IOleUndoUnit 479
IsInScope, proprit 478
IsSet, fonction 517
IsUndoingorRedoing, proprit 476
Item
mthode 328
proprit 284
ItemAtID, proprit 436, 444
Itration
Voir aussi Count, proprit
collections 355
dans des collections et des lignes 355
dans un exemple de connexions 381,
382
exemple de la collection Pages 368
IterationMode, proprit 364
IUnknown, interface 523
IVBUndoUnit 479, 480
Ivisreg.cpp 516
Ivisreg.h 516
J
Jonction, commande 43, 127
K
Key, proprit 452
Keywords, proprit 320
Kit de dveloppement Microsoft
(Software Development Kit -
SDK) 509, 511
L
Langages de programmation 2
LaPage!EchelleDessin, formules 257
LaPage!EchellePage, formules 257
LaPage, forme 77
Largeur
cellules 75, 76, 78
formules 89, 90, 125
valeurs 70
LargeurPage, cellule 361
LARGEURTEXTE, fonction 186, 188
LargeurTxt, cellule 181, 195, 198
Layer, objet
identification 372
rcupration 372
LayerCount, proprit 372
Layers
collection 371
proprit 371
Lecture seule, fichiers 320
LesDonnes, cellule 153
LeTexte, cellule 153
Liaison
prcoce 511
prliminaire 507
tardive 511
Liaison de formes 1D, points de
connexion 172
Liaison de formes 2D, points de
connexion 172
Liaison des enregistrements de forme
152
Libells 150
Voir aussi Blocs de texte
Licence
dexcution 464
de cration 469
Lien dynamique
forme 161, 177, 178
outil 161
Lien S 161
Lien, outil 162
LienInscable, cellule 170
Liens
Voir aussi Formes 1D, Poignes de
contrle, Collage
Assistant SmartShape 166
avec angle 164, 165
collage 170
comportement 246
cration 162, 163, 164
dynamiques 165, 246
options de mise en page 244
repositionnables 161, 162, 163
Liens hypertexte, section 68
Lier les formes, commande 162
Lignes
Voir aussi noms des lignes spcifiques
ajout 349
boucle ditration 355
infinies 237
personnalises 393
586 I NDEX
suppression 353
suppression impossible 350
utilisation 349
LineStyle, proprit 334
LineStyleKeepFmt, proprit 334
Lisezmoi.txt 509, 524
Liste de variables, proprit 150
Liste des objets StatusBar 439
Liste fixe, proprit 150
LoadFromFile, mthode 459
LoadLibrary, fonction 526
LOC, fonction. Voir Coordonnes locales
Local
formatage 206
nom 75, 493
Local, gabarit. Voir Document, gabarit
Locales
formules 71, 81
variables 284
Locales, coordonnes
Voir aussi Coordonnes locales,
coordonnes
LockCalcWH, cellule 134
LOCVERSPAR, formules 170
M
Macros 31
Voir aussi noms des macros
spcifiques
bote de dialogue 311, 503
description 311
excution 311, 488, 503
menu 312
suppression 454, 455
Magntisme
sur une grille 233
vers le rectangle de slection 102
Magntisme et collage, bote de dialogue
171, 173
Magntisme et collage, commande 41
Masquer les accoudoirs, commande
Voir aussi Afficher les accoudoirs,
commande
145
MasquerTexte, cellule 203
Master, objet 282
ajout de calques 373
formules 341, 342
insertion dans une page 358, 360
rcupration 359
suppression de calques 373
Masters
collection 286, 359
proprit 359
Matriaux de rfrence
CD-ROM 4
Web 5
MAX, fonction 191
Membres dans les groupes 119
Membres de, liste 303
Menu
cellules 140
objet 436
MenuItem, objet 436
MenuItems, collection 285
Menus 433
ajout 445
collection 285
contextuels 138, 139, 140, 144
raccourcis 490
Menus. Voir noms des menus spcifiques
MenuSet
collection 285
objet 436, 444
Message daide, champ 270
Message, cellule 140, 344, 393
Mtafichiers, importation 45, 46
Mthodes
Voir aussi noms des mthodes
spcifiques
appel 293
dclaration de variables 289
indexation par objet 532
utilisation 291
valeurs renvoyes 289
Mettre lchelle avec le groupe, option
120
Mettre en page les formes, commande
163, 243, 244, 246
Micrografx Designer (.drw) 45
Microsoft Access 152
Microsoft Excel 284
Microsoft Office 293
Microsoft SQL Server 152
Microsoft Visual Basic 3
Microsoft Windows 215
Mid, fonction (Visual Basic) 506
MIN, fonction 191
MiniHelp, proprit 451
Mis lchelle, dessins
Voir aussi Echelles de dessin
Mise lchelle, option 221, 223
Mise en page
bote de dialogue 89
section 69
Mise en page des formes, section 69
Modle dobjet Visio 280, 282, 284, 377,
434, 435
Voir aussi noms des objets spcifiques
Modles
Voir aussi Documents, Gabarits
avantages 18
cohrence 213
conception 28, 29
contenant plusieurs pages 59
copyright 53
couleur 218
cration 51, 52, 57, 501
dplacement des fichiers 277
diffusion 485
lments 56
enregistrement 57, 297
excution 261
fichier 318
formes positionnables 163
grilles 233, 235
installation 277
migration 507
mise lchelle 57, 253
nettoyage 273
ouverture 61
peaufinage 259
repres 237
stockage 492
styles 213
suppression 273
test 274, 276
Modlisation laide de Visio
description 8
exemples issus de la ralit 13
validation 11
ModeRedim, cellule 119, 120
ModeSlection, cellule 119
Modification de la gomtrie des formes,
exemple 143
Modifier la forme de base, commande
56, 66, 232
Modifier le motif, commande 221
Modifier le texte du groupe, option 185
Modifier, menu contextuel 55
I NDEX 587
Modules 298, 299, 300, 302
Modules de classe
ajout de procdures 300
code 417
cration doccurrences 418
description 298
exemple rpondant des
vnements 419
gestion des vnements 417
insertion 299
objet ThisDocument 294
transfert de fichiers 302
Mon_prog.exe 154
Montage
cellules 81, 83
section 69, 81, 83, 124
Mosaque, commande 70
MotifRempl, cellule 220
Motifs de remplissage 222
Motifs de trait
couleurs 227
option de mise lchelle 226
Motifs en mosaque, conception 223
Motifs personnaliss
cration 220, 221
description 220
hrits 220, 244
icnes 221
traits 225
MotifTrait, cellule 220
MseAJourRectSl, cellule 137, 242
MsgBox, instruction 300
Multiformes 113, 126
Mur, forme 161
MyAddon.cpp 524
N
Name, proprit 320, 322, 328
NameID, proprit 328
NameU, proprit 493
New, mot-cl 481
NewBaseID, proprit 395
No Style, style 214
NOERROR, rsultat 516
Noeud, formes 405
NoFill, cellule 128
NoLine, cellule 128
Nom universel 75, 493
Nombre-unit, paires 201
Nombres 78, 396
Non priodiques, splines. Voir Splines
NON, fonction 145
NoSnap, cellules 176
Nouveau calque, bote de dialogue 232
Nouveau gabarit, commande 53
Nouvelle forme de base, bote de
dialogue 55
Nouvelles fonctions 3
Nudge, sous-routine 348
Nudge.exe 348
Null, chane 320, 323, 346, 394, 492, 500
Numrique, proprit 150
Numros
Voir aussi Constantes, Units de
mesure, Variables
NURBS 111
Nonuniform rational B-spline 111
O
Objet Forme de base
copyright 53
formules 63, 64, 65
Objet rcepteur 521, 523
Objet, rfrences
Voir aussi noms des objets ou des
collections spcifiques,
Rfrences
Objets
Voir aussi noms des objets spcifiques
collage 385
dans les collections 282
dans les groupes 38
dclaration 516
dplacement des formules 93
emplacement 88
indexation alphabtique 532
libration 287
proprit Error 314
proprit par dfaut 290
proprits 284
proprits par dfaut 20
Objets de Visio, types 284
Objets relatifs aux acclrateurs, liste
437
Objets relatifs aux barres dtat, liste 439
Objets relatifs aux menus, liste 435
Objets, variables 283, 284, 289
Voir aussi noms des variables
spcifiques
ObjType, cellule 162
Occurrence de lapplication Visio
dans un modle dobjet de Visio 282
Occurrences de formes de base
Voir aussi Formes de base
attribution des calques 231
comportement 17
cration 52
cration de calques 231
reformatage 212
ODBC (Open Database Connectivity)
30, 152, 407
OLE 282
OLE, Automation. Voir Automation
OLEObjects, collection 468
On Error, instruction 313, 502
OneD, proprit 396
OnNextAdd, procdure 480
Open, mthode 319
OpenEx, mthode 319
Oprateurs 74
Voir aussi noms des oprateurs
spcifiques
Oprateurs arithmtiques 74
Oprateurs logiques 74
Voir aussi Constantes
Oprateurs mathmatiques 73
Voir aussi symboles des oprateurs
spcifiques
Oprations
commande 42
sous-menu 220, 244
Options de menu 445, 447
Oracle SQL Server 152
OrderInfo, tableau 398, 400
Ordre
valuation (pour les vnements) 75
pages 231, 326, 368
priorit dans les formules 74
Organigrammes, gabarit 385
Outils de dessin
Arc 40
Crayon 40
description 39
Dessin main leve 40
Ellipse 40
Rectangle 40
Trait 40
Ouverture de dessins 57
Ouvrir Grouper, commande 49
Ouvrir un fichier, bote de dialogue 274
588 I NDEX
Ouvrir un gabarit, bote de dialogue 53,
66, 211, 336
Ouvrir un gabarit, commande 66
OUVRIRFENFEUILLE( ), fonction 154
OUVRIRFENTEXTE( ), fonction 154
OUVRIRFICHIER, fonction 154
P
Page active 318
Page de dessin, disposition en mosaque
70
Page, coordonnes
Voir aussi Coordonnes
Page, feuille. Voir LaPage, forme
Page, objet
Voir aussi LaPage, forme
ajout de calques 373
dans le modle Visio 317
dans les dessins 358
dans un modle de Visio 282
description 324
formules 341, 342
rcupration 324
suppression de calques 373
Pages
ajout 325
ajout de proprits personnalises
149, 393
analyse des connexions 381
collection 286, 324
cration dune grille 233
cration de calques 231
enregistrement 323
formes de hub 405
impression 322
mise lchelle des pages 253
modification des formules 65
modification des paramtres 370
options de mise en page 244
organisation des calques 59
prsentation 58
proprit 284
repres 237
Pages de dessin
arrangement des formes 229
arrire-plans 367
grilles 233
identification des calques 371
modification des objets 65
modification des paramtres 370
rfrences de cellule 77
reformatage des formes 210
repres 237
styles 205
PageSheet, proprit 325, 342, 370
PagIndex 504
Paires nombre/unit 78, 80
Palette de couleurs 217, 218
bote de dialogue 217
commande 218
Panneau de signalisation routire,
forme 185
Paragraphe, section 69, 182
Paramtres du mode de
redimensionnement 120
Paramtres du mode de slection 119
Paramtriques, formes 15
Parcourir les modles, bote de dialogue
57
Parent, coordonnes
Voir aussi Coordonnes
PasDplacEnfants, cellules 118
PasPoignCtl, cellule 137
PasRectSl, cellule 243
Paste, mthode 331
Path, proprit 320
Persistable, proprit 424
Persistance de linterface utilisateur 442
Persistent, proprit 424
PersistsEvents, proprit 424
Personnalisation des formules dune
flche, exemple 97
Personnalises, formules
Voir aussi Formules
Personnalises, proprits. Voir
Proprits personnalises
Personnaliser le texte de la forme,
option 184
Personnaliser, bote de dialogue 439
PESANTEUR, fonction 191
Pesanteur, formules 192, 193
Pile
dannulation 475
de rtablissement 475
Piscine, exemple de forme 251
Plan damnagement, exemples 231, 328
PNT, fonction 530
Voir aussi LOC, fonction,
Coordonnes locales
Poignes
de slection 37, 71
de verrouillage 71
sur les formes 36
Poignes de contrle
Voir aussi Liens, Section Contrles
axes du texte 184
collage de paires de cellules 386
comportement 137
description 133
formes 132
formes de base 132
paramtres 137
rfrences de cellule 134
sur les formes 37
Point de connexion, outil 247
Point de contrle pour les arcs 105
Pointeur dobjet, arguments 518
Points dancrage 136
Voir aussi Poignes de contrle
Points de connexion
Voir aussi Collage
attribution dun nom 176
collage 380, 385
cration 175
description 172
modification de la direction 247
section 69, 76
sur les lignes de la grille 102
types 173
vecteurs 173
Points de contrle, section 37, 133
Points de dpart 158
Points de fin 37, 158, 168
Points de fin 1D, section 69
Voir aussi Points de fin
Points de repre
collage 387
connexions 380
cration 238
description 237
modification 238
Points zro 90
Police, section 182
Polices
formules de redimensionnement 191
redimensionnement 186, 189
redimensionnement avec les formes
190
TrueType 215
Portable, code
I NDEX 589
Voir aussi Code
Porte des procdures 300
Positionnement de formes dans un
dessin, exemple 361
Premier plan, pages 367
PreserveMembersFlag, argument 373
Print, mthode 322
Procdures
dnomination 300
prives 300
publiques 300
types 300
Procdures (exemples), InitWith 23
Programmation en Visual Basic pour
Visio 280, 293
Programmation pour Visio 293
Voir aussi noms des langages de
programmation spcifiques
Programmation Visual Basic pour
application Visio 279
Programmation, erreurs. Voir Erreurs
Programmes
Voir aussi noms des langages de
programmation spcifiques,
Code
configuration du code 405
copie de Visio 496
cration 384, 485
dans Automation 20
distribution 491, 492
laboration du code 507
exportation de donnes 400
gestion des erreurs 502
gestion des vnements 409
importation de formes 44
informations de copyright 261
installation 486
interaction 20, 500
interprtation des commandes 503
liaison 490
migration 507
rdaction 418, 495
utilisation des classes wrapper 512
autonomes 31
Programmes complmentaires
action annulable 473
cration de domaine dannulation
477
dclaration 527
enregistrement 527
excution 529
utilisation du gestionnaire
dannulation 476
Programmes dinstallation inclus dans
les solutions 4
Projet/Bibliothque, zone 303, 305
Property, procdure 300
Proportionnel, redimensionnement.
Voir Redimensionnement
Proprit dune option, paramtrage
451
Proprit des cellules
rcupration 290
Read-only, proprit 290
Proprits
Voir aussi noms des proprits
spcifiques, Proprits
personnalises
bote de dialogue 149
en lecture/criture 290
fentre 295
indexation par objet 532
par dfaut des objets 290
rcupration 396
rcupration des proprits des
cellules 290
rfrences aux objets 284
stockage 396
utilisation 289
Proprits dambiance 465
Proprits dimage, section 69
Proprits de doc, section 69
Proprits de groupe, section 69, 119
Proprits de la forme de base, bote de
dialogue 222
Proprits de la page, section 69
Proprits de raccourci de la forme de
base, bote de dialogue 269
Proprits de style, section 69
Proprits des calques, bote de dialogue
231, 371, 374
Proprits des formes 146
Proprits personnalises 147
affichage 202
ajout 151, 391, 393
bote de dialogue 202
cellules 344
dfinition 148
description 147
fentre 148, 149
formats 150
liaison de donnes 151
pour une liste de contrle de stock,
exemple 147
rcupration de cellules 344
section 69
types 150
utilisation 147
Protection
Voir aussi PROTECTION, fonction
bote de dialogue 111
caractristiques de la forme par
verrouillage 111
cellule 71
code du programme 316
contre la modification du texte 185
contrles 466
fichiers en lecture seule 54
formatage des groupes 126
formatage local 334
formats locaux 216
formes 216
formules 84, 347
largeur des blocs de texte 187
modification des groupes 116
proprits gomtriques des formes
34
redimensionnement des formes 120
section 69
styles 216
type de ligne 108
valeurs du texte 203
Protection des formes 111, 126, 257
contre les mises lchelle 257
dplacement impossible 94
empchement de tout retournement
102
PROTECTION, fonction 84, 94, 112,
126, 148, 188, 203, 216, 290, 347
Voir aussi Verrouillage, Protection
Protger le document, bote de dialogue
466
Q
QueryInterface, mthode 516
Quit, mthode 497
R
Read-only, proprit 396
590 I NDEX
Rcepteur dvnement. Voir Objet
rcepteur
Rcepteur, objet 420, 422, 425, 428
Rcepteurs de notifications 425, 427
Voir aussi Objet rcepteur
Rechercher texte, case 303
Rectangle
formes 40, 103
outil 40
Rectangles de slection
attraction vers la grille 240
avec les formes 241, 242, 243
cubes en 3D 123
mise jour 137
personnalisation 242
Rcupration dobjets 284
Voir aussi noms des objets spcifiques
Rcupration dobjets Layer, exemple
372
Rcupration dun objet Cell
formes 387
options 342
par indice 343
par ligne 343
par nom 343
par section 343
Rcupration de formes
par ID 328
par le nom 326
par les indices 326
par type de proprit 328
Redimensionnement
laide de coordonnes 89
comportement du groupe 119
courbures des arcs 105
dans un sens uniquement 121
dimensions personnalises 191
en fonction de la valeur du texte 189
formes 88, 120
formules personnalises 125
protection des proportions 95
protection du texte 187
quantit de texte 188
Redimensionnement dune flche,
exemple 95
Redisposer les pages, bote de dialogue
368
Rfrence de ShapeSheet 7
Rfrence de Visio Automation 3
Rfrences
Voir aussi Cellule, rfrences, Objet,
rfrences
bibliothque Visio 507
chec 517
migration 507
non valides 289
objets 517
Rfrences aux cellules dune forme 76
Rfrences aux objets
collections 285
concatnation 288
dans un modle dobjet de Visio 284
libration 283
limitation de la porte 289
rcupration 283
variable objet 289
Rfrences aux objets non valides,
erreurs 289
Rfrences dobjet, renvoi de valeurs 517
Rfrences de cellule
dautres formes 76
au sein de la mme forme 76
collage 388
dans les feuilles de calcul ShapeSheet
75
formules 77
poignes de contrle 134
proprits des formes 19
Rfrences disponibles, liste 305, 507
Rgle de rapport huit 255
Rgle et grille, section 69
Rgles 89, 233, 238
Rgles et grille
bote de dialogue 233
formules 234
Release
appels 512
mthode 516
Remarques concernant la conception
261
Remove, mthode 373
Remplissage des formes 41, 128
RemplPremPlan, cellule 78, 79, 219
Renvoi de valeurs
Voir aussi noms des proprits ou des
mthodes spcifiques
Rorganisation dun bureau, exemple 10
Rorganisation dun service, exemple 10
Repres
affichage 239
collage 387
connexions 380
cration 238
dans les formes regroupes 239
dsactivation du magntisme 239
description 237
lignes de repre 237
manipulation 238
masquage 239
positionnement 238
rotation dobjets 239
slection 238
Repositionner seulement, option 120
Result, proprit 346, 347
Rsultats
remplacement de formules 347
utilisation des oprations sur les
formes 42
ResultInt, proprit 346, 347
ResultIU, proprit 346, 347
ResultStr, proprit 346
Rsum, onglet 274
Rtablissement dune action 473
Retirer les calques non rfrencs,
option 231
Retournement
consquences sur les coordonnes 99
empchement 102
formes 98
Retournement horizontal et
Retournement vertical,
commandes 99
RetournementX et RetournementY,
cellules 72, 98, 194
Rotation
bloc de texte 191
dans la bote de dialogue Protection
102
empchement 102
formes 98, 100
formes 1D 37
formes 2D 37
outil 37, 100, 101
pages 100
RouteStyle, cellule 163
RowCount, proprit 355
RowsCellCount, proprit 355
RUNADDON, fonction 154, 490, 504,
505
I NDEX 591
RUNADDONWARGS, fonction 154,
490, 505
RVB, valeurs de couleur 219
S
Sauvegarde de donnes
stockage 396
Save, mthode 323
SaveAs, mthode 323
Saved, proprit 320, 323
SaveToFile, mthode 458
Secteur, forme 161
Section Rgle et grille 69
Section, commande 66
Sections. Voir noms des sections
spcifiques
Sections Gomtrie, plusieurs
Voir aussi Chemins
Sections, bote de dialogue
affichage 67
ajout 67, 349
suppression 353
utilisation 349
Segments 354
Segments de trait
conversion 108
modification 108
Select, mthode 365
SelectAll, mthode 365
Selection, objet 282, 335, 363, 364, 365,
366
Slection, poignes 386
Selection, proprit 364
Shape
proprits 284
Shape, objet
ajout de lignes 349
ajout de lignes personnalises 393
ajout de sections 349
analyse des connexions 378
attribution de calques 373
dans le modle Visio 317
dans les fentres 364
dans un modle Visio 282
description 400
dslection 365
formules 341, 342
ID unique 394
membre dun groupe 330
modification 354
proprits 284, 289, 328, 332, 393
rcupration 326
rsultats des oprations 42
slection 363, 365
suppression de calques 373
utilisation 366
ShapeAdded, vnement 24, 407, 414,
482
Shapes, collection 286, 326, 330, 400
Shapes, proprit 284
ShapesDeleted, vnement 407
ShapeSheet
fentre 15, 18, 45
feuilles de calcul 15
formules 15, 18, 78, 147
rfrences de cellule 75
sections 67
ShapeSheet, fentre 45, 67, 70, 134, 181
affichage 64, 66
modification 64, 65, 72
ShowInMenu, macro 312
ShowPageConnections, macro 381, 382
Signe gal en prfixe des formules
ShapeSheet 83
Site Web de Visio 5
SmartShape, Assistant 166, 183, 190,
192, 193, 194, 198
SmartShapes, symboles 18
Solutions
chemins 487
diffusion 485
distribution 491
dossiers dinstallation 487
dossiers de fichier 487
excution sur dautres systmes 261
installation 486
intgration 30, 391, 407
migration 507
peaufinage 259
stockage 492
Visio 1
Sommets
chemins 88
coordonnes x et y 89
description 87
effets du dplacement des formes 37
fermeture 41
gomtrie des formes 88
points de dpart et de fin 159
pour les cubes en 3D 122, 123
Sons, lecture 155
Source dvnement 411
Source, code 494
Voir aussi noms des langages de
programmation spcifiques,
Code
SourceDpt, cellule 116
Soustraction, commande 42
Spcial, bote de dialogue 467
Splines 35, 40
Standard, barre doutils 39
Startup, dossier 506
StartupPaths, proprit 487, 500
State, proprit 436
StatusBar, objet 444
StatusBarItem, objet 439
StatusBarItems, collection 285
StatusBars, collection 285
StencilPaths, proprit 487
StrComp, fonction 506
Style dinteraction, option 159
Style de remplissage, zone 207
Style de trait, zone 207
Style du texte, zone 207
Style, bote de dialogue 207, 214
Style, commande 206
Style, objet
formules 341, 342
Style, proprit 436
StyleDvTraitLien, cellule 245
StyleKeepFmt, proprit 334
StylePositionForme, cellule 163, 170,
245
Styles 207
Voir aussi Formatage
attributs 206
cohrence 213
collection 286, 321
conseils 209
copie 209
couleur 217
cration 208, 322
dans le texte 206
dans les gabarits 211, 213
dans les modles 28, 213
dfinition 206, 215
dnomination 214
description 206
gestion 205
hrits 208
592 I NDEX
identification 334
modification 65, 207, 209
par dfaut 207
pour les angles 104
prsentation 206
proprit 321, 334
remplissage 206
suppression 213
trait 206
traits 206
Sub, procdure 300
Subject, proprit 320
SUCCEEDED, rsultat 516
Sujet dun vnement 411
Superposition de formes 42
Supprimer la ligne, commande 71
Supprimer, action 315
Surveillance de la consommation
lectrique, exemple 22
Symboles, bibliothques 46
Syntaxe des rfrences de cellule 77
SysFreeString 518, 519
Systme de scurit, exemple 14, 30
T
Tableaux 361, 398
Voir aussi Collections
Tabulations
dfinition 465
section 69, 182
Taille de police proportionnelle, option
190
Taille et position, fentre 100
TargetArgs, proprit 427
TemplatePaths, proprit 487, 501
Test
aide relative aux formes 268
dans la bote de dialogue Ouvrir un
gabarit 336
chelles de taille identique 264
chelles des formes de base 263
chelles diffrentes 265
fentres sur diffrents systmes 274
formes 262, 266, 268
formules personnalises 261
gabarits 272
gabarits en lecture seule 273
gestion des erreurs 502
informations de la bote de dialogue
Ouvrir un fichier 274
liste de contrle de la cohrence 263
modles 274, 276
modles en lecture seule 276
valeurs renvoyes 314
vrification dobjets 314
Text, proprit 332, 396
TextChanged, vnement 407
Texte
ajout 332
attributs 181
bote de dialogue 181
comportement 179
conception 179
dans les champs de donnes 333
dans les groupes 185
dimensionnement 188, 198
formatage 181, 201
formules 187, 188, 198, 203
outil 185
polices 182
positionnement 183, 192
protection 139
redimensionnement 189, 191
rotation 191, 192, 194
sortie 200
styles 206
Texte droit, formules 192, 194
TextStyle, proprit 334
TextStyleKeepFmt, proprit 334
ThisDocument, objet 294, 299, 306, 309,
412, 413, 414
Title, proprit 320
ToCell, proprit 380
ToolbarItems, collection 439
Toolbars, collection 285
ToolbarSet, objet 439, 444
ToolbarSets, collection 285
ToPart, proprit 380, 381, 382
ToSheet, proprit 378, 379, 381, 382
Tous les styles, liste 207
Trait
bote de dialogue 228
outil 40
Trait 1D 159
Transformation de la forme, section 69,
90, 92, 120, 188
Voir aussi noms des cellules
spcifiques
Transformation de texte, section 69, 181
Transistor, symbole 101
Transportables, dessins 16
TSL, valeurs de couleur 219
Type, proprit 328
Types dobjet dans les bibliothques 306
Types de donnes 396
Types, bibliothques
Voir aussi Bibliothques
U
UIObject, objet
liste 432
modification 443
rcupration 434
Dissociation
Voir aussi Groupes
Unidimensionnelles, formes. Voir
Formes 1D
Union
commande 42, 127
mthode 366
Unique, ID
Voir aussi ID globalement unique, ID
de forme
UniqueID, proprit 328, 394, 395
Unit dannulation 473, 479, 480, 481,
482
Units angulaires 78
Units de dessin 78, 249, 250, 253
Units de mesure 72, 78, 79, 83, 235
Voir aussi Valeurs
Units de mesure, paramtrage 253
Units de page 78, 79, 250
Units multidimensionnelles 79
UnitSize, procdure 480
UnitTypeCLSID, procdure 480
UnitTypeLong, procdure 480
UpdateUI, mthode 456
URL du site Web de Visio 5
USE, fonction 220
Util.Message, cellule 83
Utilisabilit
comportement des formes 260
conception 26, 260
conventions de noms 262
chelles de dessin 251
formes de base 262
Utilisateur, actions. Voir noms des
actions spcifiques
Utilisateur, interface
Voir aussi Interfaces, UIObject, objet
I NDEX 593
Utiliser les paramtres du groupe,
option 120
V
V2LMSG_ENUMADDONS, message
526
V2LMSG_ISAOENABLED, message
528
V2LMSG_KILLSESSION, message 530
V2LMSG_RUN, message 529
Valeur 128 bits 393
Valeur, cellule 344, 393
Valeurs
Voir aussi Formules, Numros
angle 71, 199
boolennes 72, 396
cellules ObjType 162
consquence de la rotation 100
consquences du retournement 99
dclaration de variables 289
modification 70
renvoyes 289, 314
renvoyes par les mthodes Visio 516
units multidimensionnelles 79
Vannes, formes 167
Vao.h 527
VAO_ENABLEALWAYS 527
VAO_ENABLEDYNAMIC 528
VAO_INVOKE_LAUNCH 528
VAO_NEEDSDOC 528
vaoGetObject, fonction 499, 516
Voir aussi GetObject, fonction
vaoGetObjectWrap, fonction 512, 516
VAOREGSTRUCT 528
VAOUtil_DefVisMainProc 526
VAOUtil_SendEndSession 530
VAOV2LSTRUCT 529
Variable
objets 287
Variable objet 289
Variable, grilles
Voir aussi Grilles
Variables
Voir aussi noms des variables dobjet
spcifiques
au niveau du module 284
dclaration 300
dfinition 400
description des objets 283
doubles 346, 396
formules pour les blocs de texte 187
globales 284
grilles 233
locales 300
non valides 287
objets 287, 415, 416
statiques 300
type de donnes 289
VARIANT, arguments 519
Variant, type de donnes dans Visual
Basic 289
VBA. Voir Visual Basic pour
Applications
VDLLmain.c 526
Vecteurs diffrents de zro 173
Vectoriels, graphiques 44
VerrCalcLH, cellule 108, 123, 137
VerrDplacX et VerrDplacY, cellules 94
VerrFormat, cellule 104, 126, 203, 216
VerrGroupe, cellule 116
VerrHauteur, cellule 120, 165
VerrLargeur, cellule 112, 120
VerrModifTexte, cellule 203
VerrModifTexte, commande 141, 142
VerrModifVtx, cellule 165
Verrouillage
Voir aussi GUARD, fonction,
Protection
cellules 94
comportement des formes 111
format des groupes 126
formatage des formes 126
formes 94, 102
pour une caractristique de forme
112
projet 316
texte 139
Verrouiller le projet pour laffichage,
option 316
Verrouiller le texte, commande 139, 141,
142
VerrPivoter, cellule 94, 102
Virgule 497
visActCodeRunAddon, constante 423
visBegin, constante 379
visCentimeters, constante 346
visConnectionPoint, constante 379, 380
Visconst.bas 303
visControlPoint, constante 379, 380
visDeselect, constante 365
visDrawingUnits, constante 346
visEnd, constante 379
visError, constante 499
VisEventProc, mthode 425, 427, 521
visEvtAdd, constante 420, 421, 422
visEvtIDMostRecent, constante 422
visEvtPage, constante 421
visEvtShape, constante 421
visFieldCodes, constante 333
visGetGUID, constante 328, 394
visGuideX et visGuide Y, constantes 379
Visio Automation, Rfrence 3
Visio Developer Forum 5
Visio, bibliothques (.vsl)
Voir aussi Bibliothques
Visio, modle dobjet 279
Visio, site Web 5
Visio.h 512, 516
VisioLibMain, fonction 526
Visiwrap.h 512
visLayerName, constante 374
visLayerVisible, constante 374
visLeftEdge, constante 379
visOK, constante 499
visPageUnits, constante 346
Visreg.bas 353
visRightEdge, constante 379
visRowVertex, constante 353
visSectionCharacter, constante 350, 353
visSectionFirstComponent, constante
351
visSectionLastComponent, constante
351
visSectionObj, constante 353
visSectionParagraph, constante 350, 353
visSectionTab, constante 350, 353
visSectionTextField, constante 350, 353
visSelect, constante 365
visTagArcTo, constante 350, 352
visTagComponent, constante 350, 352
visTagEllipse, constante 350, 352
visTagEllipticalArcTo, constante 350,
352
visTagInfiniteLine, constante 350, 352
visTagLineTo, constante 349, 350, 352
visTagMoveTo, constante 350, 352
visTagNURBSTo, constante 350, 352
visTagPolylineTo, constante 350, 352
visTagSplineBeg, constante 350, 352
visTagSplineSpan, constante 350, 352
594 I NDEX
visTypeDoc, constante 328
visTypeForeignObject, constante 328
visTypeGroup, constante 328
visTypePage, constante 328
visTypeShape, constante 328
Visual Basic
Voir aussi noms des objets spcifiques
contrles 469
donnes Variant 289
fonctions Error 314
gestion des erreurs 502
libration dobjets 287
migration 507
objets rcepteur 426
protection du code 316
rapports de dpassement 421
rdaction de code pour des
vnements 411
Visual Basic IDE 293
Visual Basic pour Applications (VBA)
Voir aussi noms des fonctions
spcifiques
code pour les vnements 411
comparaison par rapport
Automation 20
cration de projets 298
dveloppement 293
diffusion du code 28, 492
environnement 294
excution doccurrences 306
excution du code 311
exportation de fichiers 302
finalisation du projet 315
gestion 315
gestion des vnements 409
Gestionnaire de complments 316
importation de fichiers 302
insertion dobjets personnaliss 299
macros 31
migration depuis Visual Basic 507
modules de classe 294
objets rcepteur 426
personnalisation 295
rapports de dpassement 421
rdaction 495
utilisation
explorateur dobjets 304
visUIObjSetIcon, constante 444
visUIObjSetinPlace, constante 444
visUIObjSetNoDocument, constante
444
visUIObjSetPrintPreview, constante 444
visUIObjSetShapeSheet, constante 444
visUIObjSetStencil, constante 444
VLIBUTL_hModule 526
Volet des dtails, utilisation 303
VSD 61
VSL 31, 297, 487, 524, 525, 526, 529
Voir aussi Fichiers de dessin,
Bibliothques
VSS 52, 61, 297, 487
Voir aussi Bibliothques, Gabarits
VST 57, 61, 297, 487
Voir aussi Modles
VSU 432, 458
VSW 61
Voir aussi Espace de travail, listes
VVariant, classe daide 512, 519
W
While, boucles. Voir Count, proprit
Window, objet 282, 319, 335, 364, 365
WindowHandle32, proprit 500
Windows DLL 31
WindowsHandle32, proprit 525
WinHelp (fichiers .hlp) 266
WithEvents (mot-cl VBA) 409, 411,
415
Wrapper, classes 512
X
X et Y, cellules 97
X, Y coordonnes 175
Voir aussi Coordonnes
X, Y, coordonnes 89, 106, 110
Z
Zone de texte, contrle 301
Zone largeur/hauteur 180
Zones dalignement
personnalisation 226

Vous aimerez peut-être aussi