PDA

Vollständige Version anzeigen : Makro von 2003 zum Laufen bringen


hcscherzer
17.08.2009, 10:21
Ich weiss ja, warum ich (und die Kollegen, die ich betreue) nicht mit Office 2007 arbeiten aber es gibt ja doch schon einige ...

Jetzt habe ich das Problem, dass ich in Word2003 ein Makro erstellt habe (in einer Dokumentvorlage), das beim Öffnen der Vorlage in dem neuen Dokument ein paar Dinge voreinstellt u.s.w. - nichts wirklich Kompliziertes. Dieses Makro ist als AutoNew() in einem Objekt unterhalb von Projekt im Ordner Module abgelegt.

Wenn ich diese DOT mit Word2007 öffne, passiert garnix. :entsetzt:
Die Sicherheitsstufe ist auf der niedrigsten Ebene, der 'Zugriff auf VBA-Projektmodell' ist angehakt.

Wenn ich in den VBA Editor schaue, ist nichts da, d.h. nur der Ordner 'Microsoft Word Objekte' mit 'ThisDocument', aber alles leer. Vom Ordner 'Module' keine Spur ...

Zusatz:
Wenn ich den Ordner Module im 2007er DOT von Hand erstelle und den VBA Code hineinkopiere, wird das Makro auch nicht automatisch ausgeführt. Unter Ansicht / Makros ist es nicht zu sehen. Weder in der DOT noch in einem daraus erstellten DOC.
Wenn ich aber im DOC mit Alt+F11 in den VBA Editor schaue, wurde der Ordner Module korrekt kopiert. Wenn ich dort das Makro über F5 starte, wird es korrekt ausgeführt.

Es wäre freilich schön, wenn sich das (wieder) automatisieren liesse ...

PapaSchlumpf
17.08.2009, 11:41
Hallo,

öffnest Du die DOT unter Word2007 oder erstellst du ein neues DOkument basierend auf der Vorlage?

Und welche Einstellungen hast Du in Word2007->Office-Button->Word-Optionen->Vertrauensstellungscenter->Einstellungen für Makros
?

HTH
Christian

hcscherzer
17.08.2009, 12:16
öffnest Du die DOT unter Word2007 oder erstellst du ein neues DOkument Ich habe a) die DOT geöffnet und b) einen Doppelklick auf die DOT im Explorer ausprobiert. Beides mit gleichem Resultat.
c) mit Datei / neu / von vorhandener Vorlage habe ich jetzt auch noch mal probiert ... nada ...

welche Einstellungen hast Du in Word2007->Office-Button->Word-Optionen->Vertrauensstellungscenter->Einstellungen für Makros
Wie schon geschrieben: 'alle Makros aktivieren' und den Haken gesetzt bei 'VBA ...'

PapaSchlumpf
17.08.2009, 12:55
mh,
in welchem Ordner ist die DOT abgelegt?

PS

hcscherzer
17.08.2009, 13:54
in welchem Ordner ist die DOT abgelegt?Spielt das ne Rolle? Ich darf doch bei 'von vorhandener Vorlage' mein Netz durchstöbern ... konkret liegt sie in 'Eigene Dateien'.

Auch wenn ich sie in ./Anwendungsdaten/Microsoft/Templates lege, bringt das keine Punkte ...

PapaSchlumpf
17.08.2009, 13:58
HAllo Hans-Christian,

die Ordner könnten schon eine Rolle spielen (vor allem unter Vista).

Aber kannst du mir die Vorlage mal zukommen lassen?
Ggf. auch per Mail (schick mir dazu eine PM) und ich schau hier mial unter Word2007 nach - wird garantiert vertraulich behandelt!

Gruß
Christian

hcscherzer
17.08.2009, 14:27
Ich hab jetzt mal was versucht: als DOT geöffnet, dann als DOTM in /Templates gespeichert und siehe da ... es geht. Wie es scheint, kommt Word2007 mit 2003er Vorlagen, die Makros enthalten, nicht (mehr) zurecht.

PapaSchlumpf
17.08.2009, 15:10
mh,
also hier funktionieren AutoNew-Makros (in einem MOdul) in Original-DOT.

Gruß
Christian

hcscherzer
17.08.2009, 16:03
Tscha, dann danke ich für Deine Hilfe, ich habs ja irgendwie hingekriegt ... der Vollständigkeit halber: 'hier', das ist WindowsXP SP3 und Word 12.0.6504.5000

BA_LI
17.08.2009, 20:06
Was auch immer sehr hilfreich ist, sich ein Cert zu erstellen und in das VBProject einbeinden - mit SELFCERT.exe zu finden in Microsoft Office Ordner. Dann brauchen sich die Benutzer das Cert nur zu importieren und brauchen nichts mehr anderes einzustellen.

