Można np. skorzystać z funkcji własnej

 

Function Słownie(ByVal l As Currency) As String
'definicja zmiennych
    Dim S, temp As String
    Dim zl As Currency
    Dim g, i, gr, pos, j, koncowka As Integer
    'zmienna trzyma grupy cyfr -
    'na razie 4: tysiące, miliony, miliardy, biliony
    Dim rozdziel(0 To 3) As Variant

    'tworzenie tablic
    Male = Array( _
           Array("", "jeden", "dwa", "trzy", "cztery", "pięć", "sześć", _
                 "siedem", "osiem", "dziewięć"), _
                 Array("", "", "dwadzieścia", "trzydzieści", "czterdzieści", _
                       "pięćdziesiąt", "sześćdziesiąt", "siedemdziesiąt", _
                       "osiemdziesiąt", "dziewięćdziesiąt"), _
                       Array("", "sto", "dwieście", "trzysta", "czterysta", "pięćset", _
                             "sześćset", "siedemset", "osiemset", "dziewięćset") _
                             )

     Nascie = Array("dziesięć", "jedenaście", "dwanaście", "trzynaście", _
                   "czternaście", "piętnaście", "szesnaście", "siedemnaście", _
                   "osiemnaście", "dziewiętnaście")

     Duze = Array( _
           Array("tysiąc", "tysiące", "tysięcy"), _
           Array("milion", "miliony", "milionów"), _
           Array("miliard", "miliardy", "miliardów"), _
           Array("bilion", "biliony", "bilionów") _
           )

     l = WorksheetFunction.Ceiling(l, 0.01)    'zaokraglamy do groszy
    zl = WorksheetFunction.Floor(l, 1)    'zapisuje czesc całkowitą
    gr = (l - zl) * 100    'zapisujemy grosze

     S = CStr(zl)    'zmieniamy kwotę na stringa

     'inicjalizacja zmiennych potrzebnych do obsługi pętli
    i = 0
    g = 0
    'inicjuj grupę
    rozdziel(g) = Array(-1, -1, -1)

     For pos = Len(S) - 1 To 0 Step -1

         'zapisujemy jeden znak do odpowiedniej pozycji w grupie
        rozdziel(g)(i) = CByte(Mid(S, pos + 1, 1))

         'tworzymy nową grupę cyfr
        If i = 2 And pos > 0 Then
            g = g + 1    'nowy id grupy
            i = -1    'przy nastepnej petli i = 0
            rozdziel(g) = Array(-1, -1, -1)    'inicjujemy nową grupę
        End If

         i = i + 1
    Next

     S = ""    'czyscimy zmienna S ktora będzie "zbierała" kwotę słownie

     For i = 0 To g

         temp = ""

         For j = 2 To 0 Step -1    'poruszamy się po grupie od końca

             'analizujemy tylko wartości różne od -1
            If rozdziel(i)(j) > -1 Then

                 If j = 1 Then
                    'sprawdzamy czy środkowa cyfra nie jest cyfrą 1
                    'aby wywołać tablicę NASCIE

                    If rozdziel(i)(j) = 1 Then
                        temp = temp & Nascie(rozdziel(i)(0)) & " "
                        'czyścimy pierwszą liczbę w grupie bo już nie jest potrzebna
                        rozdziel(i)(0) = -1
                    Else:
                        If rozdziel(i)(j) > 0 Then temp = temp & Male(j)(rozdziel(i)(j)) & " "
                    End If
                Else:
                    If
rozdziel(i)(j) > 0 Then temp = temp & Male(j)(rozdziel(i)(j)) & " "
                End If

             End If

         Next

         'ostatnia cyfra z tysiaca jest zdefiniowana
        If rozdziel(i)(2) > -1 Then
            If i + 1 <= g Then    'jest nastepna grupa cyfr
                'ustalamy koncówkę dla tablicy DUZE
 

                'analizujemy pierwszą cyfrę w kolejnej grupie
                Select Case CByte(rozdziel(i + 1)(0))
                Case 1: koncowka = 0
                Case 2, 3, 4: koncowka = 1
                Case Else: koncowka = 2
                End Select

                 'analizujemy drugą cyfrę w kolejnej grupie
                If rozdziel(i + 1)(1) = 1 Then
                    koncowka = 2
                End If

                 'jeśli następna grupa nie jest pusta dodaj wartość z tablicy DUZE
                If rozdziel(i + 1)(0) > 0 Or rozdziel(i + 1)(1) > 0 Or rozdziel(i + 1)(2) > 0 Then
                    S = Duze(i)(koncowka) & " " & temp & S
                Else: S = temp & S
                End If
            Else
: S = temp & S
            End If

         Else: S = temp & S
        End If

     Next

      'wyświetl liczbę słownie
    Słownie = Trim(S) & " " & Format(CDbl(gr), "00") & "/100"
End Function