2017-02-22 33 views
1

Пожалуйста, проверьте снимок экрана &. Она имеет свои вопросы и код, который я написал до сих пор (что не удается)Powerpoint VBA - Переместить chldnode вертикального списка блоков влево

enter image description here

Ниже мой код:

Private Sub VerticalBlockList() 
    Dim oPPT As PowerPoint.Application 
    Dim oPres As PowerPoint.Presentation 
    Const ppLayoutTitleAndContent As Byte = 32 

    Set oPPT = CreateObject("Powerpoint.Application") 
    Set oPres = oPPT.Presentations.Add() 

    Dim layout As SmartArtLayout 
    Set layout = Application.SmartArtLayouts(26) 

    With oPres.Slides.Add(oPres.Slides.Count + 1, ppLayoutTitleAndContent) 
     With .Shapes.AddSmartArt(layout, 30, 180, 318, 252) 
      With .SmartArt 
       .Nodes(1).Shapes(1).TextFrame2.TextRange.Text = "Sample-1" 
       .Nodes(1).Shapes(2).TextFrame2.TextRange.Text = "Sample-2" 

       ' Below statement throws error. 
       ' basically I want to move the bullet section to little bit on left so that the bullet points doesn't show up 
       ' P.S. there is no way I can remove that bullet in a Vertical Block List 

       .Nodes(1).Shapes(2).left = .Nodes(1).Shapes(2).left - 30 

      End With 
     End With 
    End With  
End Sub 

ответ

2

Нет необходимости перемещать форму, вы можете просто удалите пули:

 .Nodes(1).Shapes(2).TextFrame2.TextRange.ParagraphFormat.Bullet.Type = msoBulletNone 
+0

Заявление выполняет файл, но пуля остается. Вы не сможете удалить его вручную, так что я немного переместил его с левой стороны. – Tejas

+0

Когда я запускаю ваш код, заменяя линию, в которой вы перемещаете фигуру с кодом для удаления пуль, пули исчезают. Пули в этом макете SmartArt также можно удалить вручную. Если это не работает для вас, у вас есть еще одна проблема. –

+0

Какую версию PPT вы используете? –

 Смежные вопросы

  • Нет связанных вопросов^_^