Posts Tagged ‘Microsoft’

Макрос для написания числа прописью

Четверг, Июнь 18th, 2009

Коллега увидел оформление мною командировочных расходов и очень сильно захотел получить такой вот замечательный код, так сказать hit (hits) сезона. Честно говоря я его давным давно вытащил откуда-то из Интернета и не помню какой добрый человек его написал и выложил, знал бы разместил бы ссылку на его сайт. Но коли бесплатно его в свое время получил, то бесплатно и выкладываю для скачивания (одним файлом можно его скачать тут - Скрип для перевода в рубли прописью) Идея довольно простая - есть число, необходимо представить его прописью и добавить слово рублей. С копейками мне работать не приходится, поэтому ставится всегда “00 коп.”, если кого-то не устраивает - дорабатывайте, на свой вкус.

Прикручивается он к Excel довольно просто и на то как это сделать есть масса описаний в Интернете, поэтому размещаю сам текст (еще раз спасибо неизвестному доброму человеку за его написание):

Attribute VB_Name = “Module1″
Function propis(SourceDigits As Currency) As String
Dim STRNG As String, CHAR, Result As String, Prom As String
Dim i, STRNG_len As Long
Dim SourceDigTail As Currency

SourceDigTail = (SourceDigits - Int(SourceDigits)) * 100
SourceDigits = Int(SourceDigits)

STRNG = SourceDigits
STRNG_len = Len(STRNG)
For i = 1 To 9 - STRNG_len Step 1
STRNG = “0″ & STRNG
Next i

For i = 9 To 9 - STRNG_len + 1 Step -1
CHAR = Mid(STRNG, i, 1)
If CHAR = “” Then GoTo end_c

If i = 2 Or i = 5 Or i = 8 Then
If CHAR = “1″ Then
CHAR = Mid(STRNG, i, 2)
Select Case CHAR
Case “10″
Prom = “десять ”
Case “11″
Prom = “одиннадцать ”
Case “12″
Prom = “двенадцать ”
Case “13″
Prom = “тринадцать ”
Case “14″
Prom = “четырнадцать ”
Case “15″
Prom = “пятнадцать ”
Case “16″
Prom = “шестнадцать ”
Case “17″
Prom = “семьнадцать ”
Case “18″
Prom = “восемьнадцать ”
Case “19″
Prom = “девятнадцать ”
End Select
Else  ‘ If char Not = 1
Select Case CHAR
Case “0″
Prom = “”
Case “2″
Prom = “двадцать ”
Case “3″
Prom = “тридцать ”
Case “4″
Prom = “сорок ”
Case “5″
Prom = “пятьдесят ”
Case “6″
Prom = “шестьдесят ”
Case “7″
Prom = “семьдесят ”
Case “8″
Prom = “восемьдесят ”
Case “9″
Prom = “девяносто ”
End Select
End If
End If
If i = 1 Or i = 4 Or i = 7 Then
Select Case CHAR
Case “0″
Prom = “”
Case “1″
Prom = “сто ”
Case “2″
Prom = “двести ”
Case “3″
Prom = “триста ”
Case “4″
Prom = “четыреста ”
Case “5″
Prom = “пятьсот ”
Case “6″
Prom = “шестьсот ”
Case “7″
Prom = “семьсот ”
Case “8″
Prom = “восемьсот ”
Case “9″
Prom = “девятьсот ”
End Select
End If

If i = 3 Or i = 6 Or i = 9 Then

If i = 9 And Mid(STRNG, i - 1, 1) = “1″ Then
Result = “рублей ” & Result
GoTo end_c
End If

If i = 3 And Mid(STRNG, i - 1, 1) = “1″ Then
Result = “миллионов ” & Result
GoTo end_c
End If

If i = 6 And Mid(STRNG, i - 1, 1) = “1″ Then
Result = “тысяч ” & Result
GoTo end_c
End If

Select Case CHAR
Case “0″
Prom = “”
Case “1″
If i = 6 Then
Prom = “одна ”
Else
Prom = “один ”
End If
Case “2″
If i = 6 Then
Prom = “две ”
Else
Prom = “два ”
End If
Case “3″
Prom = “три ”
Case “4″
Prom = “четыре ”
Case “5″
Prom = “пять ”
Case “6″
Prom = “шесть ”
Case “7″
Prom = “семь ”
Case “8″
Prom = “восемь ”
Case “9″
Prom = “девять ”
End Select
End If
Select Case i

Case 3
Select Case CHAR
Case “1″
Result = “миллион ” & Result
Case “2″, “3″, “4″
Result = “миллиона ” & Result
Case “5″, “6″, “7″, “8″, “9″
Result = “миллионов ” & Result
Case “0″
If STRNG_len > 6 Then
Result = “миллионов ” & Result
End If
End Select

Case 6
Select Case CHAR
Case “1″
Result = “тысячa ” & Result
Case “2″, “3″, “4″
Result = “тысячи ” & Result
Case “5″, “6″, “7″, “8″, “9″
Result = “тысяч ” & Result
Case “0″
If STRNG_len > 3 Then
Result = “тысяч ” & Result
End If
End Select

Case 9
Select Case CHAR
Case “1″
Result = “рубль ” & Result
Case “2″, “3″, “4″
Result = “рубля ” & Result
Case “0″, “5″, “6″, “7″, “8″, “9″
Result = “рублей ” & Result
End Select
End Select

Result = Prom & Result

end_c:
Next i

Result = Format(Mid(Result, 1, 1), “>”) & Mid(Result, 2)

propis = Result & Format(SourceDigTail, “00″) & ” коп.”

End Function

Вот и весь макрос. Если кто-то желает что-то написать на эту тему - пишите вот по этому адресу: mail@key-vip.com
А вот тут похожее обсуждение, того же макроса http://www.liveinternet.ru/users/lyuciena/post39732232/

Если будут силы, чуть позже выложу Excel файл, в котором это применяется при заполнении командировки и написании авансового отчета. А может вообще отдельный ТОП (TOP)  ик организую. “В помощь EXEL истам”

Всегда Ваш.

Почему именно Касперский?

Понедельник, Июль 28th, 2008

Многие простые пользователи часто задают мне такой вопрос: “А почему Касперский? Вот у нас на работе поставили антивирус Nod32 и всё хорошо.” Я в таких случаях отвечаю, что это дело сугубо личного предпочтения. Вот мне нравится KIS и не нравится Nod32.

А вот как отвечают на этот вопрос в самой лаборатории.

И вот какие ещё антивирусы бывают (имя, текущая версия, дата последнего обновления):

AhnLab-V3 2008.7.29.1 2008.07.31  
Authentium 5.1.0.4 2008.07.30  
AVG 8.0.0.156 2008.07.30  
CAT-QuickHeal 9.50 2008.07.30  
DrWeb 4.44.0.09170 2008.07.31  
eTrust-Vet 31.6.5997 2008.07.31  
F-Prot 4.4.4.56 2008.07.30  
Fortinet 3.14.0.0 2008.07.31  
Ikarus T3.1.1.34.0 2008.07.31  
McAfee 5350 2008.07.30  
NOD32v2 3311 2008.07.30  
Panda 9.0.0.4 2008.07.30  
Prevx1 V2 2008.07.31  
Sophos 4.31.0 2008.07.31  
Symantec 10 2008.07.31  
TrendMicro 8.700.0.1004 2008.07.30  
ViRobot 2008.7.30.1317 2008.07.30  
Webwasher-Gateway 6.6.2 2008.07.31  

Page 1 of 11