Die erste Zeile ist ein Array, in dem die Monatsnamen enthalten sind. Mit $a_months[x] kann man das Element aus dem Array mit dem Index x erhalten.
Mit @Mon erhält man dann für Januar z.B. 1 (oder für Febrauar 2, also der wievielte Monat es im Kalenderjahr ist). Allerdings sind Arrays nullbasiert. Das heißt, dass das erste Element den Index 0 hat. (somit der Index aller Monate im Array um 1 kleiner ist als ihr @Mon Wert)
Würde man $a_months[@Mon] nehmen, würde man also immer einen Monat später zurückbekommen. Jetzt im Februar also März (und bei Dezember einen Fehler, da @Mon im Dezember 12 ist, das Array aber nur die Elemente 0...11 hat). Also einfach @Mon - 1 nehmen, dann erhält man das richtige Element und gleicht sozusagen aus, dass das Array nullbasiert ist. (Bsp Februar: @Mon = 2-> @Mon - 1 = 1 -> $a_months[1] = Februar)
Sonst ist die MsgBox die, die Du auch im ersten Post hattest, nur dass ich die festen Monatsnamen durch das Array ersetzt habe.