Touché
Estas cosas pasan por escribir de memoria y no fijarme en que la variable no era de tipo fecha.
Código:
For m = 1 To 12
Debug.Print m, Format(CDate("2000/" & m & "/01"), "mmmm")
Next m
O bien
Código:
For m = 1 To 12
Debug.Print m, Format(DateAdd("m", m - 1, CDate("2000/01/01")), "mmmm")
Next m
si no se quiere concatenar nada ("m-1" por si se quiere utilizar "m" para guardar el número del mes en otro sitio, como bien indica porciento_veinte; de lo contrario, bastaría con recorrer el bucle de cero a once).
En ambos casos he especificado la fecha en formato ISO (yyyy/MM/dd) porque así hay menos propensión a errores; a veces me he encontrado con que al utilizar el formato europeo para fechas en que el mes y el año son iguales o menores a 12, el sistema operaba con ellas internamente en formato estadounidense (MM/dd/yyyy) y no calculaba bien.
No se cuál de los dos métodos será más rápido, aunque los dos se pueden optimizar un poquillo.
Y ahora sí funcionan los dos, que los he
probao.