PowerPoint spezifische Informationen: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Pwania (Diskussion | Beiträge) |
Pwania (Diskussion | Beiträge) |
||
Zeile 35: | Zeile 35: | ||
== Beispiele == | == Beispiele == | ||
Public Sub ExportCurrentSlide() | <span style="Color:blue"> Public Sub </span>ExportCurrentSlide<span style="Color:gray">()</span> | ||
Dim strPath As String | <span style="Color:blue"> Dim </span>strPath<span style="Color:blue"> As String</span> | ||
If ActivePresentation.Path = "" Then Exit Sub | <span style="Color:blue"> If </span>ActivePresentation<span style="Color:gray">.</span>Path <span style="Color:gray">=</span> <span style="Color:gray">""</span><span style="Color:blue"> Then Exit Sub </span> <span style="Color:green">' Präsentation MUSS gespeichert sein!!!</span> | ||
strPath <span style="Color:gray">=</span> BrowseToPath | |||
If strPath = "" Then Exit Sub | <span style="Color:blue"> If </span>strPath <span style="Color:gray">=</span> <span style="Color:gray">""</span><span style="Color:blue"> Then Exit Sub</span> | ||
ActiveWindow<span style="Color:gray">.</span>Selection<span style="Color:gray">.</span>SlideRange<span style="Color:gray">.</span>Item<span style="Color:gray">(1).</span>PublishSlides strPath<span style="Color:gray">,</span><span style="Color:blue"> True</span><span style="Color:gray">,</span><span style="Color:blue"> True | |||
End Sub</span> | |||
<span style="Color:blue"> Public Sub </span>ExportAllSlides<span style="Color:gray">()</span> | |||
<span style="Color:blue"> Dim </span>strPath<span style="Color:blue"> As String</span> | |||
strPath <span style="Color:gray">=</span> BrowseToPath | |||
<span style="Color:blue"> If </span>strPath <span style="Color:gray">=</span> <span style="Color:gray">""</span><span style="Color:blue"> Then Exit Sub</span> | |||
<span style="Color:blue"> If </span>CanExportSlides<span style="Color:gray">(</span>strPath<span style="Color:gray">)</span> <span style="Color:gray">=</span><span style="Color:blue"> False Then Exit Sub</span> | |||
ActivePresentation<span style="Color:gray">.</span>PublishSlides strPath<span style="Color:gray">,</span><span style="Color:blue"> True</span><span style="Color:gray">,</span><span style="Color:blue"> True | |||
End Sub</span> | |||
<span style="Color:blue"> Private Function </span>CanExportSlides<span style="Color:gray">(</span><span style="Color:blue">ByVal </span>strPath<span style="Color:blue"> As String</span><span style="Color:gray">)</span><span style="Color:blue"> As Boolean</span> | |||
<span style="Color:blue"> If </span>ActivePresentation<span style="Color:gray">.</span>Path <span style="Color:gray">=</span> <span style="Color:gray">""</span><span style="Color:blue"> Then</span> | |||
MsgBox <span style="Color:gray">"Bitte speichern Sie erst diese Präsentation, bevor Sie Folien exportieren."</span> | |||
<span style="Color:blue"> Exit Function</span> | |||
<span style="Color:blue"> End If</span> | |||
<span style="Color:blue"> If </span>FileSystem<span style="Color:gray">.</span>Dir<span style="Color:gray">(</span>strPath<span style="Color:gray">,</span> vbDirectory<span style="Color:gray">)</span> <span style="Color:gray">=</span> <span style="Color:gray">""</span><span style="Color:blue"> Then</span> | |||
MsgBox <span style="Color:gray">"Der Pfad '"</span> & strPath & <span style="Color:gray">"' existiert nicht!"</span> | |||
<span style="Color:blue"> Exit Function</span> | |||
<span style="Color:blue"> End If</span> | |||
CanExportSlides <span style="Color:gray">=</span><span style="Color:blue"> True | |||
End Function</span> | |||
If ActivePresentation.Path = "" Then | |||
Exit Function | |||
End If | |||
If FileSystem.Dir(strPath, vbDirectory) = "" Then | |||
Exit Function | |||
End If | |||
Version vom 21. Juni 2019, 09:33 Uhr
VBA in PowerPoint
Makros aufzeichnen
Das Aufzeichnen von PowerPoint Makros ist seit Office 2007 nicht mehr möglich. Sie können sich dafür eine Entwicklungsumgebung für Office 2003 zulegen oder versuchen, in Excel aufgezeichnete Makros so anzupassen, dass sie in PowerPoint verwendet werden können. Die Aufzeichnungen von Arbeitsschritten mit Formen, Diagrammen und SmartArt können sehr gut für PowerPoint adaptiert werden.
PowerPoint Objekte
PowerPoint ist ähnlich hierarchisch aufgebaut wie Excel (Zelle liegt in Arbeitsblatt, Arbeitsblatt in Arbeitsmappe), kennt jedoch im Gegensatz zu Excel (und Word) Zustände, welche bei Excel und Word nicht berücksichtigt werden müssen, da sie nicht herbeigeführt werden können:
- Excel
- In Excel muss man lediglich prüfen, ob eine Arbeitsmappe geöffnet ist, denn daraus lässt sich ableiten, dass diese mindestens ein Arbeitsblatt und dieses wiederum die komplette Ausstattung an Zellen enthält.
- Auch gibt es immer eine ActiveCell und eine ActiveSheet, sobald eine Arbeitsmappe geöffnet ist.
- Word
- In Word muss man ebenfalls lediglich prüfen, ob ein Dokument geöffnet ist. Daraus resultiert, dass auch immer auf einen Text in der Auswahl zugegriffen werden kann.
- PowerPoint
- Präsentationen können beliebig viele, aber auch keine Folien und Folien können beliebig viele, aber auch keine Formen enthalten!
- PowerPoint kennt den Zustand, in dem nichts ausgewählt ist, obwohl die Präsentation Folien und Formen enthält!
- Weitere Besonderheiten
- Sämtliche Inhalte (Texte, Tabellen, Diagramme etc.) befinden sich in Formen, die mehr oder weniger spezialisiert sind.
- Die Auswahl (Selection) ist dem aktuellen Fenster zugeordnet und ist ausschließlich hierrüber erreichbar.
- Beispiele
If Application.Presentations.Count < 1 Then Exit Sub If ActivePresentation.Slides.Count < 1 Then Exit Sub ' PowerPoint kennt leere Präsentationen
' Erzeugt Fehler, wenn nichts ausgewählt ist: ' If ActiveWindow.Selection.ShapeRange.Count < 1 Then Exit Sub ' PowerPoint kennt den Zustand, in dem NICHTS ausgewählt ist If ActiveWindow.Selection.Type = ppSelectionNone Then Exit Sub
Beispiele
Public Sub ExportCurrentSlide() Dim strPath As String If ActivePresentation.Path = "" Then Exit Sub ' Präsentation MUSS gespeichert sein!!! strPath = BrowseToPath If strPath = "" Then Exit Sub ActiveWindow.Selection.SlideRange.Item(1).PublishSlides strPath, True, True End Sub
Public Sub ExportAllSlides() Dim strPath As String strPath = BrowseToPath If strPath = "" Then Exit Sub If CanExportSlides(strPath) = False Then Exit Sub ActivePresentation.PublishSlides strPath, True, True End Sub
Private Function CanExportSlides(ByVal strPath As String) As Boolean If ActivePresentation.Path = "" Then MsgBox "Bitte speichern Sie erst diese Präsentation, bevor Sie Folien exportieren." Exit Function End If If FileSystem.Dir(strPath, vbDirectory) = "" Then MsgBox "Der Pfad '" & strPath & "' existiert nicht!" Exit Function End If CanExportSlides = True End Function