Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Eingefügte Grafiken durch verknüpfte Grafiken ersetzen
zurück: Zeit anhalten weiter: nur datum in einer textbox zulassen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
AMenge
Office-erfahren


Verfasst am:
13. Sep 2006, 11:35
Rufname:

Eingefügte Grafiken durch verknüpfte Grafiken ersetzen - Eingefügte Grafiken durch verknüpfte Grafiken ersetzen

Nach oben
       Version: Office 2k (2000)

Tach zusammen,

ich habe ein recht umfangreiches Dokument unter Word2000, in das viele Grafiken per "einfügen und verknüpfen" eingebettet sind. Das führt natürlich zu einer nicht unerheblichen Dateigrösse. Um diese zu reduzieren, würde ich gern die Einbettung der Grafiken dahingehend ändern, dass diese nur noch verknüpft aber nicht mehr eingefügt sind.

Mein erster Ansatz war, die entsprechende Feldfunktion INCLUDEPICTURE einfach um den Parameter "\d" zu erweitern, was aber keinen Erfolg hatte, da die Grafik ja bereits eingefügt ist.

Meine Idee ist nun, ein Makro zu basteln, das einmal über das gesamte Dokument läuft und für jedes Bild aus der INCLUDEPICTURE-Funktion den Bildpfad ermittelt, die Grafik dann löscht und neu einfügt, diesmal aber mit der Option "nur verknüpfen".

Dummerweise habe ich bislang noch wenig bis garnicht in VBA programmiert. Meine letzte Makro-Programmierung liegt Jahre zurück. Ich brauche daher mal eine kleine Anschubhilfe.

Meine konkreten Fragen:
1. Wie kann ich von mich von Bild zu Bild innerhalb des Dokuemts hangeln?
2. Wie lese ich aus der INCLUDEPICTURE-Funktion den Pfad aus?

Den Rest kann ich mir dann sicherlich zusammenzimmern.


Ich bin für jeden Hinweis dankbar
Andreas
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
13. Sep 2006, 12:23
Rufname:
Wohnort: Leipzig


AW: Eingefügte Grafiken durch verknüpfte Grafiken ersetzen - AW: Eingefügte Grafiken durch verknüpfte Grafiken ersetzen

Nach oben
       Version: Office 2k (2000)

Hallo Andreas,

ich fang mal an: Die mit IncludePicture eingefügten Bilder sind InlineShapes. Durch die kann man "schleifen" und ihren Typ abfragen:
Code:
Sub BilderAnspringen()

    Dim Bild As InlineShape
    Dim myRange As Range
    Dim myPfad As String
   
    For Each Bild In ActiveDocument.InlineShapes
        If Bild.Field.Type = wdFieldIncludePicture Then
            Debug.Print Bild.Field.Code
            Set myRange = Bild.Range
            myPfad = Bild.Field.Code.Text
            myPfad = Mid$(myPfad, 17, Len(myPfad) - 17)
            Debug.Print myPfad
        End If
    Next Bild
    Set myRange = Nothing

End Sub

Hier wird jetzt der Feldcode ins Direktfenster ausgegeben. Danach wird er in einen String gefüllt. Der String kann normal bearbeitet werden. Ich habe jetzt hier mal die vorderen 16 Zeichen abgezogen (Leerzeichen + Includepicture + Leerzeichen), hinten die 17 Zeichen (Leerzeichen + \* Mergeformat + Leerzeichen). Das muss natürlich angepasst werden, je nachdem, wie die Felder bei Dir aussehen.
Danach könnte man den Code editieren, die Felder entfernen und neu setzen. Dazu werden sie hier mal prophylaktisch in einem Range festgehalten, den man dann dafür wieder ansprechen kann.

_________________
Sei doch so nett und gib eine Rückmeldung, ob es klappt!
Gruß, Lisa

Guter Rat ist teuer!
AMenge
Office-erfahren


Verfasst am:
13. Sep 2006, 13:10
Rufname:

