Ändern der römischen Ziffern in Arabisch (Microsoft Word)
Bradley hat ein Dokument, das im Text viele römische Ziffern enthält. Er braucht eine einfache Möglichkeit, diese Tausenden von römischen Ziffern in Arabisch umzuwandeln.
Dies sind keine Felder irgendeiner Art; Sie werden einfach als römische Ziffern in Text eingegeben. Er fragt sich, ob es eine Möglichkeit gibt, sie leicht in ihre arabischen Entsprechungen umzuwandeln.
Leider gibt es in Word keine Funktion, die römische Ziffern in Arabisch konvertiert. Wenn Sie möchten, können Sie einfach mit Suchen und Ersetzen nach römischen Ziffern suchen, aber Sie müssten für jede einzelne eine individuelle Suche durchführen. Sie können eine Platzhaltersuche verwenden, um nach einem Wort zu suchen, das ausschließlich aus römischen Großbuchstaben besteht, was die Suche erheblich vereinfachen würde. Sie müssen lediglich nach „<[CDILMVX] \ {1,}>“ suchen (ohne Anführungszeichen) und sicherstellen, dass das Kontrollkästchen Platzhalter verwenden aktiviert ist. Wenn Sie auf Weiter suchen klicken, befindet sich die nächste römische Ziffer, und Sie können sie manuell in ihre arabische Entsprechung ändern.
Eine andere Möglichkeit, die Konvertierung durchzuführen, ist ein Makro. Sie können ein Makro erstellen, das jedes Wort in Ihrem Dokument betrachtet und versucht, festzustellen, ob es ein Kandidat für das Bestehen aus römischen Ziffern ist. Es kann jedoch zu Fehlalarmen kommen, insbesondere wenn Ihr Dokument Akronyme enthält, die als römische Ziffern verwechselt werden können. (Wenn Sie beispielsweise das Akronym CC für Kreditkarte verwenden, kann dies als römische Ziffer für 200 angesehen werden.)
Der folgende Satz von Makros durchläuft jedes der Wörter in einem Dokument. Wenn das Wort nur römische Ziffern enthält (I, V, X, L, C, D und M), wird der Benutzer gefragt, ob das Makro das konvertieren soll Ziffern.
Sub ConvertRoman() Dim wrdX Dim wrd As String Dim tstSW As Boolean Dim J As Long For Each wrdX In ActiveDocument.Words wrd = UCase(Trim(wrdX)) If wrd = "" Or wrd = "I" Or wrd = vbCr Then tstSW = False Else tstSW = True End If For J = 1 To Len(wrd) If InStr("MDCLXVI",Mid(wrd, J, 1)) = 0 Then tstSW = False Exit For End If Next J If tstSW Then wrdX.Select Selection.MoveLeft unit:=wdCharacter, _ Count:=Len(wrdX) - Len(wrd), _ Extend:=wdExtend J = MsgBox("Convert " & wrd & " to Arabic", vbYesNoCancel) If J = vbCancel Then Exit Sub If J = vbYes Then Selection.TypeText Text:=RomanToArabic(wrd) End If Next wrdX End Sub
Function RomanToArabic(Rm As String) As String Dim J As Long Dim ab As Long Dim cc As Long Dim dd As Long ab = 0 Rm = Trim(Rm) J = 1 Do cc = GetValue(Mid(Rm, J, 1)) dd = GetValue(Mid(Rm, J + 1, 1)) If cc < dd Then ab = ab + dd - cc J = J + 1 Else ab = ab + cc End If J = J + 1 Loop Until J >= Len(Rm) If J = Len(Rm) Then ab = ab + GetValue(Mid(Rm, J, 1)) End If RomanToArabic = Trim(Str(ab)) End Function
Function GetValue(ss As String) As Long Dim Cde() Dim Cvalue() Dim J As Long Cde = Array("M", "D", "C", "L", "X", "V", "I") Cvalue = Array(1000, 500, 100, 50, 10, 5, 1) For J = 0 To 6 If ss = Cde(J) Then GetValue = Cvalue(J) Exit Function End If Next J GetValue = 999999 End Function
Da ein Großbuchstabe I ein sehr häufiges Wort im Text ist, werden die Makros nicht bei jedem von ihnen angehalten, um zu bestimmen, ob eine Konvertierung durchgeführt werden soll.
Wenn das Großbuchstaben I jedoch Teil eines längeren Wortes ist, das nur aus römischen Ziffern besteht (z. B. XLVII), wird es als Konvertierungskandidat betrachtet. Die Makros setzen auch voraus, dass alle Ihre römischen Ziffern in Großbuchstaben geschrieben sind.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.
(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (12509) gilt für Microsoft Word 97, 2000, 2002 und 2003. Sie finden eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Word (Word 2007) und später) hier: