Word 2000 Makro für Datenpflege (50% Datenreduzierung), wie geht???

Stuhl

Lt. Junior Grade
Registriert
Juni 2001
Beiträge
409
Hallo,

Also dieses Problem habe ich bis jetzt auch noch nicht gehabt, aber mit meinen beschränkten VB-Kentnissen, komm ich da wohl nicht viel weiter.
Also wir haben im Geschäft einen Datensever, auf dem alle möglichen wichtigen Worddokumente (Briefe etc.) liegen (an die 1,3GB). Letztens ist uns aber aufgefallen, dass jedes Worddokument über 510KB groß ist. Das liegt daran, dass das Firmenlogo eine hochauflösende BMP-Grafik ist, die allein 510 KB fasst und in jedem Worddokument gespeichert ist.
Eine Lösung wäre, dass ich das hochauflösende BMP-Logo als BMP-Datei im Wurzelverzeichnis (also das wäre bei uns D:\) speichere und ein Word-Makro schreibe, welches:

1.) Jedes auf der Partition D:\ vorhandenes Worddokument nacheinander öffnet,
2.) überprüft, ob das alte Logo überhaupt vorhanden ist
3.) falls ja, das alte Logo löscht, -> das neue einfügt, aber nicht als reelles Bild, sondern als Dateiverknüpfung (somit würde ich mir die Bilddaten in einzelnen Dokumenten komplett sparen, da das Logo ja nur einmal auf D:\ vorhanden ist)
4) falls das Logo nicht vorhanden ist -> das gerade geöffnete Dokument schließt und zum nächsten übergeht


Einen Anfang hab ich bereits, mir fehlt nur noch der Code zum Öffnen aller Worddokumente, und zum Überprüfen, ob das alte Logo vorhanden ist
--------------------------------------------------------------
Sub Test()
'
' Test Makro
' Makro aufgezeichnet am 14.08.2001 von AdminK
'
ActiveDocument.Shapes("Picture 3").Select
Selection.ShapeRange.Delete
Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
Selection.InlineShapes.AddPicture FileName:= _
"D:\Dokumente und Einstellungen\Administrator\Desktop\Logo.bmp", _
LinkToFile:=True, SaveWithDocument:=False
Selection.TypeBackspace
Selection.InlineShapes(1).ConvertToShape.Select
Selection.ShapeRange.Fill.Visible = msoFalse
Selection.ShapeRange.Fill.Transparency = 0#
Selection.ShapeRange.Line.Weight = 0.75
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Transparency = 0#
Selection.ShapeRange.Line.Visible = msoFalse
Selection.ShapeRange.LockAspectRatio = msoTrue
Selection.ShapeRange.Height = 65.2
Selection.ShapeRange.Width = 89.3
Selection.ShapeRange.PictureFormat.Brightness = 0.5
Selection.ShapeRange.PictureFormat.Contrast = 0.5
Selection.ShapeRange.PictureFormat.ColorType = msoPictureAutomatic
Selection.ShapeRange.PictureFormat.CropLeft = 0#
Selection.ShapeRange.PictureFormat.CropRight = 0#
Selection.ShapeRange.PictureFormat.CropTop = 0#
Selection.ShapeRange.PictureFormat.CropBottom = 0#
Selection.ShapeRange.RelativeHorizontalPosition = _
wdRelativeHorizontalPositionColumn
Selection.ShapeRange.RelativeVerticalPosition = _
wdRelativeVerticalPositionPage
Selection.ShapeRange.Left = CentimetersToPoints(-2.5)
Selection.ShapeRange.Top = CentimetersToPoints(0)
Selection.ShapeRange.LockAnchor = False
Selection.ShapeRange.WrapFormat.AllowOverlap = True
Selection.ShapeRange.WrapFormat.Side = wdWrapBoth
Selection.ShapeRange.WrapFormat.DistanceTop = CentimetersToPoints(0)
Selection.ShapeRange.WrapFormat.DistanceBottom = CentimetersToPoints(0)
Selection.ShapeRange.WrapFormat.DistanceLeft = CentimetersToPoints(0.32)
Selection.ShapeRange.WrapFormat.DistanceRight = CentimetersToPoints(0.32)
Selection.ShapeRange.WrapFormat.Type = 3
Selection.ShapeRange.ZOrder 4
Selection.ShapeRange.IncrementLeft 430.85
Selection.ShapeRange.IncrementTop 97.9
ActiveDocument.Save
Application.Quit
End Sub
-------------------------------------------------------------------------
Der Anfang dürfte klar sein, leider musste ich die Grafik dann umformatieren lassen, da die Grafik sonst nach dem Einfügen den Text verschoben hätte.

Schon mal Danke im Vorraus

Stuhl (alias Klaus Glückert)


 
Zuletzt bearbeitet:
Zurück
Oben