2010-07-27 3 views
5

У меня есть PowerPoint, который содержит около 50 слайдов. На каждом слайде может быть 1 или более комментариев, предоставленных редактором (выполняется с помощью меню вставки-> комментариев).Извлечение комментариев из презентации PowerPoint с использованием VBA

Я пытаюсь получить комментарии программно экспортируемые в текстовый файл, используя этот VBA код:

Sub ConvertComments() 
    ''# Converts new-style comments to old 

     Dim oSl As Slide 
     Dim oSlides As Slides 
     Dim oCom As Comment 

     Set oSlides = ActivePresentation.Slides 
     For Each oSl In oSlides 
      For Each oCom In oSl.Comments 
       ''# write the text to file : (oCom.Text) 
       WriteToATextFile oCom.Author, <what needs to come here>, oCom.Text 
      Next oCom 
     Next oSl 
End Sub 

В приведенном выше коде, я должен предоставить комментарий контекст, а также должны быть записаны в текстовый файл (какая линия на слайде была выбрана и прокомментирована)

Вопрос: Есть ли какой-либо атрибут, который я могу использовать для получения этой информации?

+0

Что вы подразумеваете под термином "comment context"? Проблема также в том, как писать в текстовый файл в VBA или это просто «контекст комментария». Я могу предоставить вам код, как написать текстовый файл, если это поможет, и, возможно, если вы поясните «контекст комментария», то это также будет с ним. – hol

+0

Я имел в виду контекст комментария: Предположим, есть строка текста в ppt . Редактор выбирает ее и нажимает кнопку «Вставить» -> меню комментариев Мне нужно получить выделенную строку и был прокомментирован – balalakshmi

ответ

4

Как это:

Sub ConvertComments() 
''# Converts new-style comments to old 

    Dim oSl As Slide 
    Dim oSlides As Slides 
    Dim oCom As Comment 
    Dim oShape As Shape 


    Open "filename.txt" For Output As 1 
    Set oSlides = ActivePresentation.Slides 

    Dim myContext As String 
    For Each oSl In oSlides 
     For Each oCom In oSl.Comments 
      myContext = "" 
      For ShapeIndex = oCom.Parent.Shapes.Count To 1 Step -1 
       myContext = myContext & oCom.Parent.Shapes(ShapeIndex).AlternativeText & " " 
      Next 
      Write #1, oCom.Author & ";" & myContext & ";" & oCom.Text 
     Next oCom 
    Next oSl 
    Close 1 
End Sub 

Основная часть о петле через все фигуры родителя на комментарий.

+0

отлично, и он работал! спасибо – balalakshmi

+0

Любой способ получить номер слайдов? – Alex

+0

@hol: Я пробовал эти решения, я обнаружил, что этот фрагмент кода не идентифицирует ответные комментарии на одном слайде? Не могли бы вы также помочь мне получить ответные комментарии? –