[color=blue]Option [color=blue]Explicit[/color] On[/color]
[color=blue]Option Strict On[/color]
'Add a reference to Microsoft Visio xx.0 Object Library
[color=blue]Imports[/color] Visio = Microsoft.Office.Interop.Visio
[color=blue]Public Class[/color] Form1
Inherits System.Windows.Forms.Form
[color=dimgray]"Windows Form Designer generated code"[/color]
[color=blue]Private[/color] moApp [color=blue]As[/color] Visio.Application
[color=blue]Private[/color] moVsd [color=blue]As[/color] Visio.Document
[color=blue]Private Sub[/color] Form1_Load([color=blue]ByVal[/color] sender [color=blue]As[/color] System.[color=black]Object[/color], [color=blue]ByVal[/color] e [color=blue]As[/color] System.EventArgs) [color=blue]Handles MyBase[/color].Load
[color=darkgreen]'Create an instance of the Visio.Application[/color]
moApp = [color=blue]DirectCast[/color]([color=black]CreateObject[/color]("Visio.Application"), Visio.Application)
moApp.Visible = [color=blue]False[/color]
optLandscape.Checked = [color=blue]True[/color]
btnApply.Enabled = [color=blue]False[/color]
[color=blue]End Sub[/color]
[color=blue]Private Sub[/color] btnOpen_Click([color=blue]ByVal[/color] sender [color=blue]As[/color] System.[color=black]Object[/color], [color=blue]ByVal[/color] e [color=blue]As[/color] System.EventArgs) [color=blue]Handles[/color] btnOpen.Click
[color=darkgreen]'Open the Visio File[/color]
moVsd = moApp.Documents.[color=black]Open[/color]("C:\Development\Tips\Visio FAQ - Page Layout and Size\Drawing1.vsd")
moApp.Visible = [color=blue]True[/color]
btnApply.Enabled = [color=blue]True[/color]
[color=blue]End Sub[/color]
[color=blue]Private Sub[/color] btnApply_Click([color=blue]ByVal[/color] sender [color=blue]As[/color] System.[color=black]Object[/color], [color=blue]ByVal[/color] e [color=blue]As[/color] System.EventArgs) [color=blue]Handles[/color] btnApply.Click
[color=blue]Dim[/color] oVsp [color=blue]As[/color] Visio.Page
oVsp = [color=blue]DirectCast[/color](moVsd.Pages.[color=black]Item[/color](1), Visio.Page)
[color=darkgreen]'Change the drawing layout according to the option button selection made by the user[/color]
[color=blue]If[/color] optLandscape.Checked = [color=blue]True Then[/color]
oVsp.PageSheet.CellsSRC([color=blue]CType[/color](Microsoft.Office.Interop.Visio.VisSectionIndices.visSectionObject, [color=blue]Short[/color]), _
[color=blue]CType[/color](Microsoft.Office.Interop.Visio.VisRowIndices.visRowPrintProperties, [color=blue]Short[/color]), _
[color=blue]CType[/color](Microsoft.Office.Interop.Visio.VisCellIndices.visPrintPropertiesPageOrientation, [color=blue]Short[/color])).FormulaU = "2"
[color=blue]Else[/color]
oVsp.PageSheet.CellsSRC([color=blue]CType[/color](Microsoft.Office.Interop.Visio.VisSectionIndices.visSectionObject, [color=blue]Short[/color]), _
[color=blue]CType[/color](Microsoft.Office.Interop.Visio.VisRowIndices.visRowPrintProperties, [color=blue]Short[/color]), _
[color=blue]CType[/color](Microsoft.Office.Interop.Visio.VisCellIndices.visPrintPropertiesPageOrientation, [color=blue]Short[/color])).FormulaU = "1"
[color=blue]End If[/color]
[color=darkgreen]'Change the drawing size according to the users input[/color]
[color=blue]'(need to do more error checking but this is just for an ex.)[/color]
[color=blue]If[/color] txtWidth.TextLength > 0 [color=blue]And[/color] txtHeight.TextLength > 0 [color=blue]Then[/color]
oVsp.PageSheet.CellsSRC([color=blue]CType[/color](Microsoft.Office.Interop.Visio.VisSectionIndices.visSectionObject, [color=blue]Short[/color]), _
[color=blue]CType[/color](Microsoft.Office.Interop.Visio.VisRowIndices.visRowPage, [color=blue]Short[/color]), _
[color=blue]CType[/color](Microsoft.Office.Interop.Visio.VisCellIndices.visPageWidth, [color=blue]Short[/color])).FormulaU = txtWidth.Text & " in"
oVsp.PageSheet.CellsSRC([color=blue]CType[/color](Microsoft.Office.Interop.Visio.VisSectionIndices.visSectionObject, [color=blue]Short[/color]), _
[color=blue]CType[/color](Microsoft.Office.Interop.Visio.VisRowIndices.visRowPage, [color=blue]Short[/color]), _
[color=blue]CType[/color](Microsoft.Office.Interop.Visio.VisCellIndices.visPageHeight, [color=blue]Short[/color])).FormulaU = txtHeight.Text & " in"
[color=blue]End If[/color]
oVsp = [color=blue]Nothing[/color]
[color=blue]End Sub[/color]
[color=blue]Private Sub[/color] Form1_Closing([color=blue]ByVal[/color] sender [color=blue]As Object[/color], [color=blue]ByVal[/color] e [color=blue]As[/color] System.ComponentModel.CancelEventArgs) [color=blue]Handles MyBase[/color].Closing
moVsd.[color=black]Close()[/color]
moVsd = [color=blue]Nothing[/color]
moApp.Quit()
moApp = [color=blue]Nothing[/color]
[color=blue]End Sub[/color]
[color=blue]End Class[/color]