Часто нужно перевести число в текст в Excel так, чтобы оно отображалось прописью (словами) на русском или других языках. Так как по умолчанию нет готовой функции, создадим свою пользовательскую функцию с помощью макросов.
Пример использования пользовательской функции для преобразования числа суммы в текстовые слова, которую можно скачать в конце статьи:
Для создания пользовательской функции, которая сможет перевести число в текст прописью , нам нужно выполнить 3 простых шага:
- Открыть редактор макросов ALT+F11.
- Создать новый модуль и в нем нужно написать функцию особенным способом: Function вместо Sub . Тогда наша функция «ЧислоПропись» будет отображаться в списке мастера функций (SHIFT+F3), в категории «Определенные пользователем».
- Вставить в модуль следующий код и сохранить:
Function ЧислоПропись(Число As Currency ) As String
‘до 999 999 999 999
On Error GoTo Число_Error
Dim strМиллиарды As String , strМиллионы As String , strТысячи As String , strЕдиницы As String , strСотые As String
Dim Поз As Integer
strЧисло = Format(Int(Число), "000000000000" )
‘Миллиарды’
Поз = 1
strМиллиарды = Сотни(Mid(strЧисло, Поз, 1))
strМиллиарды = strМиллиарды & Десятки(Mid(strЧисло, Поз + 1, 2), "м" )
strМиллиарды = strМиллиарды & ИмяРазряда(strМиллиарды, Mid(strЧисло, Поз + 1, 2), "миллиард " , "миллиарда " , "миллиардов " )
‘Миллионы’
Поз = 4
strМиллионы = Сотни(Mid(strЧисло, Поз, 1))
strМиллионы = strМиллионы & Десятки(Mid(strЧисло, Поз + 1, 2), "м" )
strМиллионы = strМиллионы & ИмяРазряда(strМиллионы, Mid(strЧисло, Поз + 1, 2), "миллион " , "миллиона " , "миллионов " )
‘Тысячи’
Поз = 7
strТысячи = Сотни(Mid(strЧисло, Поз, 1))
strТысячи = strТысячи & Десятки(Mid(strЧисло, Поз + 1, 2), "ж" )
strТысячи = strТысячи & ИмяРазряда(strТысячи, Mid(strЧисло, Поз + 1, 2), "тысяча " , "тысячи " , "тысяч " )
‘Единицы’
Поз = 10
strЕдиницы = Сотни(Mid(strЧисло, Поз, 1))
strЕдиницы = strЕдиницы & Десятки(Mid(strЧисло, Поз + 1, 2), "м" )
If strМиллиарды & strМиллионы & strТысячи & strЕдиницы = "" Then strЕдиницы = "ноль "
‘strЕдиницы = strЕдиницы & ИмяРазряда(" ", Mid(strЧисло, Поз + 1, 2), "рубль ", "рубля ", "рублей ")
‘Сотые’
‘strСотые = strКопейки & " " & ИмяРазряда(strКопейки, Right(strКопейки, 2), ‘"копейка", "копейки", "копеек")
ЧислоПропись = strМиллиарды & strМиллионы & strТысячи & strЕдиницы
ЧислоПропись = UCase(Left(ЧислоПропись, 1)) & Right(ЧислоПропись, Len(ЧислоПропись) – 1)
Число_Error:
MsgBox Err.Description
End Function
Function Сотни(n As String ) As String
Сотни = ""
Select Case n
Case 0: Сотни = ""
Case 1: Сотни = "сто "
Case 2: Сотни = "двести "
Case 3: Сотни = "триста "
Case 4: Сотни = "четыреста "
Case 5: Сотни = "пятьсот "
Case 6: Сотни = "шестьсот "
Case 7: Сотни = "семьсот "
Case 8: Сотни = "восемьсот "
Case 9: Сотни = "девятьсот "
End Select
End Function
Function Десятки(n As String , Sex As String ) As String
Десятки = ""
Select Case Left(n, 1)
Case "0" : Десятки = "" : n = Right(n, 1)
Case "1" : Десятки = ""
Case "2" : Десятки = "двадцать " : n = Right(n, 1)
Case "3" : Десятки = "тридцать " : n = Right(n, 1)
Case "4" : Десятки = "сорок " : n = Right(n, 1)
Case "5" : Десятки = "пятьдесят " : n = Right(n, 1)
Case "6" : Десятки = "шестьдесят " : n = Right(n, 1)
Case "7" : Десятки = "семьдесят " : n = Right(n, 1)
Case "8" : Десятки = "восемьдесят " : n = Right(n, 1)
Case "9" : Десятки = "девяносто " : n = Right(n, 1)
End Select
Dim Двадцатка As String
Двадцатка = ""
Select Case n
Case "0" : Двадцатка = ""
Case "1"
Select Case Sex
Case "м" : Двадцатка = "один "
Case "ж" : Двадцатка = "одна "
Case "с" : Двадцатка = "одно "
End Select
Case "2" :
Select Case Sex
Case "м" : Двадцатка = "два "
Case "ж" : Двадцатка = "две "
Case "с" : Двадцатка = "два "
End Select
Case "3" : Двадцатка = "три "
Case "4" : Двадцатка = "четыре "
Case "5" : Двадцатка = "пять "
Case "6" : Двадцатка = "шесть "
Case "7" : Двадцатка = "семь "
Case "8" : Двадцатка = "восемь "
Case "9" : Двадцатка = "девять "
Case "10" : Двадцатка = "десять "
Case "11" : Двадцатка = "одиннадцать "
Case "12" : Двадцатка = "двенадцать "
Case "13" : Двадцатка = "тринадцать "
Case "14" : Двадцатка = "четырнадцать "
Case "15" : Двадцатка = "пятнадцать "
Case "16" : Двадцатка = "шестнадцать "
Case "17" : Двадцатка = "семнадцать "
Case "18" : Двадцатка = "восемнадцать "
Case "19" : Двадцатка = "девятнадцать "
End Select
Десятки = Десятки & Двадцатка
End Function
Function ИмяРазряда(Строка As String , n As String , Имя1 As String , Имя24 As String , ИмяПроч As String ) As String
If Строка <> "" Then
ИмяРазряда = ""
Select Case Left(n, 1)
Case "0" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" : n = Right(n, 1)
End Select
Select Case n
Case "1" : ИмяРазряда = Имя1
Case "2" , "3" , "4" : ИмяРазряда = Имя24
Case Else : ИмяРазряда = ИмяПроч
End Select
End If
Можно написать алгоритм макро программы по-другому и еще сделать так, чтобы она дописывала валюту суммы прописью. Для этого создайте Module2 и введите в него следующий код:
Function ЧислоПрописьюВалюта(Число As Double , Optional Валюта As Integer = 1, Optional Копейки As Integer = 1)
Attribute ЧислоПрописьюВалюта.VB_Description = "Функция преобразовывает число суммы текстовыми словами"
Attribute ЧислоПрописьюВалюта.VB_ProcData.VB_Invoke_Func = "
1"
Dim Edinicy(0 To 19) As String : Dim EdinicyPoslednie(0 To 19) As String
Dim Desyatki(0 To 9) As String : Dim Sotni(0 To 9) As String : Dim mlrd(0 To 9) As String
Dim mln(0 To 9) As String : Dim tys(0 To 9) As String
Dim SumInt, x, shag, vl As Integer : Dim txt, Sclon_Tys As String
‘———————————————
Application.Volatile
‘———————————————
Edinicy(0) = "" : EdinicyPoslednie(0) = IIf(Валюта = 0, "евро" , IIf(Валюта = 1, "рублей" , "долларов" ))
Edinicy(1) = "один " : EdinicyPoslednie(1) = IIf(Валюта = 0, "один евро" , IIf(Валюта = 1, "один рубль" , "один доллар" ))
Edinicy(2) = "два " : EdinicyPoslednie(2) = IIf(Валюта = 0, "два евро" , IIf(Валюта = 1, "два рубля" , "два доллара" ))
Edinicy(3) = "три " : EdinicyPoslednie(3) = IIf(Валюта = 0, "три евро" , IIf(Валюта = 1, "три рубля" , "три доллара" ))
Edinicy(4) = "четыре " : EdinicyPoslednie(4) = IIf(Валюта = 0, "четыре евро" , IIf(Валюта = 1, "четыре рубля" , "четыре доллара" ))
Edinicy(5) = "пять " : EdinicyPoslednie(5) = IIf(Валюта = 0, "пять евро" , IIf(Валюта = 1, "пять рублей" , "пять долларов" ))
Edinicy(6) = "шесть " : EdinicyPoslednie(6) = IIf(Валюта = 0, "шесть евро" , IIf(Валюта = 1, "шесть рублей" , "шесть долларов" ))
Edinicy(7) = "семь " : EdinicyPoslednie(7) = IIf(Валюта = 0, "семь евро" , IIf(Валюта = 1, "семь рублей" , "семь долларов" ))
Edinicy(8) = "восемь " : EdinicyPoslednie(8) = IIf(Валюта = 0, "восемь евро" , IIf(Валюта = 1, "восемь рублей" , "восемь долларов" ))
Edinicy(9) = "девять " : EdinicyPoslednie(9) = IIf(Валюта = 0, "девять евро" , IIf(Валюта = 1, "девять рублей" , "девять долларов" ))
Edinicy(11) = "одиннадцать " : EdinicyPoslednie(11) = IIf(Валюта = 0, "одиннадцать евро" , IIf(Валюта = 1, "одиннадцать рублей" , "одиннадцать долларов" ))
Edinicy(12) = "надцать " : EdinicyPoslednie(12) = IIf(Валюта = 0, "надцать евро" , IIf(Валюта = 1, "надцать рублей" , "надцать долларов" ))
Edinicy(13) = "тринадцать " : EdinicyPoslednie(13) = IIf(Валюта = 0, "тринадцать евро" , IIf(Валюта = 1, "тринадцать рублей" , "тринадцать долларов" ))
Edinicy(14) = "четырнадцать " : EdinicyPoslednie(14) = IIf(Валюта = 0, "четырнадцать евро" , IIf(Валюта = 1, "четырнадцать рублей" , "четырнадцать долларов" ))
Edinicy(15) = "пятнадцать " : EdinicyPoslednie(15) = IIf(Валюта = 0, "пятнадцать евро" , IIf(Валюта = 1, "пятнадцать рублей" , "пятнадцать долларов" ))
Edinicy(16) = "шестнадцать " : EdinicyPoslednie(16) = IIf(Валюта = 0, "шестнадцать евро" , IIf(Валюта = 1, "шестнадцать рублей" , "шестнадцать долларов" ))
Edinicy(17) = "семнадцать " : EdinicyPoslednie(17) = IIf(Валюта = 0, "семнадцать евро" , IIf(Валюта = 1, "семнадцать рублей" , "семнадцать долларов" ))
Edinicy(18) = "восемнадцать " : EdinicyPoslednie(18) = IIf(Валюта = 0, "восемнадцать евро" , IIf(Валюта = 1, "восемнадцать рублей" , "восемнадцать долларов" ))
Edinicy(19) = "девятнадцать " : EdinicyPoslednie(19) = IIf(Валюта = 0, "девятнадцать евро" , IIf(Валюта = 1, "девятнадцать рублей" , "девятнадцать долларов" ))
”———————————————
Desyatki(0) = "" : Sotni(0) = "" : tys(0) = "тисячь " : mln(0) = "миллионов " : mlrd(0) = "миллиардов "
Desyatki(1) = "десять " : Sotni(1) = "сто " : tys(1) = "тысяча " : mln(1) = "миллион " : mlrd(1) = "миллиарда "
Desyatki(2) = "двадцать " : Sotni(2) = "двести " : tys(2) = "тысячи " : mln(2) = "миллиона " : mlrd(2) = "миллиарда "
Desyatki(3) = "тридцать " : Sotni(3) = "триста " : tys(3) = "тысячи " : mln(3) = "миллиона " : mlrd(3) = "миллиарда "
Desyatki(4) = "сорок " : Sotni(4) = "четыреста " : tys(4) = "тысячи " : mln(4) = "миллиона " : mlrd(4) = "миллиарда "
Desyatki(5) = "пятьдесят " : Sotni(5) = "пятьсот " : tys(5) = "тысяч " : mln(5) = "миллионов " : mlrd(5) = "миллиардов "
Desyatki(6) = "шестьдесят " : Sotni(6) = "шестьсот " : tys(6) = "тысяч " : mln(6) = "миллионов " : mlrd(6) = "миллиардов "
Desyatki(7) = "семьдесят " : Sotni(7) = "семьсот " : tys(7) = "тысяч " : mln(7) = "миллионов " : mlrd(7) = "миллиардов "
Desyatki(8) = "восемьдесят " : Sotni(8) = "восемьсот " : tys(8) = "тысяч " : mln(8) = "миллионов " : mlrd(8) = "миллиардов "
Desyatki(9) = "девяносто " : Sotni(9) = "девятьсот " : tys(9) = "тысяч " : mln(9) = "миллионов " : mlrd(9) = "миллиардов "
‘———————————————
On Error Resume Next
SumInt = Int(Число)
For x = Len(SumInt) To 1 Step -1
shag = shag + 1
Select Case x
Case 12 ‘ – сотни миллиардов
vl = Mid(SumInt, shag, 1)
txt = txt & Sotni(vl)
Case 11 ‘ – десятки миллиардов
vl = Mid(SumInt, shag, 1)
If vl = "1" And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ‘ – если конец триады от 11 до 19 то перескакиваем на единицы, иначе – формируем десятки
Case 10 ‘ – единицы миллиардов
vl = Mid(SumInt, shag, 1)
If shag > 1 Then
If Mid(SumInt, shag – 1, 1) = 1 Then txt = txt & Edinicy(Mid(SumInt, shag – 1, 2)) & "миллиарда " Else txt = txt & Edinicy(vl) & mlrd(vl) ‘числа в диапозоне от 11 до 19 склоняются на "мільярдов" независимо от последнего числа триады
Else
txt = txt & Edinicy(vl) & mlrd(vl)
End If
Case 9 ‘ – сотни миллионов
vl = Mid(SumInt, shag, 1)
txt = txt & Sotni(vl)
Case 8 ‘ – десятки миллионов
vl = Mid(SumInt, shag, 1)
If vl = "1" And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ‘ – если конец триады от 11 до 19 то перескакиваем на единицы, иначе – формируем десятки
Case 7 ‘ – единицы миллионов
vl = Mid(SumInt, shag, 1)
If shag > 2 Then
If (Mid(SumInt, shag – 2, 1) = 0 And Mid(SumInt, shag – 1, 1) = 0 And vl = "0" ) Then GoTo 10
End If
If shag > 1 Then
If Mid(SumInt, shag – 1, 1) = 1 Then txt = txt & Edinicy(Mid(SumInt, shag – 1, 2)) & "миллиона " Else : txt = txt & Edinicy(vl) & mln(vl) ‘числа в диапозоне от 11 до 19 склоняются на "миллиардов" независимо от последнего числа триады
Else
txt = txt & Edinicy(vl) & mln(vl)
End If
‘-КОНЕЦ БЛОКА_______________________
Case 6 ‘ – сотни тысяч
vl = Mid(SumInt, shag, 1)
txt = txt & Sotni(vl)
Case 5 ‘ – десятки тысяч
vl = Mid(SumInt, shag, 1)
If vl = 1 And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ‘ – если конец триады от 11 до 19 то перескакиваем на единицы, иначе – формируем десятки
Case 4 ‘ – единицы тысяч
vl = Mid(SumInt, shag, 1)
If shag > 2 Then
If (Mid(SumInt, shag – 2, 1) = 0 And Mid(SumInt, shag – 1, 1) = 0 And vl = "0" ) Then GoTo 10
End If
Sclon_Tys = Edinicy(vl) & tys(vl) ‘ – вводим переменную Sclon_Tys из-за иного склонения тысяч в русском языке
If vl = 1 Then Sclon_Tys = "одна " & tys(vl) ‘ – для тысяч склонение "один" и "два" неприменимо ( поэтому вводим переменную Sclon_Tys )
If vl = 2 Then Sclon_Tys = "две " & tys(vl) ‘ – для тысяч склонение "один" и "два" неприменимо ( поэтому вводим переменную Sclon_Tys )
If shag > 1 Then
If Mid(SumInt, shag – 1, 1) = 1 Then Sclon_Tys = Edinicy(Mid(SumInt, shag – 1, 2)) & "тисяч "
End If
txt = txt & Sclon_Tys
‘-КОНЕЦ БЛОКА_______________________
Case 3 ‘ – сотни
vl = Mid(SumInt, shag, 1)
txt = txt & Sotni(vl)
Case 2 ‘ – десятки
vl = Mid(SumInt, shag, 1)
If vl = "1" And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ‘ – если конец триады от 11 до 19 то перескакиваем на единицы, иначе – формируем десятки
Case 1 ‘ – единицы
If Mid(SumInt, shag – 1, 1) <> 1 Or Mid(SumInt, shag – 1, 2) = "10" Then vl = Mid(SumInt, shag, 1) Else vl = Mid(SumInt, shag – 1, 2)
txt = txt & EdinicyPoslednie(vl)
End Select
10: Next x
a = Число
b = Int(a)
c = (Round(a – b, 2)) * 100
If c And c >= 1 Then c = "0" + CStr(c)
If c = 0 Then c = CStr(c) + "0"
d = ""
If Валюта = 1 Then d = "коп." Else d = "цен."
If Валюта > 2 Or Валюта Then MsgBox "Укажите параметр 0-2"
If Валюта > 2 Or Валюта Then GoTo 11
If Копейки = 0 Then
d = ""
c = ""
End If
If Копейки = 2 Then d = ""
If Копейки > 2 Or Копейи Then MsgBox "Укажите параметр 0, 1 или 2"
If Копейки > 2 Or Копейки Then GoTo 11
ЧислоПрописьюВалюта = UCase(Left(txt, 1)) & LCase(Mid(txt, 2)) + " " + CStr(c) + d
11:
End Function
Sub DescribeFunction()
Dim FuncName As String
Dim FuncDesc As String
Dim Category As String
Dim ArgDesc(1 To 3) As String
FuncName = "ЧислоПрописьюВалюта"
FuncDesc = "Функция преобразовывает число суммы текстовыми словами"
Category = 1 ‘Text category
ArgDesc(1) = "Исходная сумма"
ArgDesc(2) = "(необязательный) Тип отображаемой валюты 0-Евро, 1-Рубли, 2-Доллары."
ArgDesc(3) = "(необязательный) Нужны ли копейки: 0-нет, 1-отображать копейи стандартно, 2-отображать только дробную часть (без слов)."
Application.MacroOptions _
Macro:=FuncName, _
Description:=FuncDesc, _
Category:=Category, _
ArgumentDescriptions:=ArgDesc
End Sub
Также не забудьте добавить в рабочую книгу код вызова макроса регистрации DescribeFunction, чтобы отображать описание атрибутов для пользовательской функции:
Кроме того благодаря данному макросу DescribeFunction функция будет доступна в группе: «ФОРМУЛЫ»-«Библиотека функций»-«Финансовые»-«ЧислоПрописьюВалюта»
Если мы указываем число (от 0 до 2)в параметре второй функции «ЧислоПрописьюВалюта» то функция автоматически подставит нужную валюту в сумме прописью:
Как видите, этот VBA-код макроса преобразует числа в слова. После вставки данного кода в модуль редактора макросов, у нас работает новая функция, которую можно вызвать из мастера (кнопка fx возле строки формул).
Украинская версия функции ЧислоСловоВалюта для перевода сумм в гривны находиться в следующем файле:
Теперь вы можете быстро перевести сумму в слова прописью. Чтобы воспользоваться готовым решением рекомендуем скачать пример числа прописью в Excel. Данный файл содержит уже готовую пользовательскую функцию и VBA-код макроса, который доступен в модуле из редактора.
СУММА ПРОПИСЬЮ в Excel 2007, 2010 Макрос для бухгалтеров на русском
Бухгалтеру при работе в Эксел при печати платежек, приходников, счетов-фактур, необходимо заполнять поля суммы прописью . Корпорация Майкрософт об этом не подумала, а Андрей Коцюбинский подумал. Он писал книги по компьютерной тематике, и среди них значительной популярностью пользовалась книга « Excel для бухгалтера в примерах ». С этой книгой распространялся макрос для Excel , автоматизирующий печать суммы прописью в электронных таблицах.
Вот с сайта его веб-студии е-КАО мы и взяли этот доработанный макрос.
В большинстве случаев в бухучете наиболее удобно использовать надстройку, с которой распространяется макрос, но иногда возникают проблемы с подключением надстройки.
Поэтому в приложенном для скачивания zip-файле находится два файла:
- sumprop.xla – файл надстройки
- sumprop.xls – файл макроса
Макрос: сумма прописью в Excel 2007, 2010
Можно использовать как обычный макрос, размещенный в обычной рабочей книге Excel (sumprop.xls). Я тоже так делаю, потому что не использую чужих, непроверенных макросов. После того, как вы скачаете файл с макросом Сумма Прописью , необходимо подключить данный макрос. Но для этого сначала необходимо разрешить выполнение макросов в MS Excel.
Для включения макросов при работе с версией Excel 2002 , входящей в состав Microsoft Office XP, или с версией Microsoft Office Excel 2003 , нужно выбрать команду меню Сервис – Параметры. Будет открыт диалог настройки, имеющий несколько вкладок. Необходимо открыть вкладку Безопасность, на которой следует нажать кнопку Безопасность макросов. На экране появится диалог настройки безопасности Excel. С помощью переключателя, расположенного в диалоге, установите низкий уровень безопасности, чтобы выполнялись все макросы. Далее необходимо закрыть оба диалога, для чего следует нажать кнопки OK в них.
В Excel 2000 для вызова аналогичного диалога необходимо выбрать команду меню Сервис – Макрос – Безопасность.
Если же используется версия Excel 97 , нужно выбрать команду меню Сервис – Параметры. В диалоге настройки следует выбрать вкладку Общие и снять флажок Защита от макровирусов. Следует заметить, что если вы не снимите защиту от макровирусов в Excel 97 или установите средний уровень безопасности в других версиях программы, при запуске Excel будет задан вопрос, хотите ли вы выполнять макросы, на который следует ответить утвердительно.
Как подключить программу макрос Сумма прописью в Excel 2007, 2010 на русском языке
Чтобы подключать программу печати суммы прописью ко всем электронным таблицам, следует поместить полученный файл в папку автозапуска Excel . Данная папка называется XLStart , и расположена она в папке, в которой установлен Microsoft Office.
Вначале найдите папку Program Files . Скорее всего, она расположена на диске C вашего компьютера. В этой папке следует найти папку Microsoft Office или Microsoft Office 2003, а в ней папку Office 10, Office 11, Office12 или Office , в зависимости от используемой вами версии. Вне зависимости от конкретных названий папок, в последней папке вы должны обнаружить папку XLStart . Поместите скачанный ранее файл sumprop.xls в данную папку, после чего при каждом запуске Excel будет открываться таблица, в которой располагается макрос печати суммы прописью.
Использование программы печати суммы прописью в Excel (Ексел)
Работа с ней ведется через использование функций Excel. Введите в первую ячейку третьей строки формулу =СуммаПрописью(836) и вы увидите результат вычислений:
Введите после этого в первую ячейку второй строки формулу = СуммаПрописью (A1). Так как пока в ячейку A1 ничего не введено, то результатом будет:
После того, как в первую ячейку будет введено число, например, 3743917034,51, результат изменится на:
При вводе другого числа результат соответственно изменится. Кроме печати суммы прописью доступна стала и еще одна дополнительная функция. Введите в первую ячейку число 582,43, а в любую свободную ячейку формулу =ЧислоПрописью(A1) . Результатом будет пятьсот восемьдесят два , то есть первая буква уже не прописная, копейки отброшены и нет названия рублей. Также имеется возможность вывода суммы для названий женского рода – пятьсот восемьдесят две . Для этого следует использовать формулу =ЧислоПрописью(A1;ЛОЖЬ) . Если второй параметр опущен, выводится сумма для названий мужского рода.
Надстройка: сумма прописью в Excel
В большинстве случаев ее использование в качестве надстройки наиболее удобно, хотя иногда возникают проблемы подключения надстройки.
Нужно поместить полученный файл sumprop.xla в папку, в которой хранятся дополнительные надстройки. Конкретный путь к этой папке зависит от версии Excel, но скорее всего он будет похожим на этот:
C:Documents and SettingsUserApplication DataMicrosoftAddIns
где: вместо User следует подставить имя пользователя Windows.
Дополнительное неудобство вызывается тем, что папка Application Data может быть скрыта, то есть не видна при просмотре в проводнике Windows.
Проще всего для размещения скачанного файла в нужной папке нужно:
- Выбрать в Excel команду меню Сервис – Надстройки и в появившемся диалоге нажать кнопку Обзор . Будет открыт диалог выбора файла с надстройкой, причем текущей окажется нужная вам папка.
- Запустите проводник Windows и перейдите в нем к папке, в которой находится скачанный ранее из интернета файл. Перетащите с помощью мыши значок файла из окна проводника в открытый диалог. Теперь файл с нужной надстройкой находится в нужной папке.
- Щелкните на нем мышью и нажмите кнопку OK, чтобы закрыть диалог. В списке доступных надстроек должна появиться строка Сумма Прописью.
- Установите флажок рядом с этой строкой и нажмите кнопку OK,
- После чего вы сможете использовать функцию печати суммы прописью в Excel .
Как использовать мастер функций, для работы с функциями вывода суммы прописью и числа прописью
Для этого вначале щелкните мышью на ячейке, в которую вы хотите вставить функцию, после чего откройте список доступных функций. В нем следует выбрать вариант Другие функции. Кроме того, для вызова функций можно нажать кнопку fx, расположенную в левой части строки формул.
В ранних версиях программы аналогичная кнопка расположена на панели инструментов. Каким бы способом не вызван был мастер функций, в появившемся диалоге необходимо выбрать категорию Определенные пользователем . В списке функций данной категории должны находиться СуммаПрописью и ЧислоПрописью . Выбрав нужную функцию, нажмите кнопку OK , чтобы перейти к следующему диалогу мастера функций. В нем задаются аргументы, то есть вы должны ввести число, которое будет преобразовано в слова.
Можно ввести непосредственно значение или сослаться на ячейку, в которой это значение расположено. Нажав кнопку OK , вы закроете диалог и вставите результат в текущую ячейку.

