Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1140to1144
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: Inhalt einer Textbox in PPT auslesen

VBA: Inhalt einer Textbox in PPT auslesen
Matthias5
Hallo Excelfreunde,
ich habe in einer Powerpoint-Präsentation verschiedende Textboxen und Comboboxen, deren Wert ich gerne aus Excel heraus auslesen möchte. Das will mir leider nicht gelingen. Derzeit versuche ich mich mit diesem Code:
Sub import_from_ppt()
Dim PPT
Dim objPP     As Object
Dim objP      As Object  'PowerPoint.Presentation
'Dim objCL     As Object  'PowerPoint.CustomLayout
Dim objS      As Object  'PowerPoint.Slide
Application.ScreenUpdating = False
PPT = Shell("C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.EXE")
Set objPP = CreateObject("PowerPoint.Application")
Set objP = objPP.Presentations.Open("PFAD\XYZ.PPT")
Set objS = objP.Slides(2)
  MsgBox objS.Shapes("TextBox1").TextFrame.Textrange.Text
objP.Close
objPP.Quit
Set objPP = Nothing
Set objP = Nothing
Set objS = Nothing
Application.ScreenUpdating = True
End Sub
An der markierten Stelle erhalte ich einen Automatisierungsfehler:
Kann mich hier bitte jemand abholen und mir zeigen, wie es richtig geht?
Danke und viele Grüße,
Matthias

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
PS: Verweis auf PPT-Object Library ist gesetzt! oT
25.02.2010 14:03:42
Matthias5
MsgBox objS.Shapes("Text Box 4").TextFrame....
25.02.2010 14:51:10
NoNet
Hallo Matthias,
bei mir klappt das zumindest mit folgendem Code (angepasst eine geöffnete PPT mit 1 Folie) :
VBA-Code:
Sub import_from_ppt_NoNet()
   'Dim PPT
   Dim objPP     As Object
   Dim objP      As Object  'PowerPoint.Presentation
  'Dim objCL     As Object  'PowerPoint.CustomLayout
   Dim objS      As Object  'PowerPoint.Slide
   'Application.ScreenUpdating = False
   'PPT = Shell("C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.EXE")
   Set objPP = GetObject(, "PowerPoint.Application")
   Set objP = objPP.ActivePresentation
   'Set objP = objPP.Presentations.Open("PFAD\XYZ.PPT")
   Set objS = objP.Slides(1)
   MsgBox objS.Shapes("Text Box 4").TextFrame.Textrange.Text
'   objP.Close
'   objPP.Quit
'   Set objPP = Nothing
'   Set objP = Nothing
'   Set objS = Nothing
'   Application.ScreenUpdating = True
End Sub
Beachte bitte, dass das Objekt "Text Box 4" (also mit Leerzeichen !) anstatt "TextBox1" heißt !
Gruß, NoNet
Funktioniert leider nocht nicht...
Matthias5

Hallo NoNet,
vielen Dank für deine Antwort! Leider funktioniert es so noch immer nicht bei mir.
Mit der Schreibweise "Text Box 1" bekomme ich den Laufzeitfehler 5 "Ungültiges Argument", mit der Schreibweise "Textbox1" den schon bekannten Automatisierungsfehler. Die Schreibsweise ist auch nicht das Problem.
So bekomme ich fehlerfrei den Namen des Shape angezeigt:
MsgBox objS.Shapes("TextBox1").Name
Ich habe den Befehl jetzt auch mal direkt in PPT getestet:
Sub test()
MsgBox ActivePresentation.Slides(2).Shapes("TextBox1").TextFrame.TextRange.Text
End Sub
Das gibt mir den Fehler:
Ich verstehe es nicht. Hast du vielleicht noch eine Idee?
Gruß,
Matthias
TextBox(en) verwechselt....
NoNet

Hallo Matthias,
sorry - ich hatte wohl "TextBox" (als Steuerelement der Steuerelemente-Toolbox) mit "Text Box" (Autoform "Textfeld") verwechselt, daher die unterschiedliche Benamung...
SO sollte es aus PPT mit einer "TextBox" aus der Toolbox funktionieren :
MsgBox ActivePresentation.Slides(1).Shapes("Text Box 4").OLEFormat.Object.text
aus Excel entsprechend :
MsgBox objT.OLEFormat.Object.text
Gruß, NoNet
Jawollja!!!! :-)
Matthias5