AW: Eingefügte Grafiken durch verknüpfte Grafiken ersetzen - AW: Eingefügte Grafiken durch verknüpfte Grafiken ersetzen

Nach oben
       Version: Office 2k (2000)

Vielen Dank schonmal für die Hilfe. Das Durchhangeln durch die Bilder hatte ich zwischenzeitlich auch schon rausgefunden. Komisch, kaum sieht man an der richtigen Stelle nach, schon wird man fündig. Very Happy
AMenge
Office-erfahren


Verfasst am:
14. Sep 2006, 09:24
Rufname:

AW: Eingefügte Grafiken durch verknüpfte Grafiken ersetzen - AW: Eingefügte Grafiken durch verknüpfte Grafiken ersetzen

Nach oben
       Version: Office 2k (2000)

So, das Problem ist gelöst. War eigentlich ganz einfach. Nochmals vielen Dank und bis zur nächsten Frage.
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
14. Sep 2006, 10:30
Rufname:
Wohnort: Leipzig

AW: Eingefügte Grafiken durch verknüpfte Grafiken ersetzen - AW: Eingefügte Grafiken durch verknüpfte Grafiken ersetzen

Nach oben
       Version: Office 2k (2000)

Hallo Andreas,

wenn Du noch so nett bist, und den kompletten Code hier einstellst, wäre das schön. Es gibt evtl. noch andere Nutzer, die diese Aufgabe lösen wollen, die brauchen dann nicht das Fahrrad neu zu erfinden.

Gruß, Lisa
AMenge
Office-erfahren


Verfasst am:
14. Sep 2006, 10:38
Rufname:


AW: Eingefügte Grafiken durch verknüpfte Grafiken ersetzen - AW: Eingefügte Grafiken durch verknüpfte Grafiken ersetzen

Nach oben
       Version: Office 2k (2000)

Klar, kein Problem. Hier ist meine Lösung:

Code:

Public Const Basispfad = "K:\Handbuch\"
Public Const Dateiname = "Handbuch.doc"

Sub BilderErsetzen()

Dim Bild As InlineShape
Dim BildNeu As InlineShape
Dim Pfad As String
Dim iLauf As Integer
Dim iBreite As Long
Dim iHoehe As Long
Dim NichtGefunden As String
Dim Dok As Document

Documents.Open FileName:="D:\Temp\" + Dateiname
Documents(Dateiname).Activate
NichtGefunden = ""

For iLauf = ActiveDocument.InlineShapes.Count To 1 Step -1

    Set Bild = ActiveDocument.InlineShapes(iLauf)
   
    If Bild.Type = wdInlineShapeLinkedPicture Then
        Pfad = ErmittlePfad(Bild.Field.Code.Text)
        iBreite = Bild.Width
        iHoehe = Bild.Height
       
        Bild.Select
        Selection.Delete
       
        If Dir(Pfad) <> "" Then
            Set BildNeu = ActiveDocument.InlineShapes.AddPicture(FileName:=Pfad, LinkToFile:=True, SaveWithDocument:=False, Range:=Selection.Range)
            BildNeu.Width = iBreite
            BildNeu.Height = iHoehe
            Set BildNeu = Nothing
        Else
            NichtGefunden = NichtGefunden + Pfad + vbCrLf
            Selection.InsertAfter "Hier fehlt das Bild!"
        End If
    End If
   
    Set Bild = Nothing
Next

Set Dok = Documents.Add
Dok.Content.Text = NichtGefunden

MsgBox ("Fertig")

End Sub


Private Function ErmittlePfad(Parameter As String) As String
Dim iStart As Integer
Dim iEnde As Integer
Dim cSuch As String
Dim sPfad As String

cSuch = Chr$(34)

iStart = InStr(Parameter, cSuch)
iEnde = InStrRev(Parameter, cSuch)

sPfad = Mid$(Parameter, iStart + 1, iEnde - iStart - 1)
sPfad = Replace(sPfad, "\\", "\")

If InStr(sPfad, Basispfad) <> 0 Then
    ErmittlePfad = sPfad
Else
    ErmittlePfad = Basispfad + sPfad
End If
   
End Function


Noch ein paar Anmerkungen zur Programmierung:
- Die Konstanten haben mir das Leben erleichtert und es sich nur um ein einzelnes Dokument gehandelt hat, das zu bearbeiten war. Der Umbau auf einen Datei-öffnen-Dialog zur Auswahl des zu bearbeitenden Dokuments ist ja problemlos.
- Ich arbeite die Bilder vom Ende des Dokuments nach vorn ab. Normalerweise wird das Bild gelöscht und sofort an identischer Stelle wieder eingefügt. Falls das Bild, das eingefügt werden soll, aufgrund der Pfadangabe aber nicht gefunden wird, dann fehlt an dieser Stelle ein Bild. Es ändert sich also die Anzahl der Bilder und somit auch der Index aller nachgelagerten Bilder.
- Die Routine funktioniert natürlich nur, wenn die Bilder ursprünglich eingefügt und verknüpft wurden, weil nur dann der Standort des Bildes bekannt ist.
- Beim Ermitteln des Bildpfades ist darauf zu achten, dass dieser mal relativ und mal absolut in der INCLUDEPICTURE-Funktion steht. Daher gibts dort nochmal ne Sonderbehandlung.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Word Serienbriefe: Mergefield: Zeichen ersetzen 10 _Gast_ 268 06. Feb 2014, 16:46
_Gast_ Mergefield: Zeichen ersetzen
Keine neuen Beiträge Word Formate: Positionieren von Grafiken 1 jimsonweet 314 21. Dez 2011, 12:14
jimsonweet Positionieren von Grafiken
Keine neuen Beiträge Word Formate: Grafiken formatieren 2 mausilisa 299 04. Nov 2011, 01:00
Gast Grafiken formatieren
Keine neuen Beiträge Word Formate: Ganze Seite ersetzen 3 jetrca 1021 12. Jan 2011, 15:07
hyba Ganze Seite ersetzen
Keine neuen Beiträge Word Formate: Begriff ersetzen 8 rumburak 498 17. Nov 2010, 09:12
CHF Begriff ersetzen
Keine neuen Beiträge Word Formate: Autokorrektur Ersetzen mit geschütztem Trennstrich 3 felixx0815 1960 11. Nov 2010, 10:01
CaBe Autokorrektur Ersetzen mit geschütztem Trennstrich
Keine neuen Beiträge Word Formate: Formatvorlagen ersetzen bei beliebigem Text 2 Gast 1252 21. Jun 2010, 12:32
Gast Formatvorlagen ersetzen bei beliebigem Text
Keine neuen Beiträge Word Formate: Apostrophe suchen und ersetzen 1 Gast 1753 01. Jun 2010, 10:44
mojos Apostrophe suchen und ersetzen
Keine neuen Beiträge Word Formate: Formatvorlage für Beschriftung ersetzen 0 Lischen16 406 12. Okt 2009, 08:14
Lischen16 Formatvorlage für Beschriftung ersetzen
Keine neuen Beiträge Word Formate: Beschriftung von Grafiken wird überschrieben 3 gast ° 1427 20. Jul 2009, 17:07
Ina Beschriftung von Grafiken wird überschrieben
Keine neuen Beiträge Word Formate: Sonderzeichen suchen & ersetzen 1 psmuc 2263 08. Apr 2009, 12:38
Sporty1808 Sonderzeichen suchen & ersetzen
Keine neuen Beiträge Word Formate: HILFE!!! Verknüpfte Excel Tabelle in Word ändert Format 0 Katharina0482 1012 05. Nov 2008, 17:51
Katharina0482 HILFE!!! Verknüpfte Excel Tabelle in Word ändert Format
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Frontpage Forum