CreateURL Method [Visio 2003 SDK Documentation]
Returns a fully qualified and optionally canonicalized representation of the hyperlink's absolute address.
strRet = object.CreateURL(intExpression)
strRet String. A fully qualified URL representation of a hyperlink.
object Required. An expression that returns a Hyperlink object.
intExpression Required Integer. True (non-zero) if canonical form; otherwise, False (0).
The CreateURL method of the Hyperlink object can be used to resolve relative URLs against a hyperlink's base address.
When you use the canonical form, the CreateURL method applies URL canonicalization rules to the hyperlink. Only spaces are URL-encoded during canonicalization. Port 80 is assumed for HTTP URLs and is removed during canonicalization. For example, the URL "http://www.microsoft.com:80/" is returned as "http://www.microsoft.com/", whereas http://www.microsoft.com:1000/" is unchanged.
Here are some examples of results of the CreateURL method:
Address = "http://www.microsoft.com/" CreateURL(False) returns "http://www.microsoft.com/" Address = "C:\My Documents\Spreadsheet.XLS" CreateURL(False) returns "file://C:\My Documents\Spreadsheet.XLS" CreateURL(True) returns "file://C:\My%20Documents\Spreadsheet.XLS"
Relative path example:
Assume : Document.HyperlinkBase = "http://www.microsoft.com/widgets/" Address = "../file.htm" CreateURL(False) returns "http://www.microsoft.com/file.htm"
The following example shows how to use the CreateURL method to resolve relative URLs against the base address of a hyperlink. Before running this macro, replace drive\folder\subfolder with a valid file path on your computer, replace address with a valid Internet or intranet address, and replace drawing.vsd with a valid file on your computer.
Sub CreateURL_Example() Dim vsoShape As Visio.Shape Dim vsoHyperlink As Visio.Hyperlink 'Draw a rectangle shape on the active page Set vsoShape = ActivePage.DrawRectangle(1, 2, 2, 1) 'Add a hyperlink to a shape Set vsoHyperlink = vsoShape.AddHyperlink 'Allow relative hyperlink addresses ActiveDocument.HyperlinkBase = "drive:\folder\subfolder" 'Return a relative address vsoHyperlink.Address = "..\drawing.vsd" 'Print the resulting URLs to the Debug window 'to show how the relative path is derived 'from the base path and the difference 'between canonical and non-canonical forms Debug.Print vsoHyperlink.CreateURL(False) Debug.Print vsoHyperlink.CreateURL(True) 'Return an absolute address vsoHyperlink.Address = "http://address" 'Print the resulting URL to the Debug window Debug.Print vsoHyperlink.CreateURL(False) End Sub