Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Word 2000 Anpassen einer verlinkten Grafik per VBA

Mitglied: SteffenKuch

SteffenKuch (Level 1) - Jetzt verbinden

09.03.2010 um 10:46 Uhr, 6292 Aufrufe, 14 Kommentare

Hallo!

Ich habe ein VBA-Skript, dass eingefügte Grafiken anpasst und das auch funktioniert.
01.
Sub GrafikEditieren()
02.
'
03.
' GrafikEditieren Makro
04.
' Makro aufgezeichnet am 05.03.2010 von DV
05.
'Stand: 8.3.2010
06.

07.
    Selection.InlineShapes(1).Fill.Visible = msoFalse
08.
    Selection.InlineShapes(1).Fill.Transparency = 0#
09.
    Selection.InlineShapes(1).Line.Weight = 0.75
10.
    Selection.InlineShapes(1).Line.Transparency = 0#
11.
    Selection.InlineShapes(1).Line.Visible = msoFalse
12.
    Selection.InlineShapes(1).LockAspectRatio = msoTrue
13.
'   Mit .scale... bekomme ich eine Prozentuale Größenveränderung hin.
14.
    Selection.InlineShapes(1).ScaleHeight = 70
15.
    Selection.InlineShapes(1).ScaleWidth = 70
16.
    Selection.InlineShapes(1).PictureFormat.Brightness = 0.5
17.
    Selection.InlineShapes(1).PictureFormat.Contrast = 0.5
18.
    Selection.InlineShapes(1).PictureFormat.ColorType = msoPictureAutomatic
19.
    Selection.InlineShapes(1).PictureFormat.CropLeft = 0#
20.
    Selection.InlineShapes(1).PictureFormat.CropRight = 0#
21.
    Selection.InlineShapes(1).PictureFormat.CropTop = 0#
22.
    Selection.InlineShapes(1).PictureFormat.CropBottom = 0#
23.
'   In ein 'flexibles' Format bringen
24.
    Selection.InlineShapes(1).ConvertToShape
25.
'   Layouttyp festlegen.
26.
    Selection.ShapeRange.WrapFormat.Type = wdWrapSquare
27.
'   Nur Umbruch links
28.
    Selection.ShapeRange.WrapFormat.Side = wdWrapLeft
29.
'   Abstand links 1 cm, ansonsten 0 cm
30.
    Selection.ShapeRange.WrapFormat.DistanceLeft = CentimetersToPoints(1)
31.
    Selection.ShapeRange.WrapFormat.DistanceRight = CentimetersToPoints(0)
32.
    Selection.ShapeRange.WrapFormat.DistanceTop = CentimetersToPoints(0)
33.
    Selection.ShapeRange.WrapFormat.DistanceBottom = CentimetersToPoints(0)
34.
    Selection.ShapeRange.WrapFormat.AllowOverlap = False
35.

36.
End Sub
Der selbe Code funktioniert dann nicht, wenn die Grafik "eingefügt und verknüpft" wird. Ich habe das ein oder andere versucht, aber ich komme nicht weiter.
Hat jemand vielleicht einen Tipp für mich?
Danke!

Gruß
Steffen Kuch
Mitglied: 76109
09.03.2010 um 12:14 Uhr
Hallo Steffen!

Versuchs mal mit diese Zeile am Anfang (Zeile 6):
ActiveDocument.InlineShapes(1).Select

Gruß Dieter
Bitte warten ..
Mitglied: SteffenKuch
09.03.2010 um 12:36 Uhr
Hi!

Danke für den Tipp, aber ich erhalte immer noch bei Zeile 26 die Fehlermeldung "Befehl misslungen".
Ich habe das Makro immer dann gestartet, nachdem ich die Grafik mit der Maus angeklickt hatte. Hätte ich wohl dazuschreiben sollen, sorry.

Gruß
Steffen
Bitte warten ..
Mitglied: 76109
09.03.2010 um 13:54 Uhr
Hallo SteffenKuch!

Also, dass es erst ab Zeile 26 hängen bleibt, ist ja erst mal ein gutes Zeichen. Warum allerdings die Funktionen ab Zeile 26 nicht auf das Object angewendet werden können, kann ich nicht beurteilen. Aber das kannst Du ja per Makroaufzeichnung herausfinden bzw. ob's überhaupt im Document manuell funktioniert...?

Gruß Dieter
Bitte warten ..
Mitglied: SteffenKuch
09.03.2010 um 14:07 Uhr
Hi!

Das, was in dem Makro abläuft habe ich schon zigmal manuell gemacht.
Wie man auch anhand der Kommentare sehen kann, ist das Makro zunächst per Makrorekorder aufgezeichnet.
Ich habe auch schon "eingefügte und verknüpfte" Grafiken manuell genauso bearbeitet. Warum jetzt der aufgezeichnete Makro-Code nicht funktioniert ist mir deshalb auch ein Rätsel.

Gruß
Steffen
Bitte warten ..
Mitglied: SteffenKuch
09.03.2010 um 15:16 Uhr
Hallo!

Was mich gerade total verwirrt ist die Tatsache, dass ich bei eingeschaltetem Makrorekorder das Layout der Grafik gar nicht verändern kann (von Hand).
Ich kapiere nicht, wie ich es dann geschafft habe, das obige Makro aufzunehmen?!

Gruß
Steffen
Bitte warten ..
Mitglied: 76109
09.03.2010 um 15:18 Uhr
Hallo Steffen!

Was für Grafiken sind das, ganz normal Bilder?

Soviel habe ich in der Richtung in Word noch nichts gemacht, daher müsste ich etwas genauer wissen, wie der ganze Ablauf ist. Soweit ich das verstanden habe, fügst Du eine Grafik per <Einfügen><Grafik> ein und verknüpfts diese womit?

Du könntest aber mal probieren, dass Makro zu exportieren und in einem neuen Dokument wieder importieren. Danach mal testen, ob's in einem neuen Dokument funktioniert. Was besseres fällt mir im Moment leider nicht ein.

Gruß Dieter
Bitte warten ..
Mitglied: 76109
09.03.2010 um 15:24 Uhr
Hallo Steffen!

Wie Du das geschafft hast, weiß ich leider auch nicht Am besten Dokument schließen, wieder öffnen und nochmal probieren.

Mir passieren manchmal auch komische Sachen, wo ich denke, häh was ist jetz los

Gruß Dieter
Bitte warten ..
Mitglied: SteffenKuch
09.03.2010 um 15:33 Uhr
Hi!

Ja, das Dateiformat ist gif, das sollte m. E. aber keine Rolle spielen.
In Word 2000 habe ich die Möglichkeit, eine Grafik entweder "einfügen", "Verknüpfen zu Datei" oder "Einfügen und Verknüpfen", s. Bild (wie kann ich hier ein Bild hochladen? In der Formatierungshilfe steht nur dass aber nicht wie...).
Wenn ich ein Bild "Einfüge und Verknüpfe", dann kann ich die ursprüngliche Grafik-Datei verändern und beim nächsten Öffnen von Word 2000 habe ich die aktuelle Grafik im Word-Dokument.

Gruß
Steffen Kuch
Bitte warten ..
Mitglied: 76109
09.03.2010 um 15:48 Uhr
Hallo Steffen!

Was mir natürlich als allererstes auffällt, ist die Tatsache, dass Dein Makro immer nur einmal mit dem gleichen Object funktioniert, da Du das Object in Zeile 24 zu Shape konvertierst. Dann ist das Object anstatt ..InlineShap(1) dann mit ..Shape(1) ansprechbar.

Gruß Dieter

PS. Ich muss jetzt leider weg und werde mich später nochmal damit beschäftigen.
Bitte warten ..
Mitglied: 76109
09.03.2010 um 19:21 Uhr
Hallo Steffen!

Also, wie bereits erwähnt, kann das Makro nur einmal für eine importierte Grafik ausgeführt werden. Dadurch, dass in Deinem Code in Zeile 24 (bei mir 31) das InlineShap in ein Shap konvertiert wird, entsteht ein neues Object. D.h. das InlineShape(1) existiert nicht mehr, sondern nur noch Shape(1). Also, muss bei Bedarf die Grafik gelöscht und neu importiert werden.

Dein Makro habe ich ein wenig angepasst, dass eine Fehlermeldung ausgibt, falls das Object schon per Makro angepasst wurde.
01.
Sub GrafikEditieren()
02.
    On Error Resume Next    'Fehlerbehandlung deaktivieren
03.
    
04.
    ActiveDocument.InlineShapes(1).Select
05.
    
06.
    If Err Then
07.
        MsgBox "Die Anpassung für das gleiche Object ist nur einmal möglich!", vbExclamation, "Fehler"
08.
        Exit Sub
09.
    End If
10.
    
11.
    On Error GoTo 0         'Fehlerbehandlung wieder aktivieren
12.

13.
    With Selection.InlineShapes(1)
14.
        .Fill.Visible = msoFalse
15.
        .Fill.Transparency = 0#
16.
        .Line.Weight = 0.75
17.
        .Line.Transparency = 0#
18.
        .Line.Visible = msoFalse
19.
        .LockAspectRatio = msoTrue
20.
        'Mit .scale... bekomme ich eine Prozentuale Größenveränderung hin.
21.
        .ScaleHeight = 70
22.
        .ScaleWidth = 70
23.
        .PictureFormat.Brightness = 0.5
24.
        .PictureFormat.Contrast = 0.5
25.
        .PictureFormat.ColorType = msoPictureAutomatic
26.
        .PictureFormat.CropLeft = 0#
27.
        .PictureFormat.CropRight = 0#
28.
        .PictureFormat.CropTop = 0#
29.
        .PictureFormat.CropBottom = 0#
30.
        'In ein 'flexibles' Format bringen
31.
        .ConvertToShape
32.
        'Layouttyp festlegen.
33.
    End With
34.
    
35.
    With Selection.ShapeRange.WrapFormat
36.
        .Type = wdWrapSquare
37.
        'Nur Umbruch links
38.
        .Side = wdWrapLeft
39.
        'Abstand links 1 cm, ansonsten 0 cm
