Window.DockedStencils method (Visio)

Returns the names of all stencils docked in a Microsoft Visio drawing window.

Syntax

expression. DockedStencils( _NameArray()_ )

expression A variable that represents a Window object.

Parameters

Name Required/Optional Data type Description
NameArray() Required String Out parameter. An array that receives the names of stencils docked in a window.

Return value

Nothing

Remarks

The DockedStencils method returns an array of strings—the names of the stencils shown in the docked stencil panes of a window. When the window is a drawing window, the number of docked stencil panes ( n ) is equal to or greater than zero, and n is zero when the window isn't a drawing window.

If the DockedStencils method succeeds, NameArray() returns a one-dimensional array of n strings indexed from zero (0) to n - 1. The NameArray() parameter is an out parameter that is allocated by the DockedStencils method, ownership of which is passed back to the caller. The caller should eventually perform the SafeArrayDestroy procedure on the returned array. Note that the SafeArrayDestroy procedure has the side effect of freeing the strings referenced by the array's entries. The DockedStencils method fails if NameArray() is null. (Microsoft Visual Basic and Visual Basic for Applications take care of destroying the array for you.)

If strStencilName is the string returned by NameArray(StencilName), Documents.Item ( strStencilName) succeeds and returns a Document object representing the stencil.

Example

The following Microsoft Visual Basic for Applications macro shows how to use the DockedStencils method to get the document names of all the stencils docked in the active window. It also prints, in the Immediate window, the name of the active document and the lower and upper bounds of the array that holds the stencil names, and then it lists the stencil names and paths, also in the Immediate window.

 
Public Sub DockedStencils_Example() 
 
 Dim astrStencilNames() As String 
 ActiveWindow.DockedStencils astrStencilNames 
 
 Dim intLowerBound As Integer 
 Dim intUpperBound As Integer 
 Dim intIndex As Integer 
 
 intLowerBound = LBound(astrStencilNames) 
 intUpperBound = UBound(astrStencilNames) 
 Debug.Print "Active document: " ActiveWindow.Document; " Lower bound:"; intLowerBound; " Upper Bound:"; intUpperBound 
 
 intIndex = intLowerBound 
 While intIndex <= intUpperBound 
 Debug.Print astrStencilNames(intIndex) 
 intIndex = intIndex + 1 
 Wend 
 
End Sub

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.