Word: Formel in Text-Schriftart?

1 Antwort

Hallo,

das geht so nicht – zumindest nicht vor dem Einfügen der Formel. Der Grund ist wohl darin zu suchen, dass Cambria Math alle benötigten mathematischen Zeichen enthält, die für Formeln benötigt werden, und in anderen Schriftarten manche Formelzeichen nicht dargestellt werden können.

Man kann eingefügte Formeln aber im Nachhinein über den Befehl Normaler Text in normalen Text umwandeln und dann die Schriftart ändern. Das muss man allerdings für jede Formel einzeln machen. In einem Dokument mit vielen Formeln ist das eine ganz schöne Arbeit.

Daher habe ich mal ein Makro geschrieben, das diese Arbeit in einem Zug erledigt. Ich stelle es dir hier rein. Das Makro formatiert alle Formelcontainer im Dokument in normalen Text um und setzt die Schriftart auf Arial.

Dadurch kann man erst sein Dokument fertig schreiben und danach alle Formeln auf einmal mit der Schriftart Arial formatieren.

Wichtig: Dabei kann es dann natürlich passieren, dass Zeichen, welche in Arial nicht dargestellt werden können, dann auch nicht mehr angezeigt werden.

Wenn du Fragen hast, melde dich bitte.

Gruß, BerchGerch

====================

Hier das Makro:


Sub FormelninArialformatieren()

Dim intAnz As Integer, intTaste As Integer
Dim strDocName As String, strMsg As String
Dim objFormel As OMath

If Documents.Count = 0 Then
Beep
Exit Sub
End If

strDocName = ActiveDocument.Name
intAnz = ActiveDocument.OMaths.Count

' Mitteilung, falls keine Formelcontainer im Dokument vorhanden sind.
If intAnz = 0 Then
Beep
MsgBox "Das Dokument " & strDocName & " enthält keine Formelcontainer." & _
" Der Vorgang wird abgebrochen.", _
vbOKOnly + vbInformation, "Hinweis"
Exit Sub
End If

' Nachfrage, ob gefundene Formelcontainer wirklich umgewandelt werden sollen.
On Error GoTo 0
Beep
strMsg = "Das Dokument " & strDocName & " enthält " & intAnz & _
" Formelcontainer." & Chr(10) & Chr(10) & "Sind Sie sicher," & _
" dass diese alle in normalen Text umgewandelt und" & _
" mit der Schriftart Arial versehen werden sollen?"
intTaste = MsgBox(strMsg, vbYesNo + vbQuestion, "Bitte um Bestätigung")
If intTaste = vbNo Then Exit Sub

'Wandelt alle Formelcontainer in normalen Text um, wenn Nachfrage mit Ja beantwortet wird,
'und versieht sie mit der Schriftart Arial.
For Each objFormel In ActiveDocument.OMaths
objFormel.ConvertToNormalText
objFormel.Range.Font.Name = "Arial"
Next objFormel

'Erstellt eine Meldung, wie viele Formelcontainer verändert wurden.
Beep
MsgBox "Es wurden " & intAnz & " Formelcontainer im Dokument in normalen Text umgewandelt" & _
" und mit der Schriftart Arial versehen.", _
vbOKOnly + vbInformation, "Ergebnis"

End Sub

Woher ich das weiß:eigene Erfahrung – Ich arbeite seit 25 Jahren nahezu täglich mit Word.
Christopher09 
Fragesteller
 23.12.2015, 21:39

Hab deinen Lösungsansatz in der Zwischenzeit ausprobiert und muss sagen, dass alles perfekt funktioniert hat. Außerdem hast du meinen Respekt für das Erstellen des Makros ;)

1
BerchGerch  24.12.2015, 07:37
@Christopher09

Super! Freut mich, dass es geklappt hat :-) und danke für die Rückmeldung.

Frohe Weihnachten wünscht

BerchGerch

0