No se de VB5 pero en VB6 funciona.
Es una función que devuelve el número de semanas de un mes.
Solo debes ingresar el año y el mes
Function NumeroSemanas(Año As Integer, Mes As String)
Dim Meses() As String
Dim NumeroMes As Integer
Dim DiasMes As Integer
Dim DiaSemana1 As Integer
Dim SemanasCompletas As Integer
Dim SemanaIncompleta As Integer
Dim i As Integer
Meses() = Split("Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre", ",")
'Buscar numero del mes ingresado
For i = 0 To 11
If LCase(Meses(i)) = LCase(Mes) Then
NumeroMes = i + 1
Exit For
End If
Next
'Obtener el numero de dias del mes
DiasMes = Day(DateSerial(Año, NumeroMes + 1, 0))
'Obtener que dia de la semana es el primer dia del mes
DiaSemana1 = Weekday(DateSerial(Año, NumeroMes, 1))
'Obtener las semanas completas, es decir las que tienen 7 dias
SemanasCompletas = Int((DiasMes - 1) / 7)
'Revisar si hay semanas incompletas
If DiasMes - 1 - SemanasCompletas * 7 + DiaSemana1 > 7 Then
SemanaIncompleta = 1
Else
SemanaIncompleta = 0
End If
'Obtener el total de semanas
NumeroSemanas = 1 + SemanasCompletas + SemanaIncompleta
End Function