Objekt Name auslesen in Excel VBA
Schritt-für-Schritt-Anleitung
Um den Namen eines eingefügten Objekts in Excel VBA auszulesen, kannst du das folgende Makro verwenden. Es ermöglicht dir, eine Datei auszuwählen, sie in die Tabelle einzufügen und anschließend den Namen des Objekts auszulesen.
-
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu starten.
-
Füge ein neues Modul ein: Rechtsklick auf "VBAProject (dein Dokument)" > Einfügen > Modul.
-
Kopiere den folgenden Code in das Modul:
Dim varDatei As Variant, OBJ
varDatei = Application.GetOpenFilename(FileFilter:="AlleDateien(*.*),*.*", Title:="Bitte einzubettende Datei auswählen")
If varDatei <> False Then
Set OBJ = ActiveSheet.OLEObjects.Add(Filename:=varDatei, Link:=False, DisplayAsIcon:=True, IconFileName:="packager.dll", IconIndex:=0, IconLabel:=Mid(varDatei, InStrRev(varDatei, "\") + 1))
MsgBox OBJ.Name 'Hier wird der Name des Objekts ausgegeben
End If
-
Schließe den VBA-Editor und führe das Makro aus.
Die Meldung zeigt dir den Namen des gerade eingefügten Objekts an.
Häufige Fehler und Lösungen
Alternative Methoden
Wenn du eine alternative Methode zur Objekterstellung und -benennung benötigst, kannst du auch Excel-Formeln verwenden, um den Dateinamen direkt in eine Zelle zu schreiben, nachdem das Objekt eingefügt wurde. Hier ist ein Beispiel:
ActiveSheet.Cells(1, 1).Value = Mid(varDatei, InStrRev(varDatei, "\") + 1)
Dies schreibt den Namen der Datei in die Zelle A1.
Praktische Beispiele
Hier sind einige praktische Beispiele, wie du den Code anpassen kannst:
-
Objekt mit Link einfügen:
Set OBJ = ActiveSheet.OLEObjects.Add(Filename:=varDatei, Link:=True, DisplayAsIcon:=True)
-
Objekt ohne Icon einfügen:
Set OBJ = ActiveSheet.OLEObjects.Add(Filename:=varDatei, Link:=False, DisplayAsIcon:=False)
Diese Anpassungen erlauben es dir, die Funktionsweise des Einfügens von Objekten in Excel zu variieren.
Tipps für Profis
-
Nutze Option Explicit
am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind.
-
Verwende Fehlerbehandlungsroutinen, um unerwartete Fehler abzufangen. Beispiel:
On Error Resume Next
' Dein Code hier
If Err.Number <> 0 Then MsgBox "Ein Fehler ist aufgetreten."
-
Experimentiere mit verschiedenen Dateitypen, um das volle Potenzial von OLE-Objekten auszuschöpfen.
FAQ: Häufige Fragen
1. Wie kann ich den Code anpassen, um mehrere Dateien auszuwählen?
Du kannst die Application.GetOpenFilename
-Methode so anpassen, dass sie mehrere Dateien auswählt, indem du MultiSelect:=True
hinzufügst. Beachte, dass du dann eine Schleife benötigst, um jede Datei einzufügen.
2. Funktioniert das auch in Excel Online?
Leider sind VBA-Makros nur in der Desktop-Version von Excel verfügbar. Excel Online unterstützt keine VBA-Skripte.
3. Was ist der Unterschied zwischen Link und Embed?
Ein "Link" verweist auf die Originaldatei, während "Embed" die Datei in deine Excel-Datei einfügt, sodass sie unabhängig von der Originaldatei verwendet werden kann.