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

Frage Entwicklung VB for Applications

Word 2000 Anpassen einer verlinkten Grafik per VBA

Mitglied: SteffenKuch

SteffenKuch (Level 1) - Jetzt verbinden

09.03.2010 um 10:46 Uhr, 6153 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
Inhaltsverzeichnis Word 2013 anpassen
Frage von Gisela88Microsoft Office6 Kommentare

Hallo zusammen, ich möchte in einem automatisch erstellten Inhaltsverzeichnis den Abstand zwischen der Kapitelnummer und dem Text der ersten ...

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 ...

VB for Applications
VBA Script - Pfade zu Dokumentevorlagen anpassen
gelöst Frage von JuckieVB for Applications11 Kommentare

Guten Morgen an alle, wir haben unser zentrales Dokumentenverzeichnis auf einen anderen Server umgezogen. Nun befinden sich in dem ...

VB for Applications
Excel VBA an PDF Formular anpassen
gelöst Frage von Detel1VB for Applications3 Kommentare

Hallo! Ich habe ein PDF Formular das aus Excel VBA beschrieben wird, per email versandt und per outlook zurueck ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit29 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...

SAN, NAS, DAS
Hilfe beim Einrichten eines Storages (SAN)
gelöst Frage von Vader666SAN, NAS, DAS15 Kommentare

Hallo Admins! Ich bin in einer kleineren Firma und hatte bisher mit dem Thema SAN nur in meiner Ausbildung ...

Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...