MakroCode aus Dokument "via Makro" entfernen

10/10/2007 - 10:13 von Mirko Bratke | Report spam
Hallo,

Ich habe eine vielzahl von automatisch generierter Word-Dokumente welche
alle ein
AutoOpen-Makro enthalten. Ich möchte nun mit Hilfe eines eigenen Makros
(normal.dot)
all diese Dokumente nacheinander öffnen und den Code entfernen und die Datei
anschließend speichern.

Die Prozedur ansich ist kein Problem, allerdings schaffe ich es nicht den
entsprechenden Code anzusprechen geschweige denn zu löschen.

Diese AutoOpen-Makros, stehen jeweils unter (ThisDocument) also nicht unter
Module.

Wie kann ich jetzt das AutoOpen-Makro aus dem aktiven Dokument ansprechen
bzw. löschen?

Ich habe es mit
ActiveDocument.VBProject.VBComponents(ThisDocument).????
und
Application.VBE.VBProjects(XYZ).VBComponents(ThisDocument).????
versucht, aber irgendwie finde ich nicht das was ich wirklich brauche.

Sollte es einen Befehl geben der sàmtlichen Code aus einer Datei entfernt,
nehme ich auch gern diesen.

Für ein paar Tipps in die richtige Richtung wàre ich sehr dankbar.

Gruß
Mirko
 

Lesen sie die antworten

#1 Hartwig Constien
10/10/2007 - 18:12 | Warnen spam
Hallo Mirko,

Ich habe eine vielzahl von automatisch generierter Word-Dokumente welche
alle ein AutoOpen-Makro enthalten.



Und wie kommt der Code in die Dokumente?

Ich möchte nun mit Hilfe eines eigenen Makros (normal.dot)
all diese Dokumente nacheinander öffnen und den Code entfernen und die Datei
anschließend speichern.

Die Prozedur ansich ist kein Problem, allerdings schaffe ich es nicht den
entsprechenden Code anzusprechen geschweige denn zu löschen.

Diese AutoOpen-Makros, stehen jeweils unter (ThisDocument) also nicht unter
Module.



AutoOpen dürfte unter ThisDocument eh nicht funktionieren.

Wie kann ich jetzt das AutoOpen-Makro aus dem aktiven Dokument ansprechen
bzw. löschen?

Ich habe es mit
ActiveDocument.VBProject.VBComponents(ThisDocument).????
und
Application.VBE.VBProjects(XYZ).VBComponents(ThisDocument).????
versucht, aber irgendwie finde ich nicht das was ich wirklich brauche.



So sehr weit weg bist Du ja gar nicht. Versuch es ungefàhr so:

Sub ClearThisDokumentModulCode()
Dim TDCodeMod
'Verweis auf ThisDocument des aktiven Dokumentes setzen
Set TDCodeMod = ActiveDocument.VBProject.VBComponents(1).CodeModule

With TDCodeMod
'sind Codezeile vorhanden
If .CountOfLines > 0 Then
'Code anzeigen und Vorgehen erfragen
If MsgBox(.Lines(1, .CountOfLines), vbQuestion + vbYesNo, _
"Diesen Code aus ThisDocument entfernen ???") = vbYes Then
'Alle Codezeilen des Moduls löschen
.DeleteLines 1, .CountOfLines
End If
Else
MsgBox "Es sind keine Codezeilen feststellbar", _
vbInformation, "ClearThisDocumentModulCode"
End If
End With

End Sub

Hang loose, Hartwig

Ähnliche fragen