Извлечение комментариев из презентации PowerPoint с помощью VBA

У меня есть PowerPoint, содержащий около 50 слайдов. На каждом слайде может быть 1 или несколько комментариев, предоставленных редактором (выполняется с помощью меню «Вставить-> Комментарии»).

Я пытаюсь программно экспортировать комментарии в текстовый файл, используя этот код 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

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

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


person balalakshmi    schedule 27.07.2010    source источник
comment
Что вы имеете в виду под контекстом комментариев? Проблема также в том, как писать в текстовый файл в VBA, или это просто о контексте комментария. Я могу предоставить вам код, как написать текстовый файл, если это поможет, и, возможно, если вы проясните контекст комментария, тогда это также будет с ним.   -  person hol    schedule 27.07.2010
comment
Я имел в виду следующий контекст комментария: предположим, что в ppt есть строка текста, редактор выбирает ее и нажимает «Вставить» - ›меню комментариев. Мне нужно получить строку, которая была выбрана и на которую был дан комментарий   -  person balalakshmi    schedule 27.07.2010


Ответы (1)


Нравится:

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

Основная часть посвящена циклу через все формы, являющиеся родительскими для комментария.

person hol    schedule 27.07.2010
comment
Есть ли способ получить номер слайда? - person Alex; 17.06.2015
comment
@hol: Я пробовал эти решения, я обнаружил, что этот фрагмент кода не идентифицирует комментарии ответа на том же слайде? Не могли бы вы помочь мне также получить ответы на комментарии? - person Sivaprasad Km; 31.10.2016
comment
Предлагаю вам разместить новый вопрос. - person hol; 01.11.2016