Mit Datei verknüpfte Abbildungen futsch

mit Datei verknüpfte Abbildungen futsch
Autor: Holger

Habe in einem auf externer Festplatte liegenden Worddokument hunderte von Bildern eingefügt. Diese ebenfalls auf der externen Platte lagernd. Um das Worddokument klein zu halten geschah dies mittels „Grafik einfügen - mit Datei verknüpfen“. Hat auch alles prima geklappt, bis ich dann mal zwischendurch eine andere externe Platte angeschlossen hab. Seither findet das Worddokument die Bilder nicht mehr (obwohl wieder die alte ext. Platte dran ist und ansonsten gut zugreifbar ist) sondern zeigt nur leere Bilder mit rotem Kreuz oben links (Größe aber korrekt). Füge ich exemplarisch wieder ein bereits zuvor verwendetes Bild wie gehabt ein, so erscheint dies korrekt.
Ich will aber nicht 630 Bilder erneut einfügen!!! Wer hilft??

ZurInfo:
Bei der Betrachtung der Feldfunktionen (Extras - Optionen - Ansicht - Feldfunktionen) sieht die Funktion für das neue Bild dann exakt genau so aus wie für das früher eingefügte und nun nicht mehr angezeigte identische Bild. In beiden Fällen beginnt der Pfadname mit {INCLUDEPICTURE "…/ anstatt {INCLUDEPICTURE "Festplattenname:\ und es werden durchweg normale Schrägstriche verwendet (wohl weil Worddatei und Bilder auf derselben Platte liegen).

Falsches Brett
Hallo Holger,

das ist eher ein Problähm mit Windows. Du müsstest dem „externen“ Laufwerk manuell zwangsweise einen Laufwerksbuchstaben verabreichen. Ich gehe davon aus, dass beim erstmaligen Einfügen der z.B. „D:“ war und jetzt wg. irgendwas, was dazwischen am USB passiert ist, zufälligerweise jetzt „E:“ oder sonst was ist.

Genau aus dem Grund erzwinge ich immer manuell gewisse Laufwerksbuchstaben.

Traditionell ist das CD-Laufwerk immer „L:“.

Die „große“ externe Festplatte immer „T:“ (wie Transfer)

usw.

Gruß

Stefan

Also es erscheint in der Funktion gar kein Buchstabe, sondern stellvertretend ein "…/ Das auch, wenn ich nun erneut ein Bild einfüge (welches dann ja auch erscheint, obwohl der Pfadname identisch mit dem nicht angezeigten Bild ist).
Nur wenn ich ein Bild von einer anderen Platte aus einfüge, wird z.B. D:\ angegeben, dann auch im weiteren Pfadverlauf stets mit zwei \ anstelle einem /

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Also es erscheint in der Funktion gar kein Buchstabe, sondern
stellvertretend ein "…/ Das auch, wenn ich nun erneut ein
Bild einfüge (welches dann ja auch erscheint, obwohl der
Pfadname identisch mit dem nicht angezeigten Bild ist).
Nur wenn ich ein Bild von einer anderen Platte aus einfüge,
wird z.B. D:\ angegeben, dann auch im weiteren Pfadverlauf
stets mit zwei \ anstelle einem /

Hi Holger,

Alt+F11, links: Doppelklick auf Thisdocument, oben: Einfügen–Modul,
in das aufgehende Modulfenster kopierst du die beiden nachstehenden Codes von nn() und nn2(), stellst den Cursor beliebig in den ersten Code rein und drückst F5.

Wird dann was angezeigt, wenn ja was***.
Desgleichen mit dem zweiten Code wiederholen.

***= Es müßte der PfadName des Bildes angezeigt werden, wenn dem so ist könnte man ihn beliebig abändern, also z.B.
…/Eigene Dateien/Bilder/Bild1.jpg
in
C:\Eigene Dateien\Bilder\Bild1.jpg
wandeln. Um das für alle 630 Bilder zu tun, muß man halt eine Regelmäßigkeit herausfinden usw.

Und, da das von der Wordversion abhängt, wenn du dir die Feldfunktionen anzeigen läßt, was genau steht denn da drinnen?

Und, deine Bilder, sind das Shapes oder InlineShapes, Word macht da wohl einen Unterschied.
Herausfinden müßtest du das mit den beiden Codes:

Sub ish()
Dim b
For Each b In ThisDocument.InlineShapes
 MsgBox b.Name
Next b
End Sub
'
Sub sh()
Dim b
For Each b In ThisDocument.Shapes
 MsgBox b.Name
Next b
End Sub

Bei einem von beiden Codes müßtest du erkenennen können daß da deine Bilder genannt werden.
Achja, zum Abbrechen des Codes, 630 Bilder braucht man nicht, Strg+Pause drücken, im erscheinenden Fensterchen dann „Beenden“ klicken.

Gruß
Reinhard

Sub nn()
Dim N As Integer
With ThisDocument.Fields
For N = 1 To .Count
With .Item(N)
If .Type = wdFieldIncludePicture Then
MsgBox Mid(.Code, InStr(.Code, Chr(34)) + 1, _
InStr(InStr(.Code, Chr(34)) + 1, .Code, Chr(34)) - InStr(.Code, Chr(34)) - 1)
End If
End With
Next N
End With
End Sub

Sub nn2()
Dim N As Integer
On Error Resume Next
With ThisDocument.Fields
For N = 1 To .Count
With .Item(N)
MsgBox Mid(.Code, InStr(.Code, Chr(34)) + 1, _
InStr(InStr(.Code, Chr(34)) + 1, .Code, Chr(34)) - InStr(.Code, Chr(34)) - 1)
End With
Next N
End With
End Sub