Форум пользователей Visio
http://visio.getbb.ru/

Форматирование абзацев
http://visio.getbb.ru/viewtopic.php?f=6&t=1642
Страница 1 из 1

Автор:  Maluy Alex [ 15 ноя 2020, 00:17 ]
Заголовок сообщения:  Форматирование абзацев

Доброго времени суток!

Подскажите пожалуйста можно ли внутри одного шейпа отформатировать абзацы по разному. Например, 1-й по ширине, 2-й по центру и 3-й выровнять по левому краю. Как применить форматирование ко всему шейпу я понял, а непосредственно к тексту не разобрался.

Автор:  Tumanov [ 15 ноя 2020, 00:46 ]
Заголовок сообщения:  Re: Форматирование абзацев

Вот как это выглядит в шейп-листе.
И справка на эту тему - https://docs.microsoft.com/en-us/office ... ph-section

Вложения:
par.PNG
par.PNG [ 59.73 Кб | Просмотров: 171 ]

Автор:  nbelyh [ 15 ноя 2020, 01:38 ]
Заголовок сообщения:  Re: Форматирование абзацев

Конечно можно.
Изображение

Автор:  Maluy Alex [ 05 дек 2020, 21:33 ]
Заголовок сообщения:  Re: Форматирование абзацев

Доброго времени суток!

Никак не получается. Если не затруднит приведите пожалуйста кусочек кода в котором в шейп добавляется 2 абзаца. Например:
1 абзац с текстом 1111 выравнивание по центру и выделен жирным
2 абзац с текстом 2222 выравнивание по правому краю и выделен курсивом

Автор:  Tumanov [ 05 дек 2020, 21:59 ]
Заголовок сообщения:  Re: Форматирование абзацев

В Visio можно записывать макросы. То есть включить запись, сделать что-то вручную и посмотреть, как Visio превратит это в код.
Потом можно оптимизировать.
Вот Ваш пример (без оптимизации, только Undo выбросил):
Код:
Sub Macro1()
    Dim vsoCharacters1 As Visio.Characters
    Set vsoCharacters1 = Application.ActiveWindow.Page.Shapes.ItemFromID(1).Characters
    vsoCharacters1.Begin = 0
    vsoCharacters1.End = 0
    vsoCharacters1.Text = "1111"

    Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionCharacter, 0, visCharacterStyle).FormulaU = "17"
    Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionCharacter, 0, visCharacterDblUnderline).FormulaU = "FALSE"
    Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionCharacter, 0, visCharacterOverline).FormulaU = "FALSE"
    Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionCharacter, 0, visCharacterStrikethru).FormulaU = "FALSE"
    Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionCharacter, 0, 11).FormulaU = "FALSE"
    Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionCharacter, 0, visCharacterDoubleStrikethrough).FormulaU = "FALSE"
    Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionCharacter, 0, visCharacterRTLText).FormulaU = "FALSE"
    Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionCharacter, 0, visCharacterUseVertical).FormulaU = "FALSE"

    Dim vsoCharacters4 As Visio.Characters
    Set vsoCharacters4 = Application.ActiveWindow.Page.Shapes.ItemFromID(1).Characters
    vsoCharacters4.Begin = 4
    vsoCharacters4.End = 4
    vsoCharacters4.Text = "" & Chr(10) & "2222"

    Dim vsoCharacters5 As Visio.Characters
    Set vsoCharacters5 = Application.ActiveWindow.Page.Shapes.ItemFromID(1).Characters
    vsoCharacters5.Begin = 5
    vsoCharacters5.End = 9
    vsoCharacters5.ParaProps(visHorzAlign) = 2#

    Dim vsoCharacters7 As Visio.Characters
    Set vsoCharacters7 = Application.ActiveWindow.Page.Shapes.ItemFromID(1).Characters
    vsoCharacters7.Begin = 5
    vsoCharacters7.End = 9
    vsoCharacters7.CharProps(visCharacterStyle) = 51#
End Sub

Автор:  Tumanov [ 05 дек 2020, 22:15 ]
Заголовок сообщения:  Re: Форматирование абзацев

Или после оптимизации
Код:
Sub Macro1()
    Dim vsChar As Visio.Characters
    Dim shp As Visio.Shape
   
    Set shp = ActiveWindow.Selection(1)
    shp.Characters.Text = "1111" & Chr(10) & "2222"
    Set vsChar = shp.Characters
    With vsChar
        .Begin = 0
        .End = 4
        .ParaProps(visHorzAlign) = 1#
        .CharProps(visCharacterStyle) = 17#
        .Begin = 5
        .End = 9
        .ParaProps(visHorzAlign) = 2#
        .CharProps(visCharacterStyle) = 34#
    End With
End Sub

Автор:  Maluy Alex [ 06 дек 2020, 16:51 ]
Заголовок сообщения:  Re: Форматирование абзацев

Огромное спасибо!
К сожалению так и не нашел как в 2016 visio включить запись макроса. Вроде все посмотрел, может как всегда на самом видном месте и пропустил.

Автор:  Surrogate [ 06 дек 2020, 17:03 ]
Заголовок сообщения:  Re: Форматирование абзацев

Maluy Alex писал(а):
К сожалению так и не нашел как в 2016 visio включить запись макроса.
А вкладка ленты Разработчик у вас активирована ?
phpBB [media]
Maluy Alex писал(а):
Вроде все посмотрел, может как всегда на самом видном месте и пропустил.
Изображение

Автор:  Maluy Alex [ 12 дек 2020, 18:05 ]
Заголовок сообщения:  Re: Форматирование абзацев

Всем огромное спасибо за помощь.
Все нашел и все получилось.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/