Как да създадем автоматично слайд със съдържание в PowerPoint 2010/2007 чрез VBA

Liliya Nikolova

Лилия Николова - CCNA, MOS Master, MCT.

Много често всеки от нас си задава въпроса: „Как да го направя по-бързо?”. Инструментът, който сега ще разгледаме, е една от възможностите да спестим време при създаването на PowerPoint презентация.

Между препоръките за добра презентация е  изискването тя да включва слайд със съдържание. В PowerPoint 2003, както и в предходните версии, има бутон Summary Slide, който ни дава възможност това да става автоматично. За съжаление, този бутон вече не съществува в PowerPoint 2010/2007. 

Какво можем да направим, ако все пак ни се иска създаването на слайд със съдържание да става бързо и лесно? Бихме могли да използваме следния макрос: 

Sub SlideSummary()
    Dim i As Integer
    Dim strSel As String, strTitle As String
    Dim summary As Slide
 
   ‘Стартира само в случай, че сме селектирали предварително поне 1 слайд
    If ActiveWindow.Selection.SlideRange.Count > 0 Then
                 ‘Последователността на заглавията в съдържанието
                 ‘зависи от последователността, в която сме селектирали слайдовете
                  Dim slideOrder() As Integer 

                 ‘Зависи от броя слайдове, които сме селектирали
                  ReDim slideOrder(1 To ActiveWindow.Selection.SlideRange.Count) 

                 ‘Натрупва съответните номера на всички селектирани от нас слайдове
                 For i = 1 To ActiveWindow.Selection.SlideRange.Count
                     slideOrder(i) = ActiveWindow.Selection.SlideRange(i).SlideIndex
                 Next 

                 ‘Преминава през всеки слайд в последователността, в която сме ги селектирали
                 For o = 1 To UBound(slideOrder)
                       If ActivePresentation.Slides(slideOrder(o)).Shapes.HasTitle Then
                             ‘Създава съдържанието
                              strTitle = ActivePresentation.Slides(slideOrder(o)).Shapes.Title.TextFrame.TextRange.Text
                              strSel = strSel & strTitle & vbCrLf
                     End If
               Next 

              ‘Създава слайд пред първия, селектиран от нас
              Set summary = ActivePresentation.Slides.Add(slideOrder(1), ppLayoutText)
              ‘Добавя поле със заглавие
              summary.Shapes(1).TextFrame.TextRange = „Съдържание“
              ‘Добавя текстово после със самото съдържание
              summary.Shapes(2).TextFrame.TextRange = strSel
     End If
 End Sub
 

По този начин, ако първоначално презентацията ни е имала вида:
 

с помощта на макроса бързо и лесно получаваме следния резултат:
 

______________________________________________
Лилия Николова е Cisco и Microsoft консултант в учебния център на Ню Хърайзънс България и инструктор с богат преподавателски опит.
Kъм момента е сертифицирана като: Cisco Certified Network Associate (CCNA), Microsoft Certified Trainer (MCT), Microsoft Office Specialist Master (MOS Master). 

Вижте курсовете за Microsoft PowerPoint в учебен център Ню Хърайзънс.
Курсове за Excel 2010/2007/2003 
Офис 2010 – нови курсове

Интересувате се от темата? Пишете ни!

    Бързо запитване

    Вашите имена *

    Вашият Email *

    Вашето съобщение *

    captcha

    Добавете коментар

    Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *