Простой вопрос по visio, необходимо поменять стиль заполнения с паттерна на сплошной для всех прямоугольников на всех листах. местный макрорекордер записывает изменение типа заполнения .FormulaU = "1", где 1 - сплошной, 2 - паттерн, но почему-то при изменение для всех прямоугольников с заполнением 1 на 2 не дает желаемого результата. [vba]
Set oApp = GetObject(, "visio.application") Set doc = oApp.ActiveDocument
i = 1 For Each pg In doc.Pages Application.ActiveWindow.ViewFit = visFitPage For Each shp In pg.Shapes
If Not shp.OneD Then If shp.Name Like "Rectangle.*" Then With pg.Shapes.ItemFromID(shp.ID) Debug.Print pg.Name & " _ " & shp.Name & " - " & .CellsSRC(visSectionObject, visRowFill, visFillPattern).FormulaU
'change fill color from pattern to solid ? If .CellsSRC(visSectionObject, visRowFill, visFillPattern).FormulaU = "2" Then '1 - solid, 2 - pattern .CellsSRC(visSectionObject, visRowFill, visFillForegnd).FormulaForceU = cGreen .CellsSRC(visSectionObject, visRowFill, visFillBkgnd).FormulaForceU = cGreen .CellsSRC(visSectionObject, visRowFill, visFillPattern).FormulaU = "1" End If End With End If End If
Next shp i = i + 1 Next End Sub
[/vba]
Rectangle.39 должен стать таким же как Rectangle.2
Доброго времени суток,
Простой вопрос по visio, необходимо поменять стиль заполнения с паттерна на сплошной для всех прямоугольников на всех листах. местный макрорекордер записывает изменение типа заполнения .FormulaU = "1", где 1 - сплошной, 2 - паттерн, но почему-то при изменение для всех прямоугольников с заполнением 1 на 2 не дает желаемого результата. [vba]
Set oApp = GetObject(, "visio.application") Set doc = oApp.ActiveDocument
i = 1 For Each pg In doc.Pages Application.ActiveWindow.ViewFit = visFitPage For Each shp In pg.Shapes
If Not shp.OneD Then If shp.Name Like "Rectangle.*" Then With pg.Shapes.ItemFromID(shp.ID) Debug.Print pg.Name & " _ " & shp.Name & " - " & .CellsSRC(visSectionObject, visRowFill, visFillPattern).FormulaU
'change fill color from pattern to solid ? If .CellsSRC(visSectionObject, visRowFill, visFillPattern).FormulaU = "2" Then '1 - solid, 2 - pattern .CellsSRC(visSectionObject, visRowFill, visFillForegnd).FormulaForceU = cGreen .CellsSRC(visSectionObject, visRowFill, visFillBkgnd).FormulaForceU = cGreen .CellsSRC(visSectionObject, visRowFill, visFillPattern).FormulaU = "1" End If End With End If End If
Next shp i = i + 1 Next End Sub
[/vba]
Rectangle.39 должен стать таким же как Rectangle.2 user0