Relativer Hyperlink mit VBA erstellen
Schritt-für-Schritt-Anleitung
Um einen relativen Hyperlink in Excel mit VBA zu erstellen, kannst Du die folgende Methode verwenden. Diese Anleitung setzt voraus, dass Du über grundlegende Kenntnisse in Visual Basic for Applications (VBA) verfügst.
- Öffne die Excel-Datei, in der Du den Hyperlink hinzufügen möchtest.
- Drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" klickst und "Einfügen" > "Modul" wählst.
- Kopiere und füge den folgenden Code in das Modul ein:
Private Const MAX_PATH = 260
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10
Private Const FILE_ATTRIBUTE_NORMAL = &H80
Private Declare Function apiPathRelativePathTo Lib "shlwapi.dll" _
Alias "PathRelativePathToA" (ByVal pszPath As String, _
ByVal pszFrom As String, ByVal dwAttrFrom As Long, _
ByVal pszTo As String, ByVal dwAttrTo As Long) As Long
Public Function GetRelativePath(PathFrom As String, PathTo As String) As String
Dim pszPath As String
pszPath = Space(MAX_PATH)
apiPathRelativePathTo pszPath, PathFrom, _
FILE_ATTRIBUTE_DIRECTORY, PathTo, FILE_ATTRIBUTE_NORMAL
GetRelativePath = Left$(pszPath, InStr(pszPath, Chr(0)) - 1)
End Function
Sub Test()
Dim sPath As String
Dim DateiName As String
Dim sHyperlink As String
sPath = ThisWorkbook.Path
DateiName = Application.GetOpenFilename
sHyperlink = GetRelativePath(sPath, DateiName)
ActiveSheet.Hyperlinks.Add Anchor:=ActiveCell, Address:=sHyperlink, ScreenTip:="Gehe zu Verwenderhinweis"
End Sub
- Schließe den VBA-Editor und kehre zu Excel zurück.
- Führe das Makro
Test
aus, um den relativen Hyperlink zu erstellen.
Häufige Fehler und Lösungen
-
Hyperlink funktioniert nicht: Stelle sicher, dass die Datei, auf die der Hyperlink verweist, am vorgesehenen Speicherort gespeichert ist. Der relative Link ist nur gültig, wenn die Datei im gleichen Verzeichnis oder in einem Unterverzeichnis der Excel-Datei liegt.
-
Leere Zelle nach Hyperlink-Erstellung: Überprüfe, ob das Argument TextToDisplay
im Add
-Befehl angegeben ist. Wenn nicht, wird möglicherweise nur der Hyperlink ohne Text angezeigt.
ActiveSheet.Hyperlinks.Add Anchor:=ActiveCell, Address:=sHyperlink, TextToDisplay:=sHyperlink, ScreenTip:="Gehe zu Verwenderhinweis"
Alternative Methoden
Eine alternative Methode zur Erstellung eines relativen Hyperlinks ist die Verwendung des Excel-Dialogs für Hyperlinks:
Application.Dialogs(xlDialogInsertHyperlink).Show
Dieser Ansatz verwendet die Benutzeroberfläche, um den Hyperlink hinzuzufügen, erfordert jedoch manuelles Eingreifen und bietet möglicherweise nicht die Möglichkeit, den ScreenTip automatisch festzulegen.
Praktische Beispiele
Hier sind einige Beispiele, wie Du den relativen Hyperlink in verschiedenen Szenarien nutzen kannst:
-
Verlinkung zu Dokumenten in Unterordnern: Wenn Du ein Dokument in einem Unterordner der Excel-Datei hast, kannst Du den relativen Pfad einfach erstellen, indem Du den Ordnernamen in der GetRelativePath
-Funktion angibst.
-
Hyperlink zu einer Webseite: Auch Webseiten können mit vba add hyperlink to cell
hinzugefügt werden, jedoch sind diese immer absolut. Du kannst das Prinzip der relativen Links auf lokale Dateien anwenden.
Tipps für Profis
-
Nutze die Excel Linkbasis
, um zu definieren, von welchem Pfad aus relative Links erstellt werden. Dies kann helfen, die Verwaltung von Hyperlinks zu vereinfachen, besonders wenn Du mit mehreren Excel-Dateien arbeitest.
-
Experimentiere mit der href vba
-Funktion, um Hyperlinks dynamisch zu erstellen, die sich bei Änderungen der Dateistruktur anpassen.
FAQ: Häufige Fragen
1. Was ist der Unterschied zwischen absoluten und relativen Hyperlinks in Excel?
Ein absoluter Hyperlink enthält den vollständigen Pfad zur Datei, während ein relativer Hyperlink nur den Pfad relativ zur Position der Excel-Datei angibt.
2. Wie kann ich einen ScreenTip für einen Hyperlink in Excel hinzufügen?
Du kannst den ScreenTip beim Hinzufügen des Hyperlinks durch das Argument ScreenTip
angeben, wie im Beispielcode gezeigt.
3. Funktioniert der relative Link auch auf anderen Computern?
Ja, wenn die Ordnerstruktur gleich bleibt, funktionieren relative Links auch auf anderen Computern, solange die Dateien im gleichen Verhältnis zur Excel-Datei abgelegt sind.