Бывают случаи, когда вам нужно записывать числа по буквам. Например, вы можете записать «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 [Преобразование чисел в текст].