Hi NoNet,
jawoll, es funktioniert! Ich danke dir sehr, das hat mich ein großes Stück weitergebracht. :-)
Viele Grüße,
Matthias
Apropos ABHOLEN : Es fährt ein Zug nach NB...
NoNet

Hey Mattias,
schön, dass es jetzt klappt....
Apropos "abholen" : Im Oktober fährt sicherlich ein Zug/Auto etc. von DU nach NB...
Vielleicht sogar vom 15.-17.10. mit Dir als Fahrgast ?!?!?
https://www.herber.de/forum/messages/1140533.html
Falls Uduuh doch kommen sollte, könnte er Dich (oder Du ihn ?) sicherlich auch "abholen" ;-)
Gruß, NoNet
Exceltreffen
Matthias5

Hi NoNet,
habe ich schon gesehen, ich schaue ja gelegentlich immer mal wieder bei Exceltreffen.de rein. Schade, dass es schon wieder nicht in DU klappt. Das wäre natürlich ein super Heimspiel gewesen.
Ob es im Oktober klappt, muss ich mal sehen. Auf jeden Fall eine gute Idee, sich mit Uduuh kurzzuschließen.
Gruß,
Matthias
Anzeige
Funktioniert leider nocht nicht...
25.02.2010 15:03:58
Matthias5
Hallo NoNet,
vielen Dank für deine Antwort! Leider funktioniert es so noch immer nicht bei mir.
Mit der Schreibweise "Text Box 1" bekomme ich den Laufzeitfehler 5 "Ungültiges Argument", mit der Schreibweise "Textbox1" den schon bekannten Automatisierungsfehler. Die Schreibsweise ist auch nicht das Problem.
So bekomme ich fehlerfrei den Namen des Shape angezeigt:
MsgBox objS.Shapes("TextBox1").Name
Ich habe den Befehl jetzt auch mal direkt in PPT getestet:
Sub test()
MsgBox ActivePresentation.Slides(2).Shapes("TextBox1").TextFrame.TextRange.Text
End Sub
Das gibt mir den Fehler:
Ich verstehe es nicht. Hast du vielleicht noch eine Idee?
Gruß,
Matthias
Anzeige
TextBox(en) verwechselt....
25.02.2010 15:29:02
NoNet
Hallo Matthias,
sorry - ich hatte wohl "TextBox" (als Steuerelement der Steuerelemente-Toolbox) mit "Text Box" (Autoform "Textfeld") verwechselt, daher die unterschiedliche Benamung...
SO sollte es aus PPT mit einer "TextBox" aus der Toolbox funktionieren :
MsgBox ActivePresentation.Slides(1).Shapes("Text Box 4").OLEFormat.Object.text
aus Excel entsprechend :
MsgBox objT.OLEFormat.Object.text
Gruß, NoNet
Jawollja!!!! :-)
25.02.2010 15:39:13
Matthias5
Hi NoNet,
jawoll, es funktioniert! Ich danke dir sehr, das hat mich ein großes Stück weitergebracht. :-)
Viele Grüße,
Matthias
Apropos ABHOLEN : Es fährt ein Zug nach NB...
25.02.2010 15:59:22
NoNet
Hey Mattias,
schön, dass es jetzt klappt....
Apropos "abholen" : Im Oktober fährt sicherlich ein Zug/Auto etc. von DU nach NB...
Vielleicht sogar vom 15.-17.10. mit Dir als Fahrgast ?!?!?
https://www.herber.de/forum/messages/1140533.html
Falls Uduuh doch kommen sollte, könnte er Dich (oder Du ihn ?) sicherlich auch "abholen" ;-)
Gruß, NoNet
Anzeige
Exceltreffen
25.02.2010 16:06:06
Matthias5
Hi NoNet,
habe ich schon gesehen, ich schaue ja gelegentlich immer mal wieder bei Exceltreffen.de rein. Schade, dass es schon wieder nicht in DU klappt. Das wäre natürlich ein super Heimspiel gewesen.
Ob es im Oktober klappt, muss ich mal sehen. Auf jeden Fall eine gute Idee, sich mit Uduuh kurzzuschließen.
Gruß,
Matthias

44 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige