Есть у нас определенное число, которое необходимо преобразовать в текст. Можно просто его написать. Но ведь лень:). В сети можно встретить много макросов, которые могут из числа делать текст. Давайте рассмотрим один из них и бесплатную программу на случай, если первый вариант не устраивает или не работает.
Вот код готового макроса (источник: wordexpert.ru):
Sub BigCardText()
'преобразование целого числа в текстовый эквивалент
'источник - http://wordtips.vitalnews.com/Pages/T000203_Converting_Numbers_to_Text.html
Dim sDigits As String
Dim sBigStuff As String
sDigits = ""
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 = CStr(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 & EndOfWord(Val(sBigStuff))
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 "Число слишком большое для преобразования", vbOKOnly
End If
End Sub
'Вот эта функция. Берет аргумент в виде числа, чтобы
'быть более универсальной. Возвращает слово с нужным окончанием
Private Function EndOfWord(nmbr As Integer) As String
'число единиц находится в промежутке от 5 до 19
If (Val(Right(CStr(nmbr), 2)) = 5) _
Or Val(Right(CStr(nmbr), 1)) = 0 _
Or (Val(Right(CStr(nmbr), 1)) >= 5 And Val(Right(CStr(nmbr), 1)) <= 9) Then
EndOfWord = " миллионов "
'число единиц равно единице
ElseIf Val(Right(CStr(nmbr), 1)) = 1 Then
EndOfWord = " миллион "
'число единиц не больше четырех и больше единицы
ElseIf Val(Right(CStr(nmbr), 1)) > 1 Then
EndOfWord = " миллиона "
End If
End Function
Обратите внимание на то, что макрос работает с числами до 999999.
Также особое внимание нужно обращать на язык ввода. Если Word считает, что числа введены на английском языке, то и текст будет английским. Чтобы было понятно смотрите скриншот снизу.
Алгоритм установки и использования макроса:
1. Копируем код, который можно видеть выше.
2. Тогда идем по пути: «Вид → Макросы → Макросы».
3. Называем наш макрос (имя должно быть без пробелов) и нажимаем на кнопку «Создать».
4. В окне визуального редактора Microsoft Visual Basic, которое откроется, нужно найти текст с именем вашего макроса (у меня на примере BigCardText) и заменить его на скопированный выше.
Для запуска макроса на выполнение нужно выделить цифры. Тогда перейти в «Вид → Макросы → Макросы», найти BigCardText (если не переименовывали) и нажать на кнопку «Выполнить». После выполнения макрос должен дать результат.
Если вы хотите иметь быстрый доступ к нужному (нужным) макросу, то прочитайте следующую статью: Как добавить макрос в панель быстрого доступа?
Способ 2 (без макросов). Для этой функции воспользуемся услугами бесплатной утилиты (число прописью), которая может без проблем превращать цифры в текст, рассчитывать НДС и работать с программами Word и Excel.
Если ваш офисный пакет 2000 и выше, то программа может выполнять совместный с ним запуск.
Поддерживаются различные языки, в том числе украинский и русский. НДС и денежные единицы также настраиваются.
Работать с программой очень просто (на примере Microsoft Office Word 2016). Пишем в Ворде число, выделяем его (программа число прописью должна быть запущена) и нажимаем на иконку Word в окне программы. Цифры автоматически будут добавлены и преобразованы в текст. Можно просто скопировать цифры, вставить в программу (используя соответствующую кнопку) и повторить все в обратном порядке для вставки текста в редактор Microsoft Office Word.
Готовый текст можно просто перетащить в окно редактора.
Одно, что я не смог сделать, так это скачать программу с официального сайта автора (он просто не работал на момент написания статьи). Однако программу легко можно найти в сети интернет. Кому нужно, пишите в комментариях, добавлю ссылку на загрузку.
Страница программы "Число прописью"
Скачать программу "Число прописью"