Break On
$nul = SetOption("NoMacrosInStrings", "On")
$nul = SetOption("NoVarsInStrings", "On")
;;; https://msdn.microsoft.com/en-us/library/office/ff767900.aspx
$visDeselect = 1
$visSelect = 2
$visSubSelect = 3
$visSelectAll = 4
$visDeselectAll = 5
;;; https://msdn.microsoft.com/en-us/library/office/ff765983.aspx
$visSectionObject = 1
;;; https://msdn.microsoft.com/en-us/library/office/ff765539.aspx
$visRowXFormOut = 1
;;; https://msdn.microsoft.com/en-us/library/office/ff767991.aspx
$VisXFormPinX = 0
$VisXFormPinY = 1
$visXFormWidth = 2
$visXFormHeight = 3
$DrawingFile = @ScriptDir+"\Drawing1.vsdx"
$newDrawingFile = @ScriptDir+"\Drawing2.vsdx"
$oVisio = CreateObject("VISIO.InvisibleApp")
$nul = $oVisio.Documents.Open($DrawingFile)
;;; CHANGE WIDTH OF OBJECT 330 TO 1.65 INCHES
$oVisio.ActiveWindow.Page.Shapes.ItemFromID(330).CellsSRC($visSectionObject, $visRowXFormOut, $visXFormWidth).FormulaU = "1.65 in"
;;; CHANGE X POSITION OF OBJECT 330 TO 7.3 INCHES
$oVisio.ActiveWindow.Page.Shapes.ItemFromID(330).CellsSRC($visSectionObject, $visRowXFormOut, $visXFormPinX).FormulaU = "7.3 in"
;;; CHANGE Y POSITION OF OBJECT 330 TO 6.45 INCHES
$oVisio.ActiveWindow.Page.Shapes.ItemFromID(330).CellsSRC($visSectionObject, $visRowXFormOut, $visXFormPinY).FormulaU = "6.45 in"
$nul = $oVisio.ActiveDocument.SaveAs($newDrawingFile)
$oVisio.Quit
$oVisio = 0