Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
968to972
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
968to972
968to972
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel Hyperlinks auf Word-Bookmarks

Excel Hyperlinks auf Word-Bookmarks
Werner
Frage und Vorschlag:
Diese Frage betrifft das Zusammenspiel von Excel und Word:
Wenn sich jemand in Word z.B. ein Manuskript von mehreren Dutzend Seiten mit einigen hundert Paragraphen anlegt und jedem einzelnen Abschnitt in Word mit Hilfe eines Bookmarks einen Namen gibt, so kann man diese Bookmarks mit Hilfe von Hyperlinks z.B. aus einer Word-Tabelle anspringen. Ich nehme an, Ihr
wisst, wie das geht.
Wenn ich nun die Hyperlinks stattdessen in eine Excel-Tabelle lege und von dort aus die Bookmarks in Word anspringen will, geht das nicht (so ohne weiteres), weil Excel hier offenbar nicht mit Word zusammenarbeitet. Das ist eigentlich schade, denn Exel-Tabellen sind viel besser zu bearbeiten und auch leichter zu sortieren als Word-Tabellen.
Man kann sich natürlich dadurch behelfen, dass man in Word Überschriften und Unterüberschriften anlegt und dann die entsprechende Ansicht einstellt. Aber die Namen der Bookmarks sollen ja gerade nicht als Teil des Textes erscheinen, sondern nur bei der Feinstrukturierung des Manuskripts helfen. Eine solche Bookmark-Liste könnte man in Excel nach Lust und Laune sortieren, untergliedern usw., aber alles
entfällt, weil Excel und Word offenbar jeweils nur ihre eigenen Hyperlinks und Bookmarks kennen.
Grüße Werner

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Excel Hyperlinks auf Word-Bookmarks
22.04.2008 17:45:02
fcs
Hallo Werner,
man kann in Excel Hyperlinks auf Textmarken in Worddokumenten anlegen.
Das folgende Excel-Makro (erstellt mit Office 2003) erstellt eine Exceldatei mit den Hyperlinks auf alle Textmarken im Worddokument. Wahlweise kann man auch eine schon vorhandene Liste aktualisieren.
Mit etwas Arbeiten an der Objekt-Welt sollte es auch funktionieren, ohne dass Word vor dem Starten des Makros geöffnet sein muss.
Gruß
Franz

Sub HyperlinksTextmarken_nach_Excel()
'Liest die Textmarken eines Worddokuments in Excel ein und erstellt Hyperlinks
' Für Funktion des Makros muss im Excel VBA-Editor unter Extras-Verweise _
die Microsoft Word Object Library aktiviert werden
'Word muss vor dem Starten des Makros geöffnet sein!
Dim varDateiname As Variant
Dim objDok As Word.Document
Dim objWB As Excel.Workbook, objWks As Excel.Worksheet
On Error GoTo Fehlerbehandlung
'Worddateiname wählen
varDateiname = Excel.Application.GetOpenFilename(Filefilter:="Wordfile,*.doc", _
Title:="Bitte Worddatei wählen, aus der die Textmarken ausgelesen werden sollen")
If varDateiname = False Then Exit Sub
'Worddatei öffnen
Set objDok = Word.Documents.Open(Filename:=Abfrage, ReadOnly:=True)
'Prüfen ob Textmarken vorhanden
If objDok.Bookmarks.Count > 0 Then
If MsgBox("Vorhandene Exceldatei mit Hyperlinks aktualiseren?", vbYesNo, _
"Textmarken aus Dokument nach Excel") = vbYes Then
'Vorhandene Exceldatei aktualiseren
'Exceldatei wählen
varDateiname = Application.GetOpenFilename(Filefilter:="Exceldateien,*.xls", _
Title:="Bitte Datei wählen, in der die Hyperlinks eingetragen werden sollen")
If varDateiname = False Then
'do nothing
Else
Set objWB = Application.Workbooks.Open(Filename:=Abfrage)
Set objWks = objWB.Worksheets(1)
Call ReadBookmarks(objWS:=objWks, objDokument:=objDok)
Application.Windows(objWB.Name).Activate
objWB.Save
End If
Else
'Neue Excel-Datei für Textmarken-Hyperlinks anlegen
Set objWB = Workbooks.Add(Template:=xlWBATWorksheet)
Set objWks = objWB.Worksheets(1)
Call ReadBookmarks(objWS:=objWks, objDokument:=objDok)
'Aktuelles Fenster in Excel fixieren
Range("A5").Select
ActiveWindow.FreezePanes = True
'Speichern unter Dialog anzeigen
Application.Dialogs(xlDialogSaveAs).Show Arg1:=objDok.Path & _
Application.PathSeparator & Left(objDok.Name, Len(objDok.Name) - 4) _
& "_Textmarken.xls"
End If
Else
MsgBox "Im Word-Dokument sind keine Textmarken!"
End If
objDok.Close 'Word-Datei wieder schliessen
Exit Sub
Fehlerbehandlung:
Select Case Err.Number
Case 429
MsgBox "Fehler Nr. " & Err.Number & " ist aufgetretten" & vbLf & Err.Description _
& vbLf & vbLf & "Bitte Microsoft Word vor dem Starten des Makros öffnen!"
Case Else
MsgBox "Fehler Nr. " & Err.Number & " ist aufgetretten" & vbLf & Err.Description
End Select
End Sub
Sub ReadBookmarks(objWS As Worksheet, objDokument As Word.Document)
'Textmarken aus Dokument auslesen und als Hyperlink in Excelblatt einfügen
Dim lngZeile As Long, objBookmark As Word.Bookmark
With objWS
'Titelzeilen ausfüllen
.Range(.Columns(1), .Columns(2)).Clear
lngZeile = 1
.Cells(lngZeile, 1) = "Worddokument"
lngZeile = 2
.Cells(lngZeile, 1) = "Verzeichnis"
.Cells(lngZeile, 2) = objDokument.Path
lngZeile = 3
.Cells(lngZeile, 1) = "Name"
.Cells(lngZeile, 2) = objDokument.Name
lngZeile = 4
.Cells(lngZeile, 1) = "Textmarke"
.Cells(lngZeile, 2) = "TextmarkenInhalt"
'Hyperlinks für textmarken anlegen
For Each objBookmark In objDokument.Bookmarks
lngZeile = lngZeile + 1
.Cells(lngZeile, 1).Value = objBookmark.Name          'Name der Textmarke
.Cells(lngZeile, 2).Value = objBookmark.Range.Text    'Inhalt der Textmarke
.Cells.Hyperlinks.Add Anchor:=.Cells(lngZeile, 1), _
Address:=objDokument.FullName, _
SubAddress:=objBookmark.Name
Next
End With
End Sub


Anzeige
AW: Excel Hyperlinks auf Word-Bookmarks
Werner
Hallo Franz,
ich hatte diese Frage schon als unbeantwortbar aufgegeben, und nun dieser ausführliche Makro!
Erstaunlich, dass vieles, wenn auch mit einigem Aufwand, im Grunde doch möglich ist.
Bedanke mich herzlich!!
Um diesen Makro zu verdauen, brauche ich wohl einige Zeit. (Das ist Expertenebene, und ich bin nur
mittelgut.)
Werner

7 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige