Как изменить стиль шейп-текста в vba? - PullRequest
1 голос
/ 07 октября 2019

Я изменил размер текста со следующей строкой кода

shp.CellsSRC(visSectionCharacter, 0, visCharacterSize).FormulaU = " 3pt"

Я хотел бы изменить стиль (на полужирный) и цвет текста формы с тем же шаблоном кода?

Я не нашел точную «формулу», знаете ли вы, как я могу это сделать?

Заранее большое спасибо

Редактировать: Я нашел эту строкудля цвета:

shp.CellsSRC(visSectionCharacter, 0, visCharacterColor).FormulaU = "THEMEGUARD(RGB(255,0,0))"

1 Ответ

1 голос
/ 07 октября 2019

Я не уверен, почему нет перечисления для установки стиля. В любом случае, это столбец 2 в свойствах формы. Поэтому используйте

shp.CellsSRC(visSectionCharacter, 0, 2).FormulaU = 17

, чтобы установить текст Жирный .

Откуда я знаю, что вы спрашиваете? На основе ссылки Microsoft на Понимание таблицы форм , есть полезный фрагмент кода для использования.

Сначала выберите фигуру на чертеже, для которой вы хотите просмотреть информацию о свойствах. Затем откройте окно «Свойства формы» в редакторе Visio (, а не в VBE) - вы можете получить его, просмотрев ленту разработчика, затем щелкните значок Показать форму ShapeSheet

enter image description here

В окне свойств фигуры прокручивайте вниз, пока не увидите раздел «Символы». Вы ДОЛЖНЫ выбрать одну из ячеек в окне свойств. В приведенном здесь примере выбран столбец Стиль.

enter image description here

После того, как вы это сделаете, запустите следующий фрагмент кода ниже, и вы получите информациювам нужно в Непосредственном Окне VBE.

Public Sub DebugPrintCellProperties()
    ' Abort if ShapeSheet not selected in the Visio UI
    If Not Visio.ActiveWindow.Type = Visio.VisWinTypes.visSheet Then
        Exit Sub
    End If
    Dim cel As Visio.Cell
    Set cel = Visio.ActiveWindow.SelectedCell
    'Print out some of the cell properties
    Debug.Print "Section", cel.Section
    Debug.Print "Row", cel.Row
    Debug.Print "Column", cel.Column
    Debug.Print "Name", cel.Name
    Debug.Print "FormulaU", cel.FormulaU
    Debug.Print "ResultIU", cel.ResultIU
    Debug.Print "ResultStr("""")", cel.ResultStr("")
    Debug.Print "Dependents", UBound(cel.Dependents)
    ' cel.Precedents may cause an error
    On Error Resume Next
    Debug.Print "Precedents", UBound(cel.Precedents)
    Debug.Print "--------------------------------------"

End Sub

Это скажет вам Раздел, Строку и Столбец, чтобы использовать, когда вы звоните CellsSRC. Что я сделал, так это выяснил свойство, затем вручную установил текст BOLD и снова просмотрел результаты DebugPrintCellProperties, чтобы увидеть, что FormulaU = 17 выделено жирным шрифтом.

...