BigCardText

Є у нас певне число, яке потрібно перетворити у текст. Можна просто його написати. Але ж ліньки:). У мережі можна зустріти багато макросів, які можуть із числа робити текст. Давайте розглянемо один із них та безкоштовну програму на випадок, якщо перший варіант не влаштовує або не працює.

Ось код готового макроса (джерело: 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 вважає, що числа введені англійською мовою, то і текст буде англійським. Щоб було зрозуміло дивіться скриншот знизу.

BigCardText

BigCardText

 Алгоритм встановлення та використання макроса:

1. Копіюємо код, який можна бачити вище.

2. Тоді ідемо по шляху: «Вид → Макросы → Макросы».

BigCardText

BigCardText

3. Називаємо наш макрос (ім’я повинне бути без пробілів) та натискаємо на кнопку «Создать».

BigCardText

4. У вікні візуального редактора Microsoft Visual Basic, яке відкриється, потрібно знайти текст із іменем вашого макроса (в мене на прикладі BigCardText) та замінити його на скопійований вище.

BigCardText

BigCardText

Для запуску макроса на виконання потрібно виділити цифри. Тоді перейти у «Вид → Макросы → Макросы», знайти BigCardText (якщо не перейменовували) та натиснути на кнопку «Выполнить». Після виконання макрос повинен дати результат.

BigCardText

Якщо ви хочете мати швидкий доступ до потрібного (потрібних) макросів, то прочитайте наступну статтю: Як додати макрос в панель швидкого доступу?

Спосіб 2 (без макросів). Для цієї функції скористаємося послугами безкоштовної утиліти (число прописом), яка може без проблем перетворювати цифри у текст, розраховувати ПДВ та працювати із програмами Word та Excel.

BigCardText

Якщо ваш офісний пакет 2000 та вище, то програма може виконувати спільний із ним запуск.

BigCardText

Підтримуються різні мови, у тому числі українська та російська. ПДВ та грошові одиниці також налаштовуються.

BigCardText

Працювати із програмою дуже просто (на прикладі Microsoft Office Word 2016). Пишемо у Ворді число, виділяємо його (програма число прописом має бути запущена) і натискаємо на іконку Word у вікні програми. Цифри автоматично будуть додані та перетворені у текст. Можна просто скопіювати цифри, вставити у програму (використовуючи відповідну кнопку) та повторити все у зворотному порядку для вставки тексту у редактор Microsoft Office Word.

BigCardText

Готовий текст можна просто перетягнути у вікно редактора.

Одне, що я не зміг зробити, так це завантажити програму із офіційного сайту автора (він просто не працював на момент написання статті). Проте програму легко можна знайти  мережі інтернет. Кому потрібно, пишіть у коментарях, додам лінк на завантаження.

Сторінка програми "Число прописью"

Завантажити програму "Число прописью"