Para poder recibir un valor nulo debes anteponer la instrucción Optional en este caso la definición de la función quedaría;
Function PesosMN(Optional tyCantidad As Currency) As String
Debes incluir la siguientes DIM
' Si no pasa el parámetro retorna Sin pago realizado
If CLng(tyCantidad) = 0 Then
PesosMN = " Sin pago realizado"
Exit Function
End If
if tyCantidad= then
PesosMN = "0 PESOS 00/100 M.N."
Exit Function
End if
Espero te sirva, no obstante, esta función está bastante incompleta ya que no pude retornar el texto para cantidades grandes como 999.999.999,99 cifras que en mi país (Colombia) se pueden presentar. Aquí te dejo una de mis funciones, tengo otra más completa que pasa el número en Español e Inglés (USA), en mayúsculas, minúsculas o la primera letra en mayúscula.
Public Function ValorLetra(ByVal quenumero As Currency) As String
'-------------------------------
'Función para pasar números a letras en pesos
'Llamar como: ValorLetras(quenumero)
'Se puede convertir hasta 999.999.999.99
'Elaborado Por: Eduardo Pérez Fernández
'Diciembre 3 de 2000
'---------------------------------------
Dim numero As Double
Dim aux As Double
Dim nro As String
Dim CENTAVOS As Double
Dim FRACCIÓN
Dim N As String
Dim n1 As String
Dim n2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15, N16, N17, N18, N19, N20 As String
Dim N30, N40, N50, N60, N70, N80, N90 As String
Dim N100, N200, N300, N400, N500, N600, N700, N800, N900 As String
Dim contador, inicio As Integer
Dim CADENA As String
Dim NUMP As String
Dim SUBCADENA As String
Dim CENTENA, DECENA, UNIDAD As String
Dim T
numero = Format(quenumero, "000000000.00")
aux = Int(numero)
CENTAVOS = 100 * (numero - aux)
CENTAVOS = CInt(CENTAVOS)
If CENTAVOS < 10 Then
FRACCIÓN = "0" + Trim(Str(CENTAVOS)) + "/100"
Else
FRACCIÓN = Trim(Str(CENTAVOS)) + "/100"
End If
N = ""
n1 = "UN"
n2 = "DOS"
N3 = "TRES"
N4 = "CUATRO"
N5 = "CINCO"
N6 = "SEIS"
N7 = "SIETE"
N8 = "OCHO"
N9 = "NUEVE"
N10 = "DIEZ"
N11 = "ONCE"
N12 = "DOCE"
N13 = "TRECE"
N14 = "CATORCE"
N15 = "QUINCE"
N16 = "DIECISEIS"
N17 = "DIECISIETE"
N18 = "DIECIOCHO"
N19 = "DIECINUEVE"
N20 = "VEINTE"
N30 = "TREINTA"
N40 = "CUARENTA"
N50 = "CINCUENTA"
N60 = "SESENTA"
N70 = "SETENTA"
N80 = "OCHENTA"
N90 = "NOVENTA"
N100 = "CIENTO"
N200 = "DOSCIENTOS"
N300 = "TRESCIENTOS"
N400 = "CUATROCIENTOS"
N500 = "QUINIENTOS"
N600 = "SEISCIENTOS"
N700 = "SETECIENTOS"
N800 = "OCHOCIENTOS"
N900 = "NOVECIENTOS"
contador = 1
inicio = 1
If aux = 0 Then
CADENA = Trim(Str(CENTAVOS))
Else
CADENA = Trim(Str(aux))
End If
NUMP = ""
'millones , millares y centenas
If aux = 0 Then
aux = 0
Else
aux = Len(Trim(aux))
End If
Select Case aux
Case 0
CADENA = Str(CENTAVOS)
Case 1
CADENA = "00" + CADENA
Case 2
CADENA = "0" + CADENA
Case 4
CADENA = "00" + CADENA
Case 5
CADENA = "0" + CADENA
Case 7
CADENA = "00" + CADENA
Case 8
CADENA = "0" + CADENA
End Select
While contador < 4
'descompone centenas, decenas y unidades
SUBCADENA = mId(CADENA, inicio, 3)
CENTENA = mId(SUBCADENA, 1, 1) + "00"
DECENA = mId(SUBCADENA, 2, 2)
UNIDAD = mId(SUBCADENA, 3, 1)
If SUBCADENA = "100" Then
N100 = "CIEN"
End If
If Val(SUBCADENA) > 99 Then
Select Case CENTENA
Case "100"
NUMP = NUMP + N100 + " "
Case "200"
NUMP = NUMP + N200 + " "
Case "300"
NUMP = NUMP + N300 + " "
Case "400"
NUMP = NUMP + N400 + " "
Case "500"
NUMP = NUMP + N500 + " "
Case "600"
NUMP = NUMP + N600 + " "
Case "700"
NUMP = NUMP + N700 + " "
Case "800"
NUMP = NUMP + N800 + " "
Case "900"
NUMP = NUMP + N900 + " "
Case "90"
NUMP = NUMP + N90 + " "
End Select
End If
'transformar las decenas
T = Val(DECENA)
If T > 0 Then
Select Case True
Case (Int(T / 10#) = T / 10#) Or (T > 9 And T < 20)
Select Case DECENA
Case "10"
NUMP = NUMP + N10 + " "
Case "11"
NUMP = NUMP + N11 + " "
Case "12"
NUMP = NUMP + N12 + " "
Case "13"
NUMP = NUMP + N13 + " "
Case "14"
NUMP = NUMP + N14 + " "
Case "15"
NUMP = NUMP + N15 + " "
Case "16"
NUMP = NUMP + N16 + " "
Case "17"
NUMP = NUMP + N17 + " "
Case "18"
NUMP = NUMP + N18 + " "
Case "19"
NUMP = NUMP + N19 + " "
Case "20"
NUMP = NUMP + N20 + " "
Case "30"
NUMP = NUMP + N30 + " "
Case "40"
NUMP = NUMP + N40 + " "
Case "50"
NUMP = NUMP + N50 + " "
Case "60"
NUMP = NUMP + N60 + " "
Case "70"
NUMP = NUMP + N70 + " "
Case "80"
NUMP = NUMP + N80 + " "
Case "90"
NUMP = NUMP + N90 + " "
Case "100"
NUMP = NUMP + N100 + " "
End Select
Case T > 9 And (Int(T / 10#) <> T / 10#)
DECENA = mId(DECENA, 1, 1) + "0"
If DECENA <> "20" Then
Select Case DECENA
Case "10"
NUMP = NUMP + N10
Case "20"
NUMP = NUMP + N20
Case "30"
NUMP = NUMP + N30
Case "40"
NUMP = NUMP + N40
Case "50"
NUMP = NUMP + N50
Case "60"
NUMP = NUMP + N60
Case "70"
NUMP = NUMP + N70
Case "80"
NUMP = NUMP + N80
Case "90"
NUMP = NUMP + N90
Case "100"
NUMP = NUMP + N100
End Select
Select Case UNIDAD
Case "1"
NUMP = NUMP + " Y " + n1
Case "2"
NUMP = NUMP + " Y " + n2
Case "3"
NUMP = NUMP + " Y " + N3
Case "4"
NUMP = NUMP + " Y " + N4
Case "5"
NUMP = NUMP + " Y " + N5
Case "6"
NUMP = NUMP + " Y " + N6
Case "7"
NUMP = NUMP + " Y " + N7
Case "8"
NUMP = NUMP + " Y " + N8
Case "9"
NUMP = NUMP + " Y " + N9
Case "10"
NUMP = NUMP + " Y " + N10
End Select
Else
Select Case UNIDAD
Case "1"
NUMP = NUMP + "VEINTI" + n1
Case "2"
NUMP = NUMP + "VEINTI" + n2
Case "3"
NUMP = NUMP + "VEINTI" + N3
Case "4"
NUMP = NUMP + "VEINTI" + N4
Case "5"
NUMP = NUMP + "VEINTI" + N5
Case "6"
NUMP = NUMP + "VEINTI" + N6
Case "7"
NUMP = NUMP + "VEINTI" + N7
Case "8"
NUMP = NUMP + "VEINTI" + N8
Case "9"
NUMP = NUMP + "VEINTI" + N9
Case "10"
NUMP = NUMP + "VEINTI" + n1
End Select
End If
Case T < 10
Select Case UNIDAD
Case "1"
NUMP = NUMP + n1
Case "2"
NUMP = NUMP + n2
Case "3"
NUMP = NUMP + N3
Case "4"
NUMP = NUMP + N4
Case "5"
NUMP = NUMP + N5
Case "6"
NUMP = NUMP + N6
Case "7"
NUMP = NUMP + N7
Case "8"
NUMP = NUMP + N8
Case "9"
NUMP = NUMP + N9
Case "10"
NUMP = NUMP + N10
End Select
End Select
End If
If numero > 999999 And contador = 1 Then
NUMP = NUMP + " MILLONES "
End If
If Left(NUMP, 11) = "UN MILLONES" Then
NUMP = " UN MILLON "
End If
If numero > 999 And numero < 1000000 And contador = 1 And Val(SUBCADENA) > 0 Then
NUMP = NUMP + " MIL "
End If
If numero > 999999 And contador = 2 And Val(SUBCADENA) > 0 Then
NUMP = NUMP + " MIL "
End If
inicio = (contador * 3) + 1
contador = contador + 1
Wend
'If numero = 1000000 Then
'NUMP = Trim(NUMP) + " DE"
'End If
' Modifo aqui para MILLONES DE .. cuando son mayores que 1000000 y multiplos en ceros
If numero >= 1000000 Then
If numero / 1000000 = Int(numero / 1000000) Then
NUMP = Trim(NUMP) + " DE"
End If
End If
'deletrea el numero
Select Case True
Case CENTAVOS = 0 And numero > 1
nro = " " + NUMP + " PESOS "
Case CENTAVOS = 0 And Int(numero) = 1
nro = " " + NUMP + " PESO "
Case CENTAVOS <> 0 And Int(numero) = 1
nro = " " + NUMP + " PESO CON " + FRACCIÓN + " "
Case CENTAVOS <> 0 And numero > 1
nro = " " + NUMP + " PESOS CON " + FRACCIÓN + " "
Case Else
nro = " " + NUMP + " CENTAVOS "
End Select
ValorLetra = nro
End Function
Observa que en la función no incluyo Optional yo valido null y cero antes de llamar la función.