Є у нас певне число, яке потрібно перетворити у текст. Можна просто його написати. Але ж ліньки:). У мережі можна зустріти багато макросів, які можуть із числа робити текст. Давайте розглянемо один із них та безкоштовну програму на випадок, якщо перший варіант не влаштовує або не працює.
Ось код готового макроса (джерело: 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.
Готовий текст можна просто перетягнути у вікно редактора.
Одне, що я не зміг зробити, так це завантажити програму із офіційного сайту автора (він просто не працював на момент написання статті). Проте програму легко можна знайти мережі інтернет. Кому потрібно, пишіть у коментарях, додам лінк на завантаження.
Сторінка програми "Число прописью"
Завантажити програму "Число прописью"