Преобразование цифр в текст в Microsoft Word

Иван Корнев·14.05.2026·4 мин

Чтобы написать цифры словами в Word, используйте поле с формулой {=число \* CardText}. Выделите число, нажмите Ctrl+F9, введите формулу внутри фигурных скобок и обновите результат клавишей F9. Этот метод работает без установки сторонних программ и подходит для договоров, счетов и официальных документов. Для автоматизации процесса или работы с очень большими числами применяются макросы VBA.

Оглавление

Быстрый способ: Поля и формулы

Встроенный инструмент «Поле» позволяет конвертировать целые числа в текстовый вид. Это наиболее надежный метод, не требующий программирования.

Алгоритм действий

  1. Напишите число, которое нужно перевести в пропись (например, 1250).
  2. Выделите это число курсором.
  3. Нажмите комбинацию клавиш Ctrl + F9. Вокруг числа появятся фигурные скобки { }.
    • Важно: Фигурные скобки нельзя напечатать вручную с клавиатуры, они создаются только горячей клавишей.
  4. Внутри скобок, перед числом, допишите знак равенства и специальный ключ. Должно получиться так: { =1250 \* CardText }
    • Обратите внимание на пробелы: после = пробел не обязателен, но перед \* он нужен. Обратный слэш \ обязателен.
  5. Нажмите клавишу F9, чтобы обновить поле. Число заменится на текст: «одна тысяча двести пятьдесят».

Если вам нужно сохранить исходное число и добавить пропись рядом, скопируйте число, вставьте его в новое место и примените инструкцию выше к копии.

Ограничения метода

Стандартный ключ CardText корректно обрабатывает целые числа в диапазоне от 0 до 999 999. Для чисел больше миллиона потребуется комбинирование полей или использование макроса.

Настройка языка и формата

Результат преобразования зависит от языка, установленного для текущего фрагмента текста или всего документа.

Ключ форматированияРезультат для числа 123Описание
\* CardTextсто двадцать триСтандартная пропись (зависит от языка интерфейса/текста)
\* OrdTextсто двадцать третийПорядковое числительное
\* CapsСТО ДВАДЦАТЬ ТРИВсе буквы заглавные
\* FirstCapСто двадцать триПервая буква заглавная

Как изменить язык вывода

Если вместо русских слов вы получаете английские («one hundred...»):

  1. Выделите поле с формулой (или весь текст).
  2. Перейдите на вкладку РецензированиеЯзыкЯзык проверки правописания.
  3. Выберите Русский и нажмите ОК.
  4. Обновите поле, нажав F9.

Автоматизация через макросы VBA

Для регулярной работы с большими суммами (например, в бухгалтерских отчетах) удобнее использовать макрос. Он позволяет преобразовывать числа одним кликом.

Макрос для чисел до 999 миллионов

Этот код разбивает большое число на миллионы и тысячи, преобразует их по отдельности и добавляет правильные окончания («миллион», «миллиона», «миллионов»).

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. В меню выберите InsertModule.
  3. Вставьте следующий код:
Sub ConvertBigNumberToText()
    Dim sNum As String
    Dim lNum As Long
    Dim sResult As String
    
    ' Получаем выделенное число
    If Selection.Type <> wdSelectionNormal Then
        MsgBox "Выделите число для преобразования", vbExclamation
        Exit Sub
    End If
    
    sNum = Trim(Selection.Text)
    
    ' Проверка, является ли выделение числом
    If Not IsNumeric(sNum) Then
        MsgBox "Выделенный текст не является числом", vbExclamation
        Exit Sub
    End If
    
    lNum = CLng(sNum)
    
    If lNum > 999999999 Then
        MsgBox "Число слишком велико (макс. 999 млн)", vbExclamation
        Exit Sub
    End If
    
    ' Логика разбиения на части
    If lNum >= 1000000 Then
        Dim lMillions As Long
        Dim lRest As Long
        
        lMillions = lNum \ 1000000
        lRest = lNum Mod 1000000
        
        ' Формируем часть с миллионами
        Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
            Text:="= " & lMillions & " \* CardText", PreserveFormatting:=True
        Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend
        
        ' Добавляем правильное окончание для слова "миллион"
        Dim sMilEnd As String
        Select Case lMillions Mod 100
            Case 11 To 19: sMilEnd = " миллионов "
            Case Else
                Select Case lMillions Mod 10
                    Case 1: sMilEnd = " миллион "
                    Case 2 To 4: sMilEnd = " миллиона "
                    Case Else: sMilEnd = " миллионов "
                End Select
        End Select
        
        sResult = Selection.Text & sMilEnd
        
        ' Если есть остаток, добавляем его
        If lRest > 0 Then
             ' Вставляем поле для остатка
             Selection.Collapse Direction:=wdCollapseEnd
             Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
                Text:="= " & lRest & " \* CardText", PreserveFormatting:=True
             sResult = sResult & Selection.Fields(1).Result.Text
        End If
        
        ' Заменяем выделение итоговым текстом
        Selection.Delete
        Selection.TypeText Text:=sResult
    Else
        ' Для чисел менее миллиона используем стандартное поле
        Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
            Text:="= " & lNum & " \* CardText", PreserveFormatting:=True
        Selection.Fields.Update
    End If
End Sub
  1. Закройте редактор VBA.
  2. Чтобы запустить: выделите число в документе, нажмите Alt + F8, выберите ConvertBigNumberToText и нажмите Выполнить.

Макросы не работают в веб-версии Word (Word Online) и мобильных приложениях. Используйте десктопную версию программы.

Сравнение методов

ХарактеристикаПоле { = \* CardText }Макрос VBA
Сложность освоенияНизкая (3 действия)Средняя (требуется вставка кода)
Диапазон чиселДо 999 999 (без доп. настроек)До 999 999 999 и более
Скорость работыБыстро для единичных случаевМгновенно для потока документов
ГибкостьЗависит от языка текстаМожно настроить под любой формат
БезопасностьАбсолютно безопасноТребует разрешения на выполнение макросов

Частые ошибки

  1. Ошибка «!Неверный переключатель поля» или «#Error!»

    • Причина: Опечатка в ключе \* CardText или отсутствие обратного слэша \.
    • Решение: Нажмите Shift + F9, чтобы увидеть код поля, проверьте синтаксис и нажмите F9 снова.
  2. Число не меняется при нажатии F9

    • Причина: Поле заблокировано или обновление полей отключено в настройках.
    • Решение: Выделите весь документ (Ctrl + A) и нажмите F9. Убедитесь, что курсор стоит внутри поля.
  3. Текст на английском языке

    • Причина: Язык фрагмента определен как английский.
    • Решение: Измените язык проверки правописания для выделенного поля на русский (см. раздел «Настройка языка»).
  4. Дробные числа не работают

    • Причина: Ключ CardText работает только с целыми числами.
    • Решение: Отделите целую часть и дробную. Целую часть переведите в пропись, дробную запишите как «00 копеек» или аналогично, вручную.

FAQ

Можно ли сделать так, чтобы первая буква была заглавной, а остальные строчными? Да, используйте комбинированный ключ: { =123 \* CardText \* FirstCap }. Результат: «Сто двадцать три».

Как превратить поле с формулой в обычный текст? Если нужно отправить документ клиенту, чтобы он не мог случайно изменить цифры, выделите поле и нажмите Ctrl + Shift + F9. Это разорвет связь с формулой, оставив только текстовый результат.

Работает ли этот способ в Word 2007, 2010, 2016, 2019, 2021 и 365? Да, функция полей (Fields) является базовой и поддерживается во всех современных версиях Microsoft Word.