40.
        .DistanceLeft = CentimetersToPoints(1)
41.
        .DistanceRight = CentimetersToPoints(0)
42.
        .DistanceTop = CentimetersToPoints(0)
43.
        .DistanceBottom = CentimetersToPoints(0)
44.
        .AllowOverlap = False
45.
    End With
46.
End Sub
Gruß Dieter
Bitte warten ..
Mitglied: SteffenKuch
10.03.2010 um 10:07 Uhr
Guten Morgen!

Danke für deine Mühe, aber soweit ich das verstanden habe, löst das nicht mein ursprüngliches Problem.

Gruß
Steffen
Bitte warten ..
Mitglied: 76109
10.03.2010 um 11:55 Uhr
Hallo Steffen!

Verstehe ich nicht. Ich habe keine Probleme mit dem erstellen oder ändern einer Verknüpfung mit der Grafik, sowohl vor als auch nach der Anpassung der Grafik. Allerdings nutze ich die Office-Version 2002 und wenn's in Version 2000 nicht geht, dann kann ich Dir leider nicht weiterhelfen?

Gruß Dieter
Bitte warten ..
Mitglied: SteffenKuch
11.03.2010 um 07:43 Uhr
Hallo!

Ich bin mir nicht sicher, ob ich mich verständlich ausgedrückt habe.
Es geht nicht darum, eine Verknüpfung zu einer Grafik zu erstellen, sondern eine Grafik, die ich per "Einfügen und Verknüpfen" in mein Word 2000-Dokument eingefügt habe, nachträglich per VBA zu verändern.
Wenn ich ein Bild hier veröffentlichen könnte, dann könnte ich das vielleicht besser zeigen.

Gruß
Steffen
Bitte warten ..
Mitglied: 76109
11.03.2010 um 09:05 Uhr
Hallo Steffen!

Vielleicht habe ich mich jetzt missverständlich ausgedrückt. Ich rede ja von einer eingefügten Grafik, ansonsten wäre es kein InlineShap sondern ein Shape und Dein Makro würde niemals funktionen.

Gruß Dieter
Bitte warten ..
Ähnliche Inhalte
Microsoft Office

Word 2016 skaliert Grafik im Dokument - Word zoomt

Frage von EdaseinsMicrosoft Office5 Kommentare

Hallo Liebe Community, Habe hier einen Kopfschmerzfall Auf einem "TSplus" PC arbeiten 5 Leute, alle nutzen die selben Dokumente, ...

VB for Applications

Excel - VBA - Fusszeile Text und Grafik

gelöst Frage von JuckieVB for Applications1 Kommentar

Guten Morgen an alle, in Excel gibt es ja die Möglichkeit, die Fußzeile per VBA zu "gestalten". Die Fußzeile ...

Microsoft Office

VBA Word IBAN zerschneiden

gelöst Frage von InSpeeMicrosoft Office8 Kommentare

Hallo, wie kann ich mit VBA eine IBAN in 4er Schritten zerschneiden, sodass die IBAN so aussieht: DExx xxxx ...

VB for Applications

Excel-VBA nach Word-VBA übersetzen (V. 2010)

gelöst Frage von spinnifexVB for Applications2 Kommentare

Hallo Admins, wie kann ich folgendes XL-Makro nach Word übersetzen, wobei die Zelladresse "A1" als Textmarke "Anzahl" angesprochen werden ...

Neue Wissensbeiträge
Vmware

Which four application services are delivered by VMware Horizon 7

Erfahrungsbericht von erichamm vor 2 StundenVmware2 Kommentare

Which four application services are delivered by VMware Horizon 7? A. Packaged apps with VMware ThinApp B. Virtualized apps ...

Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 3 TagenWindows 71 Kommentar

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 6 TagenInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 6 TagenMicrosoft Office9 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Heiß diskutierte Inhalte
Utilities
Teamviewer 9.x "out of date" ??
gelöst Frage von keine-ahnungUtilities15 Kommentare

Moin at all, mein topaktueller teamviewer (alles 9.x - releases) verweigert seit heute die Arbeit und bemeckert: "the remote ...

Peripheriegeräte
PS2 Y-Kabel für Maus+Tastatur an PS2 Combo-Anschluss ASUS Prime X370-A
gelöst Frage von Windows10GegnerPeripheriegeräte12 Kommentare

Hallo, ich bin am Überlegen das o.g. Motherboard anzuschaffen. Da ich aber noch PS/2 für Maus+Tastatur benötige (bei optischen ...

Windows 10
Netzlaufwerk verschwindet (aber nur bestimmter Laufwerksbuchstabe)
gelöst Frage von survial555Windows 1010 Kommentare

Hallo, ich habe ein ganz seltsames Problem. Systemumgebung: Server 2012 R2 als DC und Windows 10 Pro als Clients ...

Windows Server
RDP Meldung vor erzwungener Abmeldung
Frage von DOCTRLWindows Server9 Kommentare

Hallo, Situation: Remotedesktop Farm mit mehreren Servern und einer Domäne. Nutzer werden Montags und Donnerstags automatisch abgemeldet. 15 Minuten ...