로마 숫자를 아랍어 (Microsoft Word)로 변경
Bradley에는 텍스트 내에 로마 숫자가 많이 포함 된 문서가 있습니다. 그는 수천 개의 로마 숫자를 아랍어로 쉽게 변경할 수있는 방법이 필요합니다.
이것은 어떤 성격의 분야도 아닙니다. 단순히 로마 숫자로 텍스트에 입력됩니다. 그는 아랍어로 쉽게 바꿀 수있는 방법이 있는지 궁금합니다.
불행히도 Word에는 로마 숫자를 아랍어로 변환하는 기능이 없습니다. 원하는 경우 찾기 및 바꾸기를 사용하여 로마 숫자를 검색 할 수 있지만 각 숫자에 대해 개별 검색을 수행해야합니다. 와일드 카드 검색을 사용하여 대문자 로마 숫자로만 구성된 단어를 검색 할 수 있습니다. 이렇게하면 검색이 훨씬 쉬워집니다. “<[CDILMVX] \ {1,}>”(따옴표 제외)를 검색하고 와일드 카드 사용 확인란이 선택되어 있는지 확인하기 만하면됩니다. 다음 찾기를 클릭하면 다음 로마 숫자를 찾은 다음 해당하는 아랍어로 수동으로 변경할 수 있습니다.
변환을 시도하는 또 다른 방법은 매크로를 사용하는 것입니다. 문서의 각 단어를 살펴보고 로마 숫자로 구성된 후보인지 확인하는 매크로를 만들 수 있습니다. 그러나 특히 문서에 로마 숫자로 혼동 될 수있는 두문자어가 포함 된 경우 일부 오 탐지가 발생할 수 있습니다. (예를 들어 신용 카드에 CC를 사용하는 경우 200을 로마 숫자로 간주 할 수 있습니다.)
다음 매크로 집합은 문서의 각 단어를 단계별로 실행하며 단어에 로마 숫자 (I, V, X, L, C, D 및 M) 만 포함 된 경우 사용자에게 매크로가 수사.
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
대문자 I는 텍스트에서 매우 일반적인 단어이기 때문에 매크로는 변환이 수행되어야하는지 결정하기 위해 각 매크로에서 멈추지 않습니다.
그러나 대문자 I가 로마 숫자로만 구성된 긴 단어 (예 : XLVII)의 일부인 경우 변환 후보로 간주됩니다. 매크로는 또한 모든 로마 숫자가 대문자라고 가정합니다.
_ 참고 : _
이 페이지 (또는 WordTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / wordribbon-WordTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_WordTips_는 비용 효율적인 Microsoft Word 교육을위한 소스입니다.
(Microsoft Word는 세계에서 가장 널리 사용되는 워드 프로세싱 소프트웨어입니다.)이 팁 (5943)은 Office 365의 Microsoft Word 2007, 2010, 2013, 2016, 2019 및 Word에 적용됩니다. Word의 이전 메뉴 인터페이스 :
link : / word-Changing_Roman_Numerals_to_Arabic [로마 숫자를 아랍어로 변경]
.