Texte per Autoit-Script an ein Word-Dokument anhängen

  • ...habe eben mal in Zeile 43 folgenden Code eingefügt:

    AutoIt
    $oRange = _Word_DocRangeSet($oDoc.Bold = True, -2)


    ...also nur den Zusatz ".Bold = True". Aber dann erhalte ich eine Fehlermeldung.

    LG
    imebro

  • Das ist jetzt aber ziemlich viel Trial & Error ;)

    Code
    $oRange.Bold = True

    setzt den Range auf fett.

  • ...ok und danke.
    Aber wird dann nicht alles (auch der Memo-Text) komplett in Fettschrift formatiert?
    Wohin müßte denn dieser Zusatz ($oRange.Bold = True) im Code?

    Habe ihn jetzt einfach über die Zeile "$oRange.InsertAfter($sNumber)" gesetzt, aber in einem anschließenden Text blieb die Nummer und der Name normal (also nicht fett)

    LG
    imebro

  • Ganz einfach nach den Zeilen wo Du die Auftragsnummer und den Namen einfügst.
    Die Methode "InsertAfter" erweitert den Range um den eingefügten Text.

    Code
    Local $oRange = _Word_DocRangeSet($oDoc, -2)
    $oRange.InsertAfter($sNumber) ; Auftragsnummer und Name einfügen
    $oRange.Bold = True ; Nur den eingefügten Text fett machen
  • Dann mach es doch wie bei Nummer/Name und setze Bold auf False.

  • :)

  • Hallo wieder mal...

    Die Kollegen sind mit dem kleinen Progrämmchen sehr zufrieden :)

    --> Aber folgende Dinge sollten noch möglich sein:

    1) Nummer ins bestehende Nummernfeld eintragen und dann auf Button "Memo öffnen" klicken, um ein bestehendes Word-Dokument zu öffnen
    Zum eigentlichen öffnen habe ich schon folgenden Code gefunden: ShellExecute ("C:\pfadzurdatei\datei.doc") ; Word-Dokument öffnen
    Aber wie mache ich das über einen Button... z.B. "Memo öffnen"? Das müßte ja dann einfach über "$sTempPath" möglich sein...

    2) Auf einen Button "Memo drucken" klicken, um das geschriebene Memo zu drucken

    3) Wenn das Script geöffnet wird, soll im Memo-Feld immer ein bestimmter Text stehen

    4) Es sollte auch möglich sein, den geschriebenen Text im Momo-Feld zu formatieren (Fett, kursiv, Aufzählungen)

    --> Meine Vermutung:

    Ggf. könnte es einfacher sein, anstatt das Memo-Feld (das große Textfeld) zu nutzen, einfach ein bestimmtes Word-Dokument zu öffnen (Vorlage.doc), welches schon den Text enthält, der ja immer erscheinen soll.
    Dann könnte man auch formatieren und ggf. über ein VBA-Script das Memo speichern und drucken.

    Das könnte so aussehen:

    Man hätte oben ein Programmfenster mit der Möglichkeit, Nummer + Name einzugeben --> zum neu anlegen und öffnen eines Word-Dokumentes.
    Daneben müßte ein Button "Memo erstellen" (wodurch dann die Word-Vorlage geöffnet wird) und ein Button zum öffnen eines erstellten Dokumentes (über Eingabe der Nummer ins obere Feld).

    Darunter dann nur noch die beiden Buttons zum speichern und drucken des neu erstellten Word-Dokumentes.

    Wie wäre Dein/Euer Vorschlag?

    Danke und Gruss,
    imebro

    Einmal editiert, zuletzt von imebro (22. September 2015 um 09:59)

  • Habe schon mal so angefangen:

    1) Den Button "Memo öffnen" erstellt

    AutoIt
    Global $idOpen = GUICtrlCreateButton("Memo öffnen", 290, 30, 100, 25)  ; Abstand von li, oben, Breite, Höhe

    Der erscheint auch...


    2) Diesem Button zugewiesen, dass er die Nummer aus dem Nummernfeld ausliest und dieses Dokument dann öffnet


    Allerdings ist der Code offenbar falsch... aber den habe ich auch aus dem jetzigen und Teilen aus anderen Threads zusammen gefrickelt :(

    LG
    imebro

  • Hab's etwas angepasst.

    • Größere Schrift
    • Memofeld kann vorbelegt werden
    • Fehlermeldungen in fett
    • 3 neue Buttons:

      • Alle Memos auflisten. nach Doppelklick wird das Dokument geäöffent
      • Memo mit eingegebenem Namen öffnen
      • Memo mit eingegebenem Namend rucken (hier fehlt noch ein schönes Icon)
  • Hallo "water"...

    Das ist ja der Wahnsinn.
    Hab nicht gedacht, dass es so möglich ist :)

    Habe jetzt auch die Pfade zu den Dokumenten und zu Winword angepaßt und es funktioniert bestens.

    Den vorbelegten Text im Memofeld müßte ich nun ändern in eine Aufzählung, die insgesamt 13 Punkte enthält mit jeweils 2 Leerzeilen dazwischen.
    Und jeder dieser Punkte (aber NICHT die Leerzeilen) müßten in FETT formatiert sein.

    Muss ich nun all diese Punkte in die Code-Zeile 9 hintereinander schreiben... mit jeweils mehreren "@CRLF" als Zeilenschaltung?
    Oder gibt es da ne andere Möglichkeit?

    Ich habe im Forum recherchiert und einen Hinweis darauf gefunden, dass man in einer TextBox nur unformatierten Text verwenden kann.
    Formatierten Text kann man offenbar nur in einer RichTextBox darstellen. Aber vielleicht gilt das auch nur für VBA-Code. Vielleicht gibt es sowas ja auch für Autoit... (vielleicht "RichEdit"?).
    Wäre das ggf. eine Lösung?
    Habe jedoch bisher noch nichts gefunden bei meiner Recherche.

    Danke und Gruss,
    imebro

    5 Mal editiert, zuletzt von imebro (23. September 2015 um 09:20)

  • Den vorbelegten Text kannst Du genau wie von Dir beschrieben einbauen.
    Was eine komplette Systemänderung bedeuten würde ist die Formatierung. Deine Ausage mit EditBox und RichTextBox ist korrekt.
    Da gibt es eine UDF dafür, das wird aber komplexer.
    Ich schau mir das mal an.

  • Das wird sehr viel komplexer.
    Ich empfehle eher, das Memo-Feld durch einen Aufruf von Word zu ersetzen. Da lässt sich ein Template übergeben und wenn das Dokument gesichert oder Word beendet wurde, dann läuft das Skript weiter.

  • OK... gute Idee.

    Ich habe schon eine Vorlage "Vorlage_Memo.doc" in Word erstellt.
    Diese sollte dann vom Script aufgerufen werden. Diese enthält dann schon die in fett formatierten Aufzählungen.
    Dann können die Sachbearbeiter sofort loslegen.

    Könnte man denn dann die Buttons "Memo speichern / Memo suchen / Memo drucken" des Scriptes nutzen oder müßte ich dazu VBA-Makros in Word erstellen?

    Wenn man die Buttons des Scriptes weiter nutzen kann... brauche ich dann nur einen Aufruf für Word --> "Vorlage_Memo.doc" ins Script einbauen?

    Danke und Gruss,
    imebro

  • Zwei Fragen würde ich vorab klären:

    • Wären die Benutzer zufrieden mit der gemischten Oberfläche aus GUI und Word?
    • Falls Du alles in VBA machen möchtest: Ist ausreichend Know How vorhanden? Sprich Buttons und EIngabefelder in VBA erstellen
  • Hallo und danke...

    Ich habe jetzt einfach mal die entsprechenden Buttons per VBA programmiert.
    Damit funktioniert es auch und daher denke ich, dass der zusätzliche Aufwand sich nicht lohnen würde, es jetzt auch über Autoit zu programmieren.

    Wir testen das so jetzt mal und schauen mal :)

    Das Autoit-Script kann ich dennoch sicher für andere Anwendungen nutzen als Grundlage.

    Danke Dir bis dahin für Deine super Hilfe!!

    LG
    imebro

  • Gerne :)