Преобразование чисел в текст (Microsoft Word)
Бывают случаи, когда вам нужно записывать числа по буквам. Например, вы можете записать «1234» как «одна тысяча двести тридцать четыре».
Word не имеет встроенной функции, которая будет выполнять преобразование за вас, поэтому вам остается создать макрос, который будет обрабатывать преобразование.
Следующий макрос BigCardText преобразует любое число от 0 до 999 999 999. Чтобы использовать его, просто поместите точку вставки либо внутри числа, которое вы хотите преобразовать, либо справа от числа (если это одна цифра).
Sub BigCardText() Dim sDigits As String Dim sBigStuff As String sBigStuff = "" ' Select the full number in which the insertion point is located Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdMove Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend ' Store the digits in a variable sDigits = Trim(Selection.Text) If Val(sDigits) > 999999 Then If Val(sDigits) <= 999999999 Then sBigStuff = Trim(Int(Str(Val(sDigits) / 1000000))) ' Create a field containing the big digits and ' the cardtext format flag Selection.Fields.Add Range:=Selection.Range, _ Type:=wdFieldEmpty, Text:="= " + sBigStuff + " \* CardText", _ PreserveFormatting:=True ' Select the field and copy it Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend sBigStuff = Selection.Text & " million " sDigits = Right(sDigits, 6) End If End If If Val(sDigits) <= 999999 Then ' Create a field containing the digits and the cardtext format flag Selection.Fields.Add Range:=Selection.Range, _ Type:=wdFieldEmpty, Text:="= " + sDigits + " \* CardText", _ PreserveFormatting:=True ' Select the field and copy it Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend sDigits = sBigStuff & Selection.Text ' Now put the words in the document Selection.TypeText Text:=sDigits Selection.TypeText Text:=" " Else MsgBox "Number too large", vbOKOnly End If End Sub
При использовании макроса убедитесь, что число, которое вы конвертируете, не содержит посторонней информации, например знаков доллара или запятых. Когда вы запускаете BigCardText, макрос проверяет, не превышает ли выбранное число один миллион. Если это так, он сначала работает с частью, превышающей миллион, преобразовывая ее в слова. Затем преобразуется значение меньше миллиона. Окончательная, полная формулировка собирается и вставляется обратно в документ, готовый к использованию.
_Примечание: _
Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
WordTips — ваш источник экономичного обучения работе с Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (203) относится к Microsoft Word 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Word (Word 2007 и позже) здесь:
link: / wordribbon-Converting_Numbers_to_Text [Преобразование чисел в текст]
.