Announcement

Collapse
No announcement yet.

Aufruf von Makros in Serienbriefen die auf Vorlagen basieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Aufruf von Makros in Serienbriefen die auf Vorlagen basieren

    Hallo zusammen,

    folgendes Problem:

    Ich habe eine Wordvorlage (Vorlage.dot)
    erstellt. Diese Vorlage enthält ein Makro und ist die Vorlage für einen Serienbrief.
    Wenn ich ein Dokument dieser Vorlage erzeuge
    und anschließend einen Seriendruck durchführen habe ich in dem Serienbrief (Serienbrief1.doc)
    die Makros der Vorlage (Vorlage.dot) zwar laut VBE zur Verfügung, kann sie aber nicht via
    TWordapplication.Run(Makroname); aufrufen.

    Hat da jemand eine Idee oder einen Lösungvorschlag warum das Makro nicht gestartet werden kann?

  • #2
    Ist schon eine Weile her. Aber wenn ich mich recht entsinne, hat der Aufruf der Makros bei mir damals nur geklappt, wenn sie im aktiven und sichtbaren Dokument waren.<p>
    Schöne Grüße, Mario Noac
    Schöne Grüße, Mario

    Comment


    • #3
      Hallo Mario,

      solange ich den Serienbrief nicht ausführen lasse, also nur ein Dokument(Dokument1.doc) der Vorlage(Vorlage.dot) habe, funktioniert das reibungslos.

      Eine Idee wäre ja das man ein Hilfsmakro anlegt was quasi nur den aufruf des Eigentlichen Makros übernimmt, allerdings wird dann immer die Vorlage verändert weil die beiden Codemodule (thisDocument,NewMacros) scheinbar aus der Vorlage stammen.

      mir würde es schon reichen, wenn ich wüsste wie ich ein eigenes Codemodul anlegen kann.

      mfg

      Schmidti

      Comment


      • #4
        Hmm, ich habe mal ein wenig gegraben. Ich habe das schon mal gemacht:<p>
        <pre>VAR My : _VBComponent;
        begin
        TRY
        My := WordDocument.VBProject.VBComponents.Add(vbext_ct_S tdModule);
        My.CodeModule.AddFromFile(Path + '~makro.txt');
        EXCEPT
        Word.CloseDokument;
        Exit;
        END;

        My.Name := 'CCMacro';

        WordDocument.Activate;
        WordApplication.Run('DoPrint');

        WordDocument.VBProject.VBComponents.Remove(My);</pre><p>
        Kern der Routine war das Hinzufügen. Ich habe den Code zusammengekürzt, aber er sollte immer noch tun.<br>
        Eine Besonderheit ist der Run. Ich habe das damals über ein Makro im AddIn-Ordner gestartet.<p>
        Vielleicht hilft Dir das ja schon ein Stück weiter.<p>
        Schöne Grüße, Mario Noac
        Schöne Grüße, Mario

        Comment


        • #5
          Danke Mario,

          ich werd das gleich mal ausprobieren.
          ich geb dann bescheid ob dieser weg funktioniert.

          bis dann

          der schmidti

          Comment


          • #6
            Hallo Mario,
            eine Frage noch:

            ist vbext_ct_StdModule eine constante oder eine
            von dir deklarierte Variable, wenn ja was muss da drin stehen

            Comment


            • #7
              Hallo Mario,

              habe die constante gefunden...
              musst noch dazuschreiben, dass man auch die Unit vbide97 braucht.

              klappt alles wunderbar und ist auch ein ziemlich einfacher Workaround, kann ich nur weiter empfehlen

              mfg und bestem Dank

              Schmidti

              Comment

              Working...
              X