Die eigentlich einzige Gefahr geht davon aus, dass der Anwender sein Werkzeug -und somit auch die damit verbundenen Schwachstellen und Sicherheitsmaßnahmen - nicht genug kennt.
IMHO ist es Schwachsinn, VBA zu verteufeln. Es werden Möglichkeiten geboten, VBA „sicher“ (in Sinne „nur selbst zugelassene Produkte“) zu verwenden. Damit ist man auf einem ähnlichen Level wie kompilierte Produkte. Hier sich die Administratoren gefragt. Die allgemein angewandte Unlogik „friss oder stirb“ war noch nie wirklich zielführend.
Darüber hinaus muss der Programmierer wissen, prüfen, welche Seiteneffekte sein angedachten Code hat. Bei VBA werden z. B. viel häufiger in einem Produkt unverifiziert ein Blumenstrauß irgendwelcher Bibliotheken genutzt. Das liegt aber nicht an VBA selbst, sonden an dem typischen Nutzerkreis.
Das sind jetzt aber mehrere paar Schuhe. Zum einen muss man aufdröseln, was man mit „Sicherheit“ überhaupt meint (Fragestellung: „vor wem/was will ich mich eigentlich schützen“)
Ein ganz anderer Aspekt ist das Lernen. Hier ist das lernen des Programmieren und das Lernen einer Programmiersprache auseinander zu halten. Oder anders ausgedrückt: Man sollte Sprachen für Lernen und Sprachen für die produktive Nutzung auseinander halten. In erstere sind Paradigmen (z. B. die Objektorientierung) „sauber“ implementiert, so dass das Mischen mehrere Paradigmen nicht möglich ist. Beim produktiven Programmieren ist dieses Mischen im gewissen Rahmen sinnvoll.
Hier musst man aber auch schauen, welcher Lerntyp man ist. Wer durch kurzfristige Erfolge motiviert wird (wer wird das nicht?), Sich aber dann nicht davon blenden lässt, kann auch mit VBA Programmieren lernen und es ist dann ggf. sogar effektiver. Dazu gehört dann halt eine gehörige Portion Selbstreflektion.