Deshalb muss man unbekannte Makros in Excel extra freigeben
. Aber wenn du ein Makro selbst schreibst, ist es auch kein Einfallstor für Malware - schon gar nicht wenn es sich um simple VB-Workarounds wie obiges handelt und ActiveX-Steuerelemente sparsam verwendet werden. Für aktive Elemente gibt es zudem die Formular-Steuerelemente.
Wo Excel professionell verwendet wird, kommt man um Makros, wie auch um etwas ausgedehntere VB-Skripts in der Regel nicht herum. Zuhause für private Zwecke dürfte die Verwendung von Makros hingegen eher seltener sein, weil viele private Nutzer Excel eben bloß für einen erweiterten Taschenrechner halten
. Gleiches gilt auch für VB in Access.
Was man im Hinblick auf Makros tatsächlich vermeiden sollte, ist das Ausführen fremder Excel-Dateien die Makros enthalten (bzw. deren Freigabe), speziell, wenn sie aus unbekannten oder unseriösen Quellen stammen.
Bei aus dem Netz kopiertem Quellcode, den man selbst als Makro einfügt, sollte man ihn lediglich einigermaßen verstehen bevor man ihn nutzt, dann kann da auch nichts passieren.
Wenn man ein eingebettetes Makro nicht verschicken will, weil *xlsm-Dateien beim Empfänger geblockt werden (wobei das auch nur diejenigen blocken die sie nicht nutzen, weil sie Excel selbst nicht intensiv nutzen), kann man es einfach so schicken wie obiges Beispiel
. Dann kann da auch nichts schief gehen.
Generell Excel-Makros zu verteufeln führt jedenfalls dazu, dass man die Möglichkeiten die Excel bietet nur zum Bruchteil nutzen kann, denn Manches ist mit klassischen Formeln erheblich aufwändiger oder gar nicht machbar (z. B. das automatische Ersetzen eines Werts durch eine Formel in der der Wert als solcher wieder vorkommt, und auch noch dieselbe Zelle dafür verwendet werden soll). Man kann in Excel zwar auch ohne Makros recht weit kommen, aber gewisse Kompromisse wie zusätzliche Spalten und Zwischenrechnungen muss man dann eben eingehen und es kann je nach Aufgabe rein mit Formeln auch schnell ziemlich kompliziert und unübersichtlich werden.
Ich persönlich arbeite zwar nach wie vor viel lieber mit Formeln als mit VB, aber das ist eher eine Frage der Übung. Mit Formeln passiert es andererseits recht leicht, dass man selbst kaum noch durchblickt und für andere ist es dann noch schwerer, wenn sie mit diesen Dateien weiterarbeiten müssen. Bin selbst schon manchmal stundenlang an eigenen komplizierten Formeln gesessen die über viele Zeilen gingen, um wieder den Faden zu finden, was ich mir damals dabei gedacht habe und wie das ganze funktioniert. Da bringen VB-Makros z. B. den Vorteil, dass man sie einfach und übersichtlich kommentieren kann, so dass sogar Nutzer die keine Ahnung haben, verstehen können was passiert.
In vielen Fällen sind Makros aber auch einfach eine Erleichterung weil man damit einiges schneller rechnen kann. Bei Matrix-Formeln die große Arrays verarbeiten sollen, kann es z. B. schon mal vorkommen, dass sogar schnelle Rechner ganz schön ins schwitzen geraten. Da gibt es mit VB meist performantere Möglichkeiten.
Dafür kann man während dessen schön einen Kaffee trinken - von daher haben ausufernde Formel-Orgien ab und zu auch Ihre Vorteile
.
Aber btt! Das schießt hier sonst angesichts des an sich ja einfachen Problems des TE imho etwas über´s Ziel hinaus. Nichts desto trotz ist exakt das Anliegen des TE rein mit Formeln in Excel nicht lösbar, wenn keine zusätzlichen Zellen dafür verwendet werden sollen. Da hilft eben nur ein kleines Makro wie obiges.
Der wesentliche Punkt ist aber, dass es überhaupt nicht sinnvoll ist, das Ziel zu verfolgen einen bestehenden Zahlenwert in eine Formel zu packen - noch dazu in derselben Zelle. Zahlenwerte haben, abgesehen von wenigen Ausnahmen, wie gesagt nichts in Formeln verloren. In Excel arbeitet man mit Bezügen.