Beliebt

F├╝llen Sie TextBox in PowerPoint dynamisch [geschlossen] - Microsoft Powerpoint

Ich muss eine Vielzahl von Folien erstellen, die alle das gleiche Layout und Design aufweisen, aber in einigen Textfeldern unterschiedliche Inhalte aufweisen. Bisher habe ich es nicht geschafft, eine zu finden nicht kommerziell L├Âsung zum Best├╝cken eines PowerPoint-Elements mit csv / excel-Daten. Handels├╝bliche Addins (d. H. https://www.presentationpoint.com/software/datapoint/) scheinen f├╝r eine Funktion, die ich 1 - 2 Mal pro Jahr ben├Âtigen kann, ├╝berteuert.

Vielen Dank

Antworten:

1 f├╝r Antwort Ôäľ 1

Ich habe ein kleines Makro gefunden, das die Arbeit f├╝r Sie erledigt. Ich habe es getestet und es funktioniert, aber Sie m├╝ssen einige Einstellungen f├╝r Makros in ppt vornehmen. Meine ├ťbersetzung ist nicht perfekt, aber ich werde es versuchen.

  1. Visual Basic aktivieren:

Aktivieren Sie die Entwicklertools in ppt, indem Sie in die Men├╝leiste "Dateioptionen" gehen und "Entwicklertools" ausw├Ąhlen. Verlassen Sie mit OK.

  1. Holen Sie sich die ben├Âtigten Exelobjects f├╝r ppt:

Gehen Sie zur neuen Registerkarte "Entwicklertools" und w├Ąhlen Sie"Visual Basic" W├Ąhlen Sie dann oben "Extras" und anschlie├čend "Nachschlagen". Suchen und ├╝berpr├╝fen Sie "Microsoft Excel 14.0-Objektbibliothek" oder ├Ąhnliches. Beenden Sie den Vorgang, indem Sie auf OK klicken

  1. baue ein Modul f├╝r den Makrocode:

Klicken Sie mit der rechten Maustaste auf die erste Zeile des "Projekt-Explorers", z. "vba-project (myproject)", w├Ąhle insert, module

F├╝ge den Macrocode in das neue Code-Fenster in der Mitte ein

Sub CreateSlides()
"*** Original Sourcecode taken from http://superuser.com/questions/323408/excel-data-into-powerpoint-slides ***
"Open the Excel workbook. Change the filename here.
Dim OWB As New Excel.Workbook

Set OWB = Excel.Application.Workbooks.Open("C:TmpList1.xlsx")
"Grab the first Worksheet in the Workbook
Dim WS As Excel.Worksheet
Dim sCurrentText As String
Dim sIdentifier As String
Dim oSl As Slide
Dim oSh As Shape
Set WS = OWB.Worksheets(1)
Dim i As Long
"Loop through each used row in Column A

For i = 3 To WS.Range("A65536").End(xlUp).Row
Debug.Print "Bin hier"
"Copy the first slide and paste at the end of the presentation
ActivePresentation.Slides(1).Copy
ActivePresentation.Slides.Paste
Set oSl = ActivePresentation.Slides(ActivePresentation.Slides.Count)

For c = 1 To 3

sCurrentText = WS.Cells(i, c).Value
sIdentifier = WS.Cells(2, c).Value

" find each shape with sIdentifier of the current column (e.g. "field1~", "field2~", and so on) in text, replace it with value from worksheet
For Each oSh In oSl.Shapes
" Make sure the shape can hold text and if is, that it IS holding text
If oSh.HasTextFrame Then
If oSh.TextFrame.HasText Then
" it"s got text, do the replace
With oSh.TextFrame.TextRange
.Replace sIdentifier, sCurrentText
End With
End If
End If
Next
Next
Next

ActiveWorkbook.Close

End Sub

Um zur Standard-PPT-Ansicht zur├╝ckzukehren, klicken Sie auf das Symbol oben links oder dr├╝cken Sie Alt + F11

  1. exelsheet erstellen:

Erstellen Sie eine Excel-Tabelle mit 1-3 Spalten (f├╝r 1-3 Textfelder), die unter demselben Namen und Ordner wie im Makro gespeichert sind. f.e. "C: TmpList1.xlsx"

Die erste Zeile wird nicht verwendet

Die zweite Zeile benennt den Standardtext des abh├Ąngigen Textfeldes wie "field1"

Die n├Ąchsten Zeilen sollten den Text jeder folgenden Folie enthalten

Struktur wie:

not used               not used
field1                 field2
mytextforbox1slide1    mytextforbox2slide1
mytextforbox1slide2    mytextforbox2slide2
....

5.Bauen Sie ein PPT:

f├╝gen sie ein texfeld in die erste folie ein und schreiben sie einfach "field1" hinein

F├╝gen Sie ein zweites Textfeld ein und schreiben Sie einfach "field2" hinein

M├Âglicherweise m├╝ssen Sie die folgenden oberen Folien neu anordnen, nachdem das Makro beendet wurde weil nur das oberste zum Kopieren und F├╝llen verwendet wird

  1. F├╝hren Sie das Makro auf der Registerkarte Entwickler, Makros, Makro ausf├╝hren

Wenn Sie verstehen, wie das Makro funktioniert, und mit ein wenig VBA-Erfahrung k├Ânnen Sie den Code ├Ąndern f├╝r Ihre speziellen W├╝nsche

hoffe, ich konnte ein bisschen helfen

besch├Ąftigt byte