hcscherzer
18.08.2009, 07:44
@BA_LI: kein besonders hilfreicher Vorschlag, den Du da bringst. Wenn das Makro nicht ausgeführt wird, hilft ein Zertifikat ja nun überhaupt nichts ... :(

BA_LI
18.08.2009, 09:15
Hi,

wenn das Makro in 2003 lief funzt es auf jeden Fall über das Cert in 2007.
Habe das bei uns an der Arbeit auch so gelöst! Die Mitarbeiter importieren sich ein einziges Mal das Cert und schon läuft die Sache.
Vorallem brauchen die sich nicht die niedrigste Stufe in Word einzustellen, was sowieso total Banane ist.

PS: Mein Macro hat ähnliche Functionen wie Deine!

Hotte
18.08.2009, 09:50
Hi,

schau mal in dem Vertrauenstellungscenter genau nach, ob da nicht irgendwo ein Haken gesetzt ist, dass ggf. vertrauenswürdige Speicherorte blockiert.

Schau mal dort im Punkt "Add-Ins" nach ... da darf kein Haken gesetzt sein.

Wie sieht es mit einem Antivirenprogramm aus? Gibt es da ggf. etwas, was die Makros blockiert.


Das Zertifikat so ist leider eine wirklich halbe Lösung. Denn das selbsterstellte Zertifikat verschwindet im Makro, wenn man es einmal öffnet udn was ändert. Dan nmuss man es wieder neu anhängen.
Wenn das ein anderer auf dem Zielrechenr macht (wenn es nicht noch weiter geschützt ist) - dann ist das Zertifikat im Makro weg.

Mir will sich einfach nicht ershcließen, warum man diese sicherheitsstufe bezüglich der Makros braucht! Wer meint, dass sich wirklich ein einfallsreicher Virenprogrammierer an Makros von Word macht - der ist blauäugig. Es gibt vielleicht noch ien paar ältere solcher Dinge ... aber sowas kann man heute effiktiver machen. Und so wird es auch gemacht.

Bevor man so ein Makro geöffnet hat ... hat der einfallsreiche Virenprogrammierer bereits alle Passwörter und Zugangsdaten vom PC, die er braucht!:)

BA_LI
18.08.2009, 10:09
Hallo Hotte,
mit OpenSSL hat man die Möglichkeit auch Zertifikate zu erstellen. Oder man hat im Unternehmen noch ein rumfliegen. ;)

hcscherzer
18.08.2009, 14:52
Schau mal dort im Punkt "Add-Ins" nach ... da darf kein Haken gesetzt sein.Ich hab im Vertrauenstellungscenter (super Vokabel) leider keine Add-Ins ... nur die vier Sicherheitsstufen und den Checkbox 'Zugriff auf das VBA ProjektObjektModell vertrauen' (noch so ein Knüllerbegriff).

Aua. Jetzt hab ich's gefunden: Unter WordOptionen / Add-Ins / Verwalten / Deaktivierte Elemente / Gehe zu ... da stand meine DOT drin. Das muß man ja erst mal finden ...

/Nachtrag:
Ich hab den Thread noch mal auf 'unerledigt' gesetzt, weil das doch sehr rätselhaft ist.
Habe also die deaktivierte DOT auf aktiv gesetzt - danach Word neu gestartet - nichts.
Bzw. es passiert offensichtlich nichts aber die Datei wird wieder deaktiviert, wenn ich daraus ein neues DOC oder DOCX erstellen will und der Ordner Module ist wieder weg. Nach Doppelklick auf die DOT Datei im Explorer kommt sogar ein 'Word hat ein Problem festgestellt'-Fenster.

Das gleiche Makro - von Hand in eine neue DOTM eingebaut, funktioniert klaglos.

PS: Mein Macro hat ähnliche Functionen wie Deine!Kannst Du denn hellsehen ??? Ich hatte doch über den Inhalt noch nichts erzählt ...

Damit wir vielleicht der Lösung etwas näher kommen, lege ich mal die corpora delicti anbei.

BA_LI
18.08.2009, 19:35
Wie rufen Deine Kollegen das Macro auf? Über einen CommandButton, über die dot selber? Wie?

PapaSchlumpf
18.08.2009, 20:10
Hallo Hans-Christian,

mh, aber die Kalender.dot ist leer und beinhaltet weder in Word2000 noch Word2007 irgendwelche Makros etc.
Oder muss ich erst die Kalende.bas importieren?

Gruß
Christian

hcscherzer
18.08.2009, 22:19
Moin Christian,

die Kalender.dot ist leer und beinhaltet weder in Word2000 noch Word2007 irgendwelche Makros

Mh. Da scheint wohl der Virenschutz zugeschlagen zu haben ... dann wird mir auch klar, warum die Module nicht mehr in der DOT und der DOTM Datei waren.

