Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Word Makro zum markieren (https://www.delphipraxis.net/15859-word-makro-zum-markieren.html)

gordon freeman 5. Feb 2004 14:18


Word Makro zum markieren
 
Hi Leute,
Ich will ein Word-makro schreiben :coder: , das folgendes tut:

1) Erhalt der Schriftgröße (eingegeben durch den Benutzer in einer Textbox)
2) Markieren des Textes ab erstem Erscheinen dieser Schriftgröße, bis genau vor dem zweiten
Erscheinen dieser Schriftgröße. (Von einer Überschrift, bis genau vor die nächste Überschrift)
3) Diesen markierten Text ausschneiden und in ein neues Dokument kopieren.
4) Nur die Schrift im neuen Dokument markieren, die in Schriftgröße (s.o.) geschrieben ist.
5) Diese schrift kopieren und die Datei mit dem Namen dieser herauskopierten Schrift als HTML speichern.

Das ist eine sehr komplexe Aufgabe und ich weiß, dass das hier vieleicht der falsche Ort ist, um solche Sachen zu posten, aber das Makro würde mir echt viel Arbeit ersparen, deshlab bin ich für alle Denkansätze und Aufmunterungen dankbar. Falls jemand 'ne gute Seite zur Makro-Programmierung kennt: Bitte Posten :!: :!: :!:

tia, cu gordon

Cuchulainn 6. Feb 2004 07:02

Re: Word Makro zum markieren
 
Internetseiten fallen mir jetzt auf Anhieb keine ein.
Aber vielleicht kann ich dir helfen, wenn du konkrete Fragen und Probleme hast. Ich habe schon ein wenig mit VBA gearbeitet.

Cuchulainn 6. Feb 2004 07:06

Re: Word Makro zum markieren
 
Du könntest dir dieses Forum noch ansehen.
Coding Board
Darin geht es noch um andere Programmiersprachen als Delphi und unter anderem gibt es auch einen Bereich für VB, VBA und VBS.

gordon freeman 6. Feb 2004 08:53

Re: Word Makro zum markieren
 
Hi Cuchulainn,

Erst mal: Die Seite ist echt :thuimb: Hab schon 'ne Anfrage wegen meiner Frage laufen.

Meine Fragen 1,3,4 und 5 krieg ich mit viel Schweiß und Arbeit noch selbst hin, aber bei Punkt 2 wird's dann kritisch. :cry: Ich hab leider in dieser Richtung keine Ahnung. Kannst du mir bei dem Punkt helfen?

bua, tia, cu gordon

Robert_G 6. Feb 2004 09:29

Re: Word Makro zum markieren
 
Ist doch ziemlich billig. Einfach mal auf Makro aufzeichnen klicken, Nach Font & Fontgröße suchen, Code abgucken, abändern...
2 min. anschauen & tippen :

Delphi-Quellcode:
Dim FirstPos, SecPos As Integer

FirstPos = -1
SecPos = -1

ActiveDocument.Range(0, 0).Select

Do While FirstPos = -1 Or SecPos = -1
    With Selection.Find
        .ClearFormatting
        .Font.Name = "Courier New"
        .Font.Size = 20
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    If Not Selection.Find.Found Then
     Exit Do
    End If
   
    If FirstPos = -1 Then
      FirstPos = Selection.Start
    ElseIf SecPos = -1 Then
      SecPos = Selection.Start
    End If
Loop

If FirstPos <> -1 And SecPos <> -1 Then
  Selection.Start = FirstPos
  Selection.End = SecPos
End If

gordon freeman 6. Feb 2004 10:16

Re: Word Makro zum markieren
 
Der Code funktioniert super, danke! :thuimb:
Allerdings hätte ich noch eine Frage:

Code:
If Not Selection.Find.Found Then
     Exit Do
    End If
Diese Zeile wird doch ausgelöst, wenn keine Markierung vorgenommen wird, oder?

Robert_G 6. Feb 2004 10:18

Re: Word Makro zum markieren
 
Wenn er die Formatierung (Font oder Font.Size) nicht gefunden hat soll er die Schleife verlassen.
Hat er es nicht 2-mal gefunden -< wird auch nix markiert.

gordon freeman 6. Feb 2004 10:36

DANKE;DANKE;DANKE
 
Vielen Dank!!! Jetzt kann ich endlich weiterarbeiten!!!
Die Antwort war echt :thuimb:, wenn da nur nicht noch dieses eine Frage existierte (s.u.)

Man ließt sich, gordon

gordon freeman 6. Feb 2004 12:09

Noch eine Frage...
 
Der Quelltext ist zwar super, ich hätt allerdings noch eine Frage:

Wie schaffe ich es, dass das Makro Leerstellen übergeht.

Im Moment ist es so:
Wenn ich eine Überschrift habe und darunter eine Leerzeile markiert der Rechner nur die Überschrift, wenn die Leerzeile die selbe Schriftgröße hat. Dabei sollte so weit alle smarkiert werden, bis die nächste Überschrift kommt und nicht eine Leerzeile in Größe einer Überschrift. Ich hoffe du kannst mir noch einmal helfen, da ich schon alle Wände bei mir eingeschlagen habe ( :wall: )

bua, cu, gordon


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz