VBA Word 03 Format durch Zeichen ersetzen

Hallo,

Es gibt so viele Seiten/Foren, die Text-Formate durch interne Zeichen darstellen lassen, z.b. bbcode oder verwandte Systeme. Für eine dieser Seiten - ein Autoren-Forum, wo man Gedichte usw veröffentlichen kann, schreibe ich.

Nun ärgere ich mich, dass ich die Zeichenformatierung immer „per Hand“ umändern muss. Wenn in einem Text ein Wort fett geschrieben ist, muss ich die Stellen suchen und durch die entspr. Formatzeichen ersetzen.

Also hab ich mir gedacht, dass man sowas auch prima programmieren könnte. Allerdings habe ich keine Ahnung von VisualBasic.
Ich bräuchte also ein Programm, das folgendes tut:

  • suche die erste Phrase, die kursiv ist
  • ändere kursiv in normal
  • schreibe vor die Phrase und dahinter
  • wiederhole das ganze, bis kein Wort mehr kursiv ist

Das dürfte nicht soooo schwer sein, denk ich mir. Ich habe also mit Makros/Aufzeichnungen angefangen und mir den Code angesehen. Leider funktioniert es nicht so, wie ich es mir vorstelle, da das Kopieren/Ersetzen usw. im Script wohl etwas anders abläuft als in Word per Hand.

Ich habe per google kein Script gefunden, das dies oder etwas Ähnliches erledigt, also frag ich hier mal nach. Vielleicht kann mir ja jemand einen Einstieg geben, ohne dass ich mich jetzt komplett in VisualBasic reinfuchsen muss.

Es wäre schön, wenn mir jemand mir ein kleines Grundgerüst gäbe, ich brauche eigentlich nur ein kleines Beispiel, den Rest wusel ich mir selber zusammen. Da ich durchaus Programmieren kann (nur halt nicht in VB) würde ein kleines Beispiel reichen, nur damit ich sehe, welche Befehle und in welcher Art ich benötige. Ich habe mit den aufgezeichneten Makros sowas bekommen

Selection.Find.ClearFormatting
With Selection.Find
.Text = „“
.Replacement.Text = „“
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Copy

aber da scheint einiges nicht zu funktionieren, und da ich mir die Befehle nicht angucken kann, ohne mich wirklich in die Grundlagen von VB zu stürzen, komme ich nicht weiter.

Vielen Dank für Eure hilfe schonmal vorweg!

weiter
hallo,

ich habe nun folgendes gemacht:


Sub kursives ()

Selection.Find.ClearFormatting
Selection.Find.Font.Italic = True
Selection.Find.Replacement.ClearFormatting
With Selection.Find.Replacement.Font
.Bold = False
.Italic = False
End With
With Selection.Find
.Text = „“
.Replacement.Text = „!eckigeklammer!i!eckigeklammer!^&!eckigeklammer!/i!eckigeklammer!“
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub


Sub machalles()
Application.Run MacroName:=„fettes“
Application.Run MacroName:=„kusives“
End Sub


!eckigeklammer! bedeutet die zeichen die hier nicht dargestellt wurden.

das funzt ganz gut. nun noch ein paar fragen:
ist der code „grammatikalisch“ soweit ok oder hab ich nen groben fehler? wie muss der befehl

Selection.Find.Font.Italic = True

lauten, um alles rote/blaue/gelbe zu selectieren und wie, um absätze, die zentriert, linksbündig, rechtsbündig und blocksatz sind? und schlussendlich: wie muss der befehl lauten, um eine bstimmte schriftart (nämlich curier) zu selektieren?

danke für eure hilfe!

Hallo trottle,

gehe auf den Link auf der Brettbeschreibung des Wordbrettes und schaue dort, da ist auch viel Word-Vba Code dabei.

Gruß
Reinhard

vielen dank!