2010-07-27 10 views
5

Tengo una presentación de PowerPoint que contiene alrededor de 50 diapositivas. Cada diapositiva puede tener 1 o más comentarios proporcionados por el reviwer (hecho usando insertar-> menú de comentarios).Extraer comentarios de una presentación de PowerPoint con VBA

Estoy tratando de obtener los comentarios programáticamente exportados a un archivo de texto con el código 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 

En el código anterior, debo proporcionar el contexto comentario, así que se escriben en un archivo de texto (qué línea de la diapositiva fue seleccionada y comentada)

Pregunta: ¿Hay algún atributo que pueda usar para obtener esta información?

+0

¿Qué quiere decir con "contexto de comentario"? ¿El problema también es cómo escribir en un archivo de texto en VBA o solo se trata del "contexto de comentario"? Puedo proporcionarle el código de cómo escribir un archivo de texto si esto ayuda y, tal vez, si aclara el "contexto de comentario", entonces también lo hará. – hol

+0

me refiero al contexto del comentario como el siguiente: supongo que hay una línea de texto en el ppt el examinador lo selecciona y hace clic en Insertar-> menú de comentarios Necesito obtener la línea que se seleccionó y se comentó sobre – balalakshmi

Respuesta

4

De esta manera:

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 

La parte principal es sobre el bucle a través de todas las formas de los padres al comentario.

+0

genial y ¡trabajó! gracias – balalakshmi

+0

¿Alguna forma de obtener el número de diapositiva también? – Alex

+0

@hol: He intentado con estas soluciones. Descubrí que este fragmento de código no identifica los comentarios de respuesta en la misma diapositiva. ¿Puedes ayudarme a obtener comentarios de respuesta también? –

Cuestiones relacionadas