Ich habe in einem Tabellenblatt PDF Dateien eingebettet.
Welche Lösung gibt es bitte, damit ich diese eingebetteten Dateien per VBA starten kann?
Danke
Josef
Um eingebettete OLE-Objekte, wie beispielsweise PDF-Dateien, in Excel per VBA zu starten, kannst du folgende Schritte befolgen:
Öffne die VBA-Entwicklungsumgebung:
ALT + F11, um den VBA-Editor zu öffnen.Füge ein neues Modul hinzu:
Schreibe den VBA-Code:
Sub StartOLEObject()
Dim oleObj As OLEObject
Set oleObj = ActiveSheet.OLEObjects(1) ' Nimmt das erste OLE-Objekt auf dem aktiven Blatt
oleObj.Verb VerbEnum.vbOpen ' Öffnet das OLE-Objekt
End Sub
Führe den Code aus:
ALT + F8, wähle „StartOLEObject“ aus der Liste und klicke auf „Ausführen“.Fehler: „Laufzeitfehler 438: Objekt unterstützt diese Eigenschaft oder Methode nicht“
Fehler: OLE-Objekt öffnet sich nicht
Eine alternative Möglichkeit, eingebettete OLE-Objekte zu öffnen, besteht darin, die FollowHyperlink-Methode zu verwenden. Dies kann nützlich sein, wenn du den Pfad zu einer externen Datei hast:
Sub OpenPDF()
Dim filePath As String
filePath = "C:\Pfad\zu\deiner\Datei.pdf" ' Ändere den Pfad zur Datei
ThisWorkbook.FollowHyperlink filePath
End Sub
Hier sind einige praktische Anwendungen des oben genannten Codes:
Öffnen des zweiten OLE-Objekts:
Set oleObj = ActiveSheet.OLEObjects(2)
oleObj.Verb VerbEnum.vbOpen
Schleife durch alle OLE-Objekte auf einem Blatt:
Sub OpenAllOLEObjects()
Dim oleObj As OLEObject
For Each oleObj In ActiveSheet.OLEObjects
oleObj.Verb VerbEnum.vbOpen
Next oleObj
End Sub
Verwende Error Handling: Implementiere Fehlerbehandlung in deinem VBA-Code, um unvorhergesehene Probleme elegant zu lösen.
On Error Resume Next
oleObj.Verb VerbEnum.vbOpen
If Err.Number <> 0 Then
MsgBox "Fehler beim Öffnen des OLE-Objekts!"
End If
On Error GoTo 0
Dokumentation: Halte deinen Code gut dokumentiert, damit du und andere Nutzer später verstehen, wie du die eingebetteten OLE-Objekte steuern kannst.
1. Was sind OLE-Objekte in Excel?
OLE-Objekte (Object Linking and Embedding) sind Dateien oder Anwendungen, die in eine Excel-Arbeitsmappe eingebettet oder verknüpft werden können, wie z.B. PDFs oder Word-Dokumente.
2. Wie kann ich die Anzahl der OLE-Objekte auf einem Arbeitsblatt anzeigen?
Du kannst die Anzahl der OLE-Objekte mit folgendem Code ermitteln:
MsgBox ActiveSheet.OLEObjects.Count
3. Funktioniert dieser Code in Excel 2016?
Ja, der oben gezeigte VBA-Code funktioniert in Excel 2016 und neueren Versionen. Achte darauf, dass die OLE-Objekte korrekt eingebettet sind.