- флешка USB Flash: УТИЛИТЫ ПРОГРАММЫ для восстановления, форматирования флешек
Фирменные универсальные утилиты софт для восстановления объема, тестирования флешек USB Flash. Драйвера для USB Flash. Производители: Sony, Seitec, IOSELL, Transcend , A-Data, SanDisk, EasyDisk, Patriot, Panasonic, Traxdata.
Денежная сумма прописью на рабочем листе Excel. Преобразование с помощью блока ячеек с формулами. Применение пользовательской функции «СуммаПрописью».
В этой статье рассмотрены способы преобразования денежного значения в самый употребительный текстовый формат: 0,00 = Ноль рублей 00 копеек.
Блок ячеек с формулами
Скачайте файл Excel с блоком ячеек с формулами, преобразующими число в сумму прописью, и примером размещения ссылок.
Работать с блоком ячеек чрезвычайно просто:
- Скопируйте диапазон с формулами и вставьте в нужный файл.
- Замените в блоке входную ссылку рядом со словом «Вход».
- В ячейку, где должна отображаться сумма прописью, добавьте ссылку на выходную ячейку блока (рядом со словом «Выход»).
Пример размещения ссылок смотрите в скачанном файле. При желании, диапазон ячеек с формулами можно скрыть.
Преимущества блока ячеек с формулами:
- это самый простой для реализации способ автоматизации перевода числовых выражений в сумму прописью;
- файлы с блоками ячеек правильно работают у других пользователей программы Excel без дополнительного разрешения выполнения макросов.
Недостатки блока ячеек с формулами:
- не совсем удобно для пользователя каждый раз переносить блок ячеек с формулами из файла в файл;
- если диапазон ячеек с формулами скрыт или размещен вне видимого экрана, можно случайно удалить часть формул вместе с удаляемыми строками или столбцами.
Этих недостатков лишен более изящный способ преобразования числового денежного значения в текст с помощью пользовательской функции «СуммаПрописью».
Функция «СуммаПрописью»
Эта пользовательская функция написана на VBA Excel. Вставить ее в ячейку можно с помощью мастера функций или вручную, как и любую другую встроенную функцию рабочего листа.
Чтобы функцией «СуммаПрописью» можно было воспользоваться, ее программный код должен быть добавлен в рабочую книгу Excel. При передаче книги со встроенным кодом на другой компьютер, функция сохранит работоспособность.
Чтобы функция была доступна из всех рабочих книг на отдельном компьютере, ее код следует добавить в персональную (личную) книгу макросов (PERSONAL.XLSB).
Если у вашей программы Excel нет личной книги макросов, ее можно создать самостоятельно. Ниже рассмотрено добавление кода функции именно в персональную книгу макросов, в рабочие книги он добавляется точно также.
- Скачайте архив и извлеките из него файл «Module.bas» с кодом функции.
- Откройте любую книгу Excel, можно новую.
- Сочетанием левой клавиши Alt+F11 откройте редактор Visual Basic for Applications.
- Дважды кликните на строке «VBA Project (PERSONAL.XLSB)» или один раз на крестике слева для открытия вложенного списка. Если эта позиция уже развернута переходите к пункту 5.
- Дважды кликните на строке «Microsoft Excel Objects» или один раз на крестике слева для открытия списка объектов. Если эта позиция уже развернута переходите к пункту 6.
- Кликнув правой кнопкой на строке «ЭтаКнига», откройте контекстное меню и выберите в нем пункт «Import File…».
- В открывшемся диалоге выбора файлов найдите извлеченный ранее из архива «Module.bas» и выберите его двойным кликом. Модуль с функцией будет автоматически загружен.
Теперь можно в ячейки на листах любых рабочих книг вставлять формулу: «=PERSONAL.XLSB!СуммаПрописью(АдресЯчейки)» или, что намного удобнее, выбирать функцию с помощью мастера. Откройте мастер функций, выберите категорию «Определенные пользователем» и в списке доступных функций появится строка «PERSONAL.XLSB!СуммаПрописью», которую можно выбрать, а на втором шаге вставить адрес ячейки с числовым значением.
Формула будет доступна во всех книгах Excel, но только на компьютере, на котором находится персональная книга макросов PERSONAL.XLSB с загруженным модулем.
Если книгу планируется передавать на другие машины, тогда в шаге 6 надо правой кнопкой кликнуть на строке «ЭтаКнига», относящейся не к «VBA Project (PERSONAL.XLSB)», а относящейся к «VBA Project (ВашаКнига)» с именем вашей книги. Тогда модуль с функцией загрузится непосредственно в вашу рабочую книгу Excel и будет доступен для этой книги на любом компьютере. В этом случае формула в ячейке будет иметь вид: «=СуммаПрописью(АдресЯчейки)».
С кодом функции «СуммаПрописью» вы можете ознакомиться в этой статье.