VBA - PowerPoint - Вставка пользовательских маркеров - PullRequest
0 голосов
/ 15 октября 2019

Надеюсь, у тебя все хорошо. Я пытаюсь создать код для вставки следующих маркеров в выделенное текстовое поле

Expected

Используется шрифт Wingdings, а символы

  1. 140
  2. 141
  3. 142
  4. 143
  5. 144
  6. 145
  7. 146
  8. 147
  9. 148

Я пытался использовать следующий код:

Sub bulletlist()
    With ActiveSlide.Shapes(1).TextFrame.TextRange.ParagraphFormat.bullet
        .Type = ppBulletUnnumbered
        .Character = 140
        With .Font
            .Name = "Wingdings"
            .Size = 44
            .Color = RGB(255, 255, 255)
        End With
    End With
With ActiveSlide.Shapes(1).TextFrame.TextRange.ParagraphFormat.bullet
        .Type = ppBulletUnnumbered
        .Character = 141
        With .Font
            .Name = "Wingdings"
            .Size = 44
            .Color = RGB(255, 255, 255)
        End With
    End With
With ActiveSlide.Shapes(1).TextFrame.TextRange.ParagraphFormat.bullet
        .Type = ppBulletUnnumbered
        .Character = 142
        With .Font
            .Name = "Wingdings"
            .Size = 44
            .Color = RGB(255, 255, 255)
        End With
    End With
With ActiveSlide.Shapes(1).TextFrame.TextRange.ParagraphFormat.bullet
        .Type = ppBulletUnnumbered
        .Character = 143
        With .Font
            .Name = "Wingdings"
            .Size = 44
            .Color = RGB(255, 255, 255)
        End With
    End With
End Sub

Но powerpoint возвращает ошибку в этом коде. У вас есть идеи?

Спасибо, что уделили время Naxso

Ответы [ 2 ]

2 голосов
/ 15 октября 2019

Вы должны вносить изменения в макет слайда , а не на слайд. В противном случае вам придется повторно запускать макрос на каждом новом созданном вами слайде, который имеет этот стиль нумерации.

Но вы изобретаете колесо заново, потому что PowerPoint уже включает этот стиль нумерации. В XML это называется circleNumWdBlackPlain. (Вот моя статья о стилях нумерации PowerPoint, более подробно: OOXML Хакерство: стили нумерации PowerPoint

VBA для установки этого:

Sub NumberStyling()
  With ActiveWindow.Selection.ShapeRange(1).TextFrame2.TextRange.ParagraphFormat.Bullet
    .Type = msoBulletNumbered
    .Style = msoBulletcircleNumWdBlackPlain
  End With
End Sub
1 голос
/ 15 октября 2019

Вместо ActiveSlide, попробуйте обратиться к «ActiveSlide» следующим образом:

Dim activeSlide as Slide
set activeSlide = Application.ActiveWindow.View.Slide
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...