Kannst ja mal den Code importieren, um zu sehen, ob es bei Deinem Virenprogramm auch passiert ... interessanterweise hat unser Virenscanner es als BAS passieren lassen aber die DOT's und DOTM's 'bereinigt'. Ich werde mir morgen mal die Einstellungen bei uns anschauen.

@Hotte: Du hattest ja in #13 schon die richtige Idee ... hätte ich gleich mal verfolgen sollen ...

Aber jedenfalls hat es sich jetzt auf diesem Wege geklärt, warum das alles geschah ... und ich kann den Thread jetzt endgültig schliessen.

Wie rufen Deine Kollegen das Macro auf?Die rufen das nicht auf. Schau Dir die BAS an oder importiere sie: es wird über AutoNew() gestartet und erstellt, wenn das Dokument nicht mehr als eine Seite hat einen einfachen Kalender.

PapaSchlumpf
19.08.2009, 06:36
Hallo Hans-Christian,

also angekommen ist nur die DOT ohne Makros. Die DOTM ist in Ordnung und läuft (Kalender wird erstellt).

Die DOT hingegeben bekomme ich auch nicht mit dem Makro verbunden: das Dokument verliert anschließend immer die Verbindung zur Vorlage und führt somit kein Makro aus.
Wenn ich eine neue DOT erstelle (hier Word2000), die BAS importiere und abspeicher und diese DOT dann unter Word2007 aufrufe, wird dann das Makro korrekt automatisch ausgeführt. (Allerdings erst nach Umschreiben der ersten IF-Abfrage, da Panes(1).Pages.Count unter Word2000 nicht existiert; dafür aber überall

If ActiveDocument.ComputeStatistics(wdStatisticPages) > 1 Then
Exit Sub
End If


Vielleicht wurde die DOT von Eurem Virenscanner etwas korrumpiert?

Gruß
Christian

BA_LI
19.08.2009, 08:03
man, what is your problem?

Natürlich wird Dein Marcro beim Klicken auf die .dot, erzeugen eines neuen Dokumentes erzeugt. Du verwechselst hier den Begriff Macro per VBA importieren und Macro ausführen. Deshalb dachte ich, dass Dein Macro das Selbe macht wie meins.

Mein Macro importiert in die Normal.dot (nicht zu vergleichen mit Deiner .dot, die irgendwo auf einem Server liegt) der Mitarbeiter einen mit AutoExec() erstellten CommandButton mit dem man eine UserForm zum Aufrufen von Formularen aufruft. Und das Ganze war nur einmalig mit einem Cert nötig!

Viel Glück!

hcscherzer
19.08.2009, 08:33
man, what is your problem ... Du verwechselst hier den Begriff Macro per VBA importieren und Macro ausführenIch glaube nicht, dass ich ein Problem habe und noch weniger, dass ich etwas verwechsele ... ich glaube nur, dass Du die Beiträge etwas gründlicher lesen solltest, bevor Du Dich dazu hinreissen lässt, etwas dazu beizutragen (siehe hier (http://ms-office-forum.net/forum/showpost.php?p=1243397&postcount=4)).


Vielleicht wurde die DOT von Eurem Virenscanner etwas korrumpiert?Das wird sein. Ich habe dort mal die Word-Makros komplett aus dem Schutz herausgenommen. Vielen Dank für Deine Hilfe!

PapaSchlumpf
19.08.2009, 08:43
keine Ursache.
Du weisst ja wo du ggf. Nachfragen kannst :hands:

Gruß
Christian

hcscherzer
19.08.2009, 10:23
Der Vollständigkeit halber noch folgende Mitteilung:
es war doch nicht der Virenscanner :D

Nach erfolgloser Suche in den diesbezüglichen Protollen und Rücksprache mit dem Support ergab auch das Abschalten des Virenschutzes keine Änderung: auf dem 2003er System funktioniert die DOT - auf dem Rechner mit 2007 ist der Module Ordner weg ...

Irgendetwas schein an der ursprünglichen DOT nicht in Ordnung gewesen zu sein ... ich hab mal eine neue DOT erstellt und das Makro importiert. Jetzt läuft es auch unter 2007 - mit oder ohne Virenschutz. Warum denn nicht gleich?

BA_LI
19.08.2009, 12:29
Du solltest Dir einen netteren Ton angewöhnen. Wenn Du einen Thread schreibst bekommst Du Antworten!
Finde es auch total lächerlich, irgend etwas zu verlinken.

Hotte
19.08.2009, 12:36
Hi,

bitte doch den Ball ein wenig flacher halten.

Das Problem ist ja nun gelöst. Da müssen wir nicht noch über Dinge sprechen, die für die Lösung nicht relevant waren.

Zur Klärung von Differenzen benutzt bitte die PN.