• Hallo Gast!
    Noch bis zum 20.07. kannst Du an unserer Umfrage zum Hersteller des Jahres teilnehmen! Als Gewinn verlosen wir unter allen Teilnehmern dieses Mal eine Grafikkarte Eurer Wahl für bis zu 1.000 EUR - über eine Teilnahme würden wir uns sehr freuen!

Word 2007 Makro

traxxus

Semiprofi
Thread Starter
Mitglied seit
23.05.2004
Beiträge
2.564
Ort
CH
Hallo Community

Folgende Situation, kennt wahrscheinlich jeder Systemadministrator:

Die Benutzer speichern Worddateien ab in welchen sich Fotos befinden - unkomprimiert. Gibt zum Teil verdammt grosse Worddokumente. :shot:

Da Word 2007 die Funktion "Generell komprimieren beim abspeichern" nicht mitbringt, muss ein Makro her.

Wie sollte das Makro aussehen, dass bei jedem Speichervorgang die Bilder automatisch komprimiert werden?
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Schnapp dir die Normal.dot, die ja die Vorlage für alle normalen Worddatein ist, und füge dort dein Makro ein. On Dokument Close oder so ähnlich. Das wird dann jedesmal aufgerufen, wenn das Dokument geschlossen wird.

Eventuell kannst du das Makro auch einfach in Word generell einbinden und beim Speichern jedes Dokuments aufrufen. Sollte auch möglich sein.

Wie du da komprimieren willst, weiß ich nicht. Mir ist keine entsprechende Funktion bekannt. Das ist dann dein Problem. Ich sag dir nur wo du es einfügen musst :d
 
Das ist die Grundsatzerklärung die ich schon kenne.
Mir gelingt die Erstellung des Makros nicht.
 
Ganz einfach. Du klickst mit der Rechten Maustaste das Icon für Speichern an und wählst dann ganz unten "Anpassen". Daraufhin öffnet sich ein neues Fenster. Nun klickst du nochmal mit der Rechten Maustaste auf das Speicher Icon und kannst ein Marko zuweisen. Dann wählst du dein Marko aus, dass natürlich erst komprimiert und danach Speichert.

Bei der Normal.dot sieht das ähnlich aus. Man nehme die Normal.dot und mit Alt+F11 den VBA Editor. Im Editor musst du auf der Linken Seite auswählen, wo du das Makro hinhaben willst. Irgendwo in der Liste müsste deine Normal.dot stehen. Auf der Rechten Seite hast du dann oben 2 Comboboxen. In der linken Box wählst du Dokument aus und schaust dann was in der Rechten Box zu finden ist. Irgendwas mit BeforSave wäre super. Der Quellcode wird dabei automatisch generiert. Du musst nur noch deinen Befehl einfügen aber diesmal ohne den Speicherbefehl.

Da du bei Möglichkeit 1 den Speicherbutton von Word überschreibst, musst du in dem Makro auch selber speichern. Bei Möglichkeit 2 ruft der Benutzer die Speicherfunktion von Word auf und die startet dein Makro. Somist musst du dort den Speicherbefehl weglassen sonst wird er doppelt ausgeführt. Das eigentliche Speichern wird erst nach dem Makro ausgeführt.
 
Habe dieses Macro im VB Editor eingefügt, jedoch funzt das nicht:

Private Sub DocumentBeforeSave()
AddHandler Me.BeforeSave, AddressOf ThisDocument_BeforeSave
End Sub
Sub ThisDocument_BeforeSave(ByVal sender As Object, ByVal e As Microsoft.Office.Tools.Word.SaveEventArgs)
If MessageBox.Show("Do you want to save the document?", "BeforeSave", _
MessageBoxButtons.YesNo) = DialogResult.No Then
e.Cancel = True
End If
End Sub

Das ist ein Beispielcode von M$:
http://msdn.microsoft.com/de-de/library/microsoft.office.tools.word.document.beforesave(VS.80).aspx
 
Hast du die Funktion wie von mir beschrieben mit den 2 Comboboxen angelegt? Der Speicherort ist entscheidend. Hängst du das Makro an das falsche Dokument an, bringt es dir nicht viel. Mach das mal so wie ich es beschrieben habe. Einfach Links dein Dokument raussuchen.

Ich mach erstmal Feierabend. Werd vieleicht heute Abend nochmal vorbeischaun. Ansonsten erst morgen wieder.
 
Hab kein BeforeSave in der 2. Dropdownbox.

Möglichkeit 1 funktioniert in Word 2007 nicht.
 
Zuletzt bearbeitet:
Stimmt. Dann nimm Document.close. BeforeSave wäre Excel gewesen.

Möglichkeit 1 wird auch in Word 2007 irgendwie möglich sein aber eben nicht so einfach wie in Word XP. Vom Prinzip her würde es aber gehen.
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh