visio 2003 programming
DESCRIPTION
Visio 2003 Programming. Rel. Stefano Castiglioni. Sommario. Scenari di soluzione con Visio 2003 Automazione e oggetti Il modello ad oggetti di Visio Visio 2003 e il VBA Disegno con l’Automazione Integrazione di dati in una soluzione Visio Interoperabilità di Visio attraverso l’ XML - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/1.jpg)
21/04/2321/04/23
![Page 2: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/2.jpg)
21/04/2321/04/23
Visio 2003Visio 2003ProgrammingProgramming
Rel. Stefano CastiglioniRel. Stefano Castiglioni
![Page 3: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/3.jpg)
21/04/2321/04/23
SommarioSommario
• Scenari di soluzione con Visio 2003Scenari di soluzione con Visio 2003• Automazione e oggettiAutomazione e oggetti• Il modello ad oggetti di Visio Il modello ad oggetti di Visio • Visio 2003 e il VBAVisio 2003 e il VBA• Disegno con l’AutomazioneDisegno con l’Automazione• Integrazione di dati in una soluzione VisioIntegrazione di dati in una soluzione Visio• Interoperabilità di Visio attraverso l’ XML Interoperabilità di Visio attraverso l’ XML • Installazione di una soluzione VisioInstallazione di una soluzione Visio• Visio 2003 e l’ambiente .NETVisio 2003 e l’ambiente .NET• Creazione di un componente COMCreazione di un componente COM
![Page 4: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/4.jpg)
21/04/2321/04/23
Scenari di soluzione con Visio 2003Scenari di soluzione con Visio 2003EXCEL VISIO
Sales
VISIO
VBA, VB6 C++Add-on DATABASE ORDER
Designer
VISIO
VBA, VB6 C++Add-on
BusinessProcess
Users
Application BusinessProcess
New
Edit
DATABASE
Human rersource
“Build and update organization chart”
“Product configuration and order creation..”
“Monitoring manifacturing or
business process”
“Diagram as a part of enterprise application
(ActiveX Visio Drawing Control)”
![Page 5: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/5.jpg)
21/04/2321/04/23
Soluzioni VisioSoluzioni Visio
• Una Una soluzione Visiosoluzione Visio è una combinazione di è una combinazione di forme, di solito sviluppate ad hoc, e modelli di forme, di solito sviluppate ad hoc, e modelli di disegno in cui disporre e usare le forme.disegno in cui disporre e usare le forme.
• Una soluzione di solito include Una soluzione di solito include stencil stencil di forme di forme chiamate chiamate mastermaster..
• La programmazione (VBA, VB6 , C++ ..) La programmazione (VBA, VB6 , C++ ..) permette di creare e analizzare il disegno o permette di creare e analizzare il disegno o recuperare informazioni dallo stesso per poi recuperare informazioni dallo stesso per poi trasferirle esternamente a fonti di dati esterne trasferirle esternamente a fonti di dati esterne (database)(database)
![Page 6: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/6.jpg)
21/04/2321/04/23
La forma e il suo shapesheetLa forma e il suo shapesheet
• Shapesheet = SpreadsheetShapesheet = Spreadsheet
• Automazione della forma attraverso le Automazione della forma attraverso le formuleformule= GETVAL(PinX) + GETVAL(PinY) + Width = GETVAL(PinX) + GETVAL(PinY) + Width
="DATA:"&FORMAT(NOW(),"dd-MM-yy")="DATA:"&FORMAT(NOW(),"dd-MM-yy")
=“AREA:”&Width*Height=“AREA:”&Width*Height
=GUARD(Pinx)=GUARD(Pinx)
![Page 7: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/7.jpg)
21/04/2321/04/23
Demo1Demo1
![Page 8: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/8.jpg)
21/04/2321/04/23
Demo2Demo2
![Page 9: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/9.jpg)
21/04/2321/04/23
Sezione EventsSezione Events
• La sezione Events dello shapesheetLa sezione Events dello shapesheet
CellaCella Evento chiamato dalla formulaEvento chiamato dalla formula
TheText TheText Modifica o formattazione del testo Modifica o formattazione del testo
EventXFMod EventXFMod Posizione,dimensioni o orientamento della Posizione,dimensioni o orientamento della pagina modificatipagina modificati
EventDblClick EventDblClick Doppio click sulla formaDoppio click sulla forma
EventDrop EventDrop Copia di una forma o trascinamento di un Copia di una forma o trascinamento di un mastermaster
![Page 10: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/10.jpg)
21/04/2321/04/23
Demo3Demo3
![Page 11: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/11.jpg)
21/04/2321/04/23
Simulazione degli eventiSimulazione degli eventi
• Per attivare eventi in altre sezioni dello Per attivare eventi in altre sezioni dello shapesheetshapesheet
• ES: cella A,B,C,D della sezione ES: cella A,B,C,D della sezione ScratchScratch
– OPENTEXTWIN() + DEPENDSON(PinX, OPENTEXTWIN() + DEPENDSON(PinX, PinY) PinY)
– La formula evidenzierà il testo della forma per La formula evidenzierà il testo della forma per la modifica ogni qualvolta che la forma viene la modifica ogni qualvolta che la forma viene spostataspostata
![Page 12: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/12.jpg)
21/04/2321/04/23
Shortcut menùShortcut menù
• È possibile aggiungere attraverso la È possibile aggiungere attraverso la sezione sezione ActionsActionsdelle azioni al menù di delle azioni al menù di scelta rapidascelta rapida
![Page 13: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/13.jpg)
21/04/2321/04/23
Demo4Demo4
![Page 14: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/14.jpg)
21/04/2321/04/23
Visio Object ModelVisio Object Model
Global
ThisDocument
Windows Document
ActiveDocument
ActivePage
ActiveWindow
Application
Window
Documents
Document
AddOnsAddOn
EventListEvent
Page
Master
Selection
MasterShortcutsMasterShorcut
Masters
Master
Pages
Page
StylesStyle
FontsFont
ColorsColor
VBProject
MenuSetsMenuSet
AccelTablesAccelTable
ToolbarSetsToolbarSet
ConnectsConnect
OLEObjectsOLEObject
LayersLayer
ShapesShape
ConnectsConnect
OLEObjectsOLEObject
LayersLayer
Shapes
Shape
ShapesShape
ShapesShape
MenusMenu
AccelItemsAccelItems
ToolbarsToolbar
ConnectsConnect
HyperlinksHyperlink
Characters
Row
PathsPath
Curve
MenuItemsMenuItem
ToolbarItemsToolbarItem
ToolbarItemsToolbarItem
MenuItemsMenuItem
1 The ThisDocument object is an instance of a Document object and is available only when using Microsoft Visual Basic® for Applications (VBA).
2 If the Shape object represents a group, it also has a Shapes collection.
3 If the MenuItem or ToolBarItem object represents a hierarchical menu, it also has a corresponding MenuItems or ToolBarItems collection.
4 A UIObject object can represent menus and accelerators or toolbars.
5 Many Visio objects have an EventList collection.
6 The Visio global object is available only when using VBA.
Represents a more direct method of accessing an object by referencing it as a property of the Visio global object.
Key
CollectionObject
The Microsoft® Visio® object model
1
5
2
3
3
2
6
CellSection
UI Object
UI Object
VBECommand
BarsCOMAddIns
4
4
![Page 15: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/15.jpg)
21/04/2321/04/23
Visio 2003 e il VBAVisio 2003 e il VBA
Shortcut: ALT+F11Shortcut: ALT+F11
![Page 16: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/16.jpg)
21/04/2321/04/23
La classe DocumentLa classe Document
• Aggiungere un nuovo documentoAggiungere un nuovo documento– Dim docObj As Visio.DocumentDim docObj As Visio.Document
Set docObj = Documents.Add("")Set docObj = Documents.Add("")
• Creare un nuovo documento da un modelloCreare un nuovo documento da un modello– Set docObj = Documents.OpenEx(Path &"sample Set docObj = Documents.OpenEx(Path &"sample
template.vst", visOpenCopy)template.vst", visOpenCopy)
• Aprire un documento esistenteAprire un documento esistente– Set docObj = Documents.Open(Path & "sample.vsd")Set docObj = Documents.Open(Path & "sample.vsd")
• Aprire uno stencil esistenteAprire uno stencil esistente– Set docObj = Documents.OpenEx(Path & "sample Set docObj = Documents.OpenEx(Path & "sample
stencil.vss", visOpenDocked)stencil.vss", visOpenDocked)
![Page 17: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/17.jpg)
21/04/2321/04/23
Demo 5Demo 5
![Page 18: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/18.jpg)
21/04/2321/04/23
La classe PageLa classe Page
• Sfogliare le pagine di documentoSfogliare le pagine di documento– For Each pg In ActiveDocument.PagesFor Each pg In ActiveDocument.Pages
Debug.Print pg.NameDebug.Print pg.NameNextNext
• Aggiungere una paginaAggiungere una pagina– ThisDocument.Pages.AddThisDocument.Pages.Add
• Attivare una paginaAttivare una pagina– Get the last page of the documentGet the last page of the document– Set pg = ActiveDocument.Pages(“MiaPagina”)Set pg = ActiveDocument.Pages(“MiaPagina”)– ActiveWindow.Page = PageNameActiveWindow.Page = PageName
![Page 19: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/19.jpg)
21/04/2321/04/23
Demo 6Demo 6
![Page 20: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/20.jpg)
21/04/2321/04/23
La classe ShapeLa classe Shape
• Disegnare una formaDisegnare una forma– Dim pg As Visio.PageDim pg As Visio.Page
Set pg = ActiveDocument.Pages.AddSet pg = ActiveDocument.Pages.Addpg.DrawLine 1, 1, 3, 4pg.DrawLine 1, 1, 3, 4pg.DrawRectangle 2, 2, 3, 5pg.DrawRectangle 2, 2, 3, 5
• Aggiungere del testo alla formaAggiungere del testo alla forma– Dim shp As Visio.ShapeDim shp As Visio.Shape
Set shp = pg.DrawRectangle(1, 1, 4, 2)Set shp = pg.DrawRectangle(1, 1, 4, 2)shp.Text = “Testo nella forma"shp.Text = “Testo nella forma"
• Raggruppare le forme selezionateRaggruppare le forme selezionate– Dim sel As Visio.SelectionDim sel As Visio.Selection
ActiveWindow.SelectAllActiveWindow.SelectAllSet sel = ActiveWindow.SelectionSet sel = ActiveWindow.Selectionsel.Groupsel.Group
![Page 21: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/21.jpg)
21/04/2321/04/23
Demo 7Demo 7
![Page 22: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/22.jpg)
21/04/2321/04/23
La classe CellLa classe Cell• Creare una User-defined CellCreare una User-defined Cell
– Set shp = ActivePage.DrawRectangle(2, 2, 4, 4)Set shp = ActivePage.DrawRectangle(2, 2, 4, 4)iRowIndex = shp.AddNamedRow(visSectionUser, "MyUserCell", iRowIndex = shp.AddNamedRow(visSectionUser, "MyUserCell", visRowUser)visRowUser)Set cel = shp.Cells("User.MyUserCell")Set cel = shp.Cells("User.MyUserCell")cel.Formula = """Dati personali"""cel.Formula = """Dati personali"""
• Creare una Custom-propertyCreare una Custom-property– Set shp = ActivePage.DrawRectangle(2, 2, 4, 4)Set shp = ActivePage.DrawRectangle(2, 2, 4, 4)
iRowIndex = shp.AddNamedRow(visSectionProp, "MyCustomProperty", iRowIndex = shp.AddNamedRow(visSectionProp, "MyCustomProperty", VisRowIndices.visRowProp)VisRowIndices.visRowProp)Set cel = shp.Cells("Prop.MyCustomProperty")Set cel = shp.Cells("Prop.MyCustomProperty")cel.Formula = """Questa è una prova"""cel.Formula = """Questa è una prova"""MsgBox "cel.Formula = " & cel.FormulaMsgBox "cel.Formula = " & cel.Formula
• Creare un Unique-ID per la formaCreare un Unique-ID per la forma– Dim shp As Visio.ShapeDim shp As Visio.Shape
Set shp = ActivePage.DrawRectangle(2, 2, 4, 4)Set shp = ActivePage.DrawRectangle(2, 2, 4, 4)shp = shp.UniqueID(visGetOrMakeGUID)shp = shp.UniqueID(visGetOrMakeGUID)Debug.Print shp.UniqueID(visGetOrMakeGUID)Debug.Print shp.UniqueID(visGetOrMakeGUID)
![Page 23: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/23.jpg)
21/04/2321/04/23
Demo 8Demo 8
![Page 24: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/24.jpg)
21/04/2321/04/23
Disegno con l’AutomazioneDisegno con l’Automazione
• Attraverso l’utilizzo di VBA o di qualsiasi Attraverso l’utilizzo di VBA o di qualsiasi linguaggio che supporta l’automazione linguaggio che supporta l’automazione (VB6, C, C++, .NET…) è possibile creare (VB6, C, C++, .NET…) è possibile creare quindi soluzioni che incorporano le quindi soluzioni che incorporano le funzionalità del motore di Visio e dei suoi funzionalità del motore di Visio e dei suoi oggetti.oggetti.
• Esempi di automazione con VBAEsempi di automazione con VBA
![Page 25: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/25.jpg)
21/04/2321/04/23
Demo 9Demo 9
• Soluzione che controlla la spesa legata Soluzione che controlla la spesa legata all’acquisto di un impianto stereo.all’acquisto di un impianto stereo.
• Monitoraggio degli eventi legati Monitoraggio degli eventi legati all’aggiunta o all’eliminazione di forme.all’aggiunta o all’eliminazione di forme.
![Page 26: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/26.jpg)
21/04/2321/04/23
Demo 9Demo 9
![Page 27: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/27.jpg)
21/04/2321/04/23
Demo 10Demo 10
• Soluzione che configura una topologia di Soluzione che configura una topologia di rete in base agli apparati selezionati.rete in base agli apparati selezionati.
• La soluzione mette in evidenza la capacità La soluzione mette in evidenza la capacità di Visio di semplificare e organizzare di Visio di semplificare e organizzare rappresentazioni complesse quali le rappresentazioni complesse quali le infrastrutture di rete.infrastrutture di rete.
![Page 28: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/28.jpg)
21/04/2321/04/23
Demo 10Demo 10
![Page 29: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/29.jpg)
21/04/2321/04/23
Integrazione di dati in una Integrazione di dati in una soluzione Visiosoluzione Visio
• Visio permette di combinare disegni con Visio permette di combinare disegni con altre fonti di dati, tipicamente Database.altre fonti di dati, tipicamente Database.
• È possibile creare disegni partendo da una È possibile creare disegni partendo da una o più tabelle di un database o viceversa o più tabelle di un database o viceversa salvare le informazioni associate alle salvare le informazioni associate alle forme (celle definite dall’utente, proprietà forme (celle definite dall’utente, proprietà personalizzate) nel database.personalizzate) nel database.
• EsempiEsempi
![Page 30: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/30.jpg)
21/04/2321/04/23
Demo 11Demo 11
![Page 31: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/31.jpg)
21/04/2321/04/23
Visio e l’ XMLVisio e l’ XML
• Con la versione 2002 è possibile salvare i Con la versione 2002 è possibile salvare i documenti in formato XML documenti in formato XML – Disegno.vdxDisegno.vdx– Stencil.vsxStencil.vsx– Modello.vtxModello.vtx
• Questa caratteristica permette un alto Questa caratteristica permette un alto grado di interoperabilità con altre grado di interoperabilità con altre applicazioni e altre piattaformeapplicazioni e altre piattaforme
![Page 32: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/32.jpg)
21/04/2321/04/23
Demo 13Demo 13
• La soluzione carica un documento di Visio La soluzione carica un documento di Visio salvato in formato XML e visualizza in una salvato in formato XML e visualizza in una pagina HTML l’elenco delle forme con pagina HTML l’elenco delle forme con relative caratteristiche in una tabella.relative caratteristiche in una tabella.
• La soluzione sfrutta la possibilità di La soluzione sfrutta la possibilità di trasformare file XML in altri formati usando trasformare file XML in altri formati usando fogli di stile XSL.fogli di stile XSL.
![Page 33: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/33.jpg)
21/04/2321/04/23
Demo 13Demo 13
![Page 34: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/34.jpg)
21/04/2321/04/23
Visio 2003 e .NETVisio 2003 e .NET
• L’ambiente .NET è in grado interfacciarsi L’ambiente .NET è in grado interfacciarsi con tutte le applicazioni COM, quindi con tutte le applicazioni COM, quindi anche Visio.anche Visio.
• Installando la versione 2003 di Visio, si Installando la versione 2003 di Visio, si dispone automaticamente dell’assembly di dispone automaticamente dell’assembly di interoperabilità e di un componente interoperabilità e di un componente ActiveX che può essere utilizzato in ActiveX che può essere utilizzato in qualsiasi applicazione.qualsiasi applicazione.
![Page 35: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/35.jpg)
21/04/2321/04/23
Visio Drawing ControlVisio Drawing Control
![Page 36: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/36.jpg)
21/04/2321/04/23
Demo 14Demo 14
• La soluzione, prevede l’utilizzo del La soluzione, prevede l’utilizzo del controllo ActiveX all’interno di un form di controllo ActiveX all’interno di un form di una applicazione Windows.una applicazione Windows.
• Il controllo dispone di tutte le Il controllo dispone di tutte le caratteristiche di un documento creato con caratteristiche di un documento creato con Visio 2003.Visio 2003.
![Page 37: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/37.jpg)
21/04/2321/04/23
Demo 14Demo 14
![Page 38: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/38.jpg)
21/04/2321/04/23
Demo 15Demo 15
• La soluzione utilizza Visio attraverso La soluzione utilizza Visio attraverso l’automazione per creare un diagramma di l’automazione per creare un diagramma di flusso.flusso.
• Per rendere il documento disponibile ad Per rendere il documento disponibile ad utenti che non dispongono di una licenza utenti che non dispongono di una licenza Visio, viene generata una pagina web con Visio, viene generata una pagina web con il diagramma.il diagramma.
![Page 39: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/39.jpg)
21/04/2321/04/23
Demo 15Demo 15
![Page 40: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/40.jpg)
21/04/2321/04/23
Creazione di un componente COMCreazione di un componente COM
• A partire dalla versione 2002 è possibile creare A partire dalla versione 2002 è possibile creare soluzioni basate su add-in COMsoluzioni basate su add-in COM– ActiveX DLLActiveX DLL– ActiveX EXEActiveX EXE
• Si può utilizzare Microsoft Office Developer o Si può utilizzare Microsoft Office Developer o Microsoft Visual Studio 5 o successivi usando gli Microsoft Visual Studio 5 o successivi usando gli add-in designer add-in designer per Visio.per Visio.
• Download: Download: http://office.microsoft.com/en-us/officeupdate/CDhttp://office.microsoft.com/en-us/officeupdate/CD010225661033.aspx 010225661033.aspx
![Page 41: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/41.jpg)
21/04/2321/04/23
Add-in designerAdd-in designer
![Page 42: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/42.jpg)
21/04/2321/04/23
Demo 12Demo 12• Private Sub AddinInstance_OnConnection(ByVal Application As Object, Private Sub AddinInstance_OnConnection(ByVal Application As Object,
ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant)ByVal AddInInst As Object, custom() As Variant)
• Dim cbar As CommandBarDim cbar As CommandBar• • On Error GoTo error_handlerOn Error GoTo error_handler• • 'Save the Visio instance'Save the Visio instance• Set g_VisioApp = ApplicationSet g_VisioApp = Application• • Exit SubExit Sub• • error_handler:error_handler:• • MsgBox Err.DescriptionMsgBox Err.Description• • End SubEnd Sub
![Page 43: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/43.jpg)
21/04/2321/04/23
Demo 12Demo 12Sub CreaBarraStrumentiOffice()Sub CreaBarraStrumentiOffice() Dim mybar As Office.CommandBarDim mybar As Office.CommandBar Dim mybars As Office.CommandBarsDim mybars As Office.CommandBars
Set mybar = Application.CommandBars("Personalizzata")Set mybar = Application.CommandBars("Personalizzata") Set myControl = mybar.Controls _Set myControl = mybar.Controls _ .Add(Type:=msoControlButton).Add(Type:=msoControlButton)With myControlWith myControl .FaceID = 2.FaceID = 2 .OnAction = "!<StencilWindowCOMAddin.VisioCOMAddin>" .OnAction = "!<StencilWindowCOMAddin.VisioCOMAddin>"
'.VisioCOMAddin'.VisioCOMAddinEnd WithEnd Withmybar.Visible = Truemybar.Visible = True
End SubEnd Sub
![Page 44: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/44.jpg)
21/04/2321/04/23
InstallazioneInstallazione
• Una volta creati i componenti COM, DLL, Una volta creati i componenti COM, DLL, EXE devono essere installati in EXE devono essere installati in deteminate directory perché siano deteminate directory perché siano disponibili all’utente.disponibili all’utente.
• L’operazione può essere eseguita per L’operazione può essere eseguita per esempio utilizzando il Package and esempio utilizzando il Package and Deployment wizard presente in Visual Deployment wizard presente in Visual Studio o Office DeveloperStudio o Office Developer
![Page 45: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/45.jpg)
21/04/2321/04/23
InstallazioneInstallazione
![Page 46: Visio 2003 Programming](https://reader035.vdocuments.mx/reader035/viewer/2022062314/5681461f550346895db32864/html5/thumbnails/46.jpg)
21/04/2321/04/23
ReferenceReference
• ““Programmare Microsoft VISIO”Programmare Microsoft VISIO”– Ed:MondadoriEd:Mondadori
• ““Microsoft Visio 2003 Developer’s Survival Microsoft Visio 2003 Developer’s Survival Pack”Pack”– Ed:TraffordEd:Trafford– Autore: Graham WidemanAutore: Graham Wideman
• http://msdn.microsoft.com/libraryhttp://msdn.microsoft.com/library