Powerpoint dia's maken vanuit tekstbestand.

Status
Niet open voor verdere reacties.

FVG

Gebruiker
Lid geworden
8 feb 2001
Berichten
40
Een collega van mij heeft een tekstbestand met enkele honderden spreuken (1 spreuk per lijn). Deze zouden in Powerpoint moeten geraken. 1 spreuk per dia.
Is het mogelijk via VBA een .txt bestand te lezen en elke tekstlijn in een afzonderlijke dia te plaatsen?
 
Roept associaties op met de waargenomen combinatie:

'Vaart minderen spaart kinderen'

met daaronder

'Minder ****** spaart spreuken'

Code:
Sub M_snb()
  sn = Split(CreateObject("scripting.filesystemobject").opentextfile("G:\OF\spreuken.txt").readall, vbCrLf)
    
  With CreateObject("powerpoint.application")
    With .presentations.Add
      For j = 0 To UBound(sn)
        With .slides.Add(1, 2)
          .Shapes(1).Delete
          With .Shapes(1)
             With .TextFrame
                .WordWrap = -1
                .Orientation = 1
                With .TextRange
                  .ParagraphFormat.Bullet = 0
                  .Text = sn(j)
                  With .Font
                     .Name = "Arial"
                     .Size = 28
                  End With
               End With
             End With
           End With
         End With
      Next

      .SaveAs "G:\OF\spreuken.pptx", 11
      .Close
    End With
  End With
End Sub
 
Laatst bewerkt:
Bedankt SNB,
Heb het ondertussen kunnen uittesten met een klein bestandje van een 10-tal lijnen en dat blijkt zeer goed te gaan.
Heb nu gevraagd mij een kopie te bezorgen van de volledige Excel met daarin meer dan 3000 lijnen. Dan kunnen we testen of het ook met die hoeveelheden van data goed verloopt. Het wordt dan wel een heel grote Powerpoint natuurlijk.
Ik hou je op de hoogte.
Frank
 
Dank voor je signaal.

De macro kan nog iets beter:

Code:
Sub M_snb()
  sn = Split(CreateObject("scripting.filesystemobject").OpenTextFile("G:\OF\spreuken.txt").ReadAll, vbCrLf)
    
  With CreateObject("Powerpoint.application")
    With .presentations.Add
      For j = 1 To UBound(sn)
        With .slides.Add(1, 12).Shapes.AddTextbox(1, 120, 120, 270, 100).TextFrame.TextRange
          .Text = sn(j)
          .Font.Size = 38
        End With
      Next

      .SaveAs "G:\OF\spreuken.pptx", 11
      .Close
    End With
  End With
End Sub
 
Laatst bewerkt:
Beste SNB,
Omdat het door een niet kenner moet uitgevoerd worden heb ik ondertussen een knop toegevoegd die de macro gaat uitvoeren in een show-versie (.ppsm).
Spijtig genoeg weten we niet wanneer de macro helemaal teneinde is.
Is het mogelijk om de powerpoint-show in dat geval automatisch te sluiten of een melding te tonen zodat de gebruiker weet dat het spreuken-bestand is aangemaakt en dat dus de powerpoint voorstelling mag gesloten worden.
 
De macro wordt in Excel of Word gestart.
De aangemaakte powerpointpresentatie wordt door de macro gesloten.

Als je deze macro voor het slapengaan start, kun je na het ontbijt weer gewoon in Excel/Word werken. :)

Voor illustratiedoeleinden maak je gewoon een klein spreuken.txt bestand.
 
Laatst bewerkt:
OK, begrepen. Ik had de macro in Powerpoint gezet en van daaruit gestart. Die maakte vervolgens een nieuwe Powerpoint aan met de spreuken maar de Powerpoint met de macro bleef gewoon lopen.
Ik zal het nu in Word proberen.
 
Daar kun je hem gewoon in de normal.dot zetten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan