Formular öffnen (Aktion am Ribbon-Knopf): ein gezeichnetes Formular für
mehrere Knöpfe. Jeder Knopf setzt seinen Fenstertitel und eigene
Label-Texte, und nach OK ruft er eine Prozedur mit den Eingaben auf –
in der Tab-Reihenfolge der Felder. Abbrechen oder das X beenden ohne Fehler.
Der Editor zeigt, womit die Prozedur aufgerufen wird und welche Parameter
sie dafür braucht. Details unter
Ein Formular für mehrere Knöpfe.
Probelauf: der erzeugte Code einer Aktion Zeile für Zeile mit F8, wie
in der VBE. Das Formular erscheint so, wie dieser Knopf es öffnet, und nach
OK steht da, welche Prozedur mit welchen Werten aufgerufen würde.
Ausgeführt wird dabei nichts; eigenen VBA-Code testest du weiter in Excel.
Formular duplizieren: Kopier-Symbol neben dem Formular in der Liste.
Auf dem Formular: unter der Palette alle Steuerelemente als Liste.
Markiert werden die, die man auf der Fläche nicht sieht – verdeckt, leere
Bezeichnung, außerhalb des Formulars.
Modul umbenennen über einen Stift, in der Liste und im Editor-Kopf. Ein
ungültiger Name sagt jetzt, warum (Umlaut, Leerzeichen, schon vergeben).
Geändert
Formular-Eigenschaften kompakt, wie im Eigenschaftenfenster der VBE, und
einklappbar. Der Code füllt den Rest der Spalte, Groß öffnet ihn in einem
breiten Fenster.
Speichern geht schneller und zeigt seinen Stand: Nicht gespeichert,
Speichert …, Gespeichert.
Option Explicit steht im Export nur noch, wo du es selbst schreibst –
auch im Code von Formularen.
Behoben
Wer im Formular etwas änderte und gleich zu den Modulen wechselte, konnte die
Formular-Änderung verlieren: die neue Seite lud den alten Stand und
speicherte ihn bei der nächsten Änderung darüber.
Steuerelemente und Formularnamen galten im Formular-Code als undeklariert
(v_Anlage = v_Anlage.Value bekam zwei Markierungen).
Excel-Import: Module in UTF‑8 – Codepage 65001 oder einmal durch einen
UTF‑8-Editor gegangen – kamen mit kaputten Umlauten an („Länge“). Zeichen,
die schon in der Mappe verloren waren (�), meldet der Import jetzt, und die
Projektprüfung findet sie auch in bestehenden Projekten.
Icon-Designer
Neu
Icon-Designer: ein Haupt-Icon und ein kleines Badge in einer Ecke zu
einem Icon kombinieren, etwa eine Datei mit Download-Pfeil. Beide Ebenen
kommen aus Bootstrap, Streamline, den Office-Icons oder deinen eigenen Icons. Erreichbar über
Icon-Designer im Picker, Icon designen in der Icon-Bibliothek und das
Ebenen-Symbol am Steuerelement. Unter dem Badge wird das Haupt-Icon auf der
ganzen Fläche entfernt, Freistellen lässt einen Abstand, der der Form des
Badge folgt. Details unter Icons kombinieren.
Meine Icons im Picker lädt neu, wenn du aus einem anderen Tab
zurückkommst — ein gerade gespeichertes Icon steht sofort da.
Ribbon aus Excel übernehmen und Zellvorschau
Neu
Aus Excel (Pro): Ein Ribbon, das du in Excel von Hand gebaut hast,
kommt ins Projekt. Du wählst die .exportedUI (Menüband anpassen ›
Exportieren) und, wenn der Code mitkommen soll, die Mappe mit den Makros
(.xlsm, .xlam, PERSONAL.XLSB). Der Code der Standardmodule wird
unverändert übernommen, jeder Knopf ruft sein Makro auf. Nur die
.exportedUI zu wählen geht auch: im Prüfdialog lässt sich die Mappe danach
hinzufügen. Beide Dateien werden im Browser gelesen, nichts wird
hochgeladen. Was nicht mitkommt, steht im Prüfdialog.
Zellvorschau unter der Ribbon-Ansicht, in jedem Plan: eine Excel-Datei
hineinziehen, und sie erscheint mit Namenfeld, Bearbeitungsleiste und
Blatt-Reitern. Die Datei bleibt im Browser.
Aktionsschritte mit Blatt- oder Bereichsfeldern bieten Auswahl aus
Zellvorschau übernehmen: Blatt und Bereich werden eingetragen, statt sie
zu tippen.
Geändert
Die Validierung meldet Steuerelement-Ids, die wie ein Sub heißen. Das
erzeugte VBA benennt den Sub eines Knopfs nach seiner Id; ein Knopf namens
wie ein Public Sub in einem Modul ergab zwei gleichnamige Subs und in
Excel „Mehrdeutiger Name“, ohne dass vorher etwas gewarnt hätte.
Behoben
Im Icon-Picker waren die Kategorien (Office, Themes) unten abgeschnitten.
Dialoge statt MsgBox
Neu
Dialoge unter Formulare › Dialoge: Meldungen und Rückfragen mit Symbol,
Farbe und eigenem Knopftext statt der grauen MsgBox. Zehn Vorlagen zum
Anpassen, oder leer anfangen. Standardmäßig rahmenlos mit runden Ecken.
Platzhalter wie {kunde} im Text werden zu Parametern des Aufrufs, mit
Standardwert aus dem Editor.
Neue Aktion Eigenen Dialog zeigen: ein Dialog ohne Code an einem
Ribbon-Knopf. Der zweite Knopf beendet die folgenden Schritte.
Dialoge gibt es in jedem Plan, im Free-Plan einen. Der Bereich
Formulare ist deshalb für alle offen; UserForms selbst bleiben Pro.
Code-Tester als fertiger Baustein in der Steuerelement-Palette: ein
Fenster im Add-in, in dem man VBA eintippt und mit einem Klick ausführt —
rahmenlos im Stil der Dialoge, Ausführung in einer unsichtbaren Hilfsmappe.
Für Free und Pro.
Bis zu 50 Formulare pro Projekt statt 20, und alle Obergrenzen stehen
jetzt gesammelt in der Dokumentation unter Export › Grenzen.
Kontext-Tabs: Ein Tab kann jetzt nur erscheinen, wenn eine Tabelle,
ein Diagramm, eine PivotTable, ein Bild oder eine Form markiert ist – neben
Excels eigenen Tabellen- und Diagrammtools, eingeblendet von Excel selbst.
Gruppen in Excels eigenen Tabs: Statt eines eigenen Tabs können die
Gruppen eines Add-ins jetzt in Start, Daten oder einem anderen Excel-Tab
stehen – am Ende oder vor bzw. nach einer bestimmten Excel-Gruppe.
Regeln an Tabs und Gruppen: Ganze Tabs und Gruppen lassen sich nach
Bedingungen ein- und ausblenden, dazu zwei neue Bedingungen – „Markierung
liegt in einer Tabelle“ und „Das aktive Blatt heißt …“.
Regeln reagieren auf Excel: Ob ein Knopf aktiv oder eine Gruppe
sichtbar ist, wird jetzt auch beim Markieren, beim Blatt- und beim
Mappenwechsel neu geprüft, nicht nur nach einem Klick im Add-in.
Behoben
Projektdatei in ein bestehendes Projekt laden übernimmt jetzt auch
Formulare und Dialoge. Vorher standen sie in der Datei, wurden beim
Zusammenführen aber weggelassen. Doppelte Namen bekommen eine Ziffer; ein
umbenannter Dialog nimmt die Knöpfe, die ihn aufrufen, mit.
Der Prüfdialog beim Import warnt vor doppelten Namen: Gibt es ein
Sub oder eine öffentliche Konstante aus der Datei im Projekt schon, steht
das mit Fundort im Dialog, bevor etwas übernommen wird — sonst fiele es erst
beim Export auf. Der Knopf heißt dann „Trotzdem übernehmen“.
Zwei Module mit je einem gleichnamigen Private Sub galten als Konflikt
und blockierten den Export. VBA erlaubt das; die Prüfung jetzt auch.
Der Prüfdialog beim Import zeigt jetzt auch den VBA-Code von
Formularen und zählt ihn mit. Und die Angaben im Prüfdialog werden beim
Lesen aus dem Inhalt der Datei neu berechnet, statt ihren eigenen Angaben
zu glauben.
Die Prüfung auf nicht deklarierte Namen meldete Unload, Hex-Zahlen wie
&HFF, MSForms-Konstanten (fm…) und per Declare eingebundene
Windows-Funktionen fälschlich als undeklariert.
Checkout ist offen
Neu
Kaufen ohne Umweg. Starter und Pro gehen jetzt über einen Checkout statt
über eine Mail-Anfrage. Das Bezahlfenster öffnet sich auf der Seite, auf der
man gerade ist — wer den Kontext verliert, kommt seltener zurück.
Der Wechsel von Starter zu Pro kostet 40 € statt 69 €. Was für Starter
bezahlt wurde, wird angerechnet. Die Preisseite zeigt einem Starter-Kunden
den Differenzbetrag und markiert die Stufe, die er schon hat.
Wer gegen eine Sperre läuft, bekommt auf der Preisseite die Antwort auf
„warum bin ich hier" — für Kontextmenüs, Formulare, Module, Backstage,
eigenes VBA und den Export ohne Wasserzeichen.
Geändert
Die Beta-Kennzeichnung ist weg. Die Preise sind die, die gelten.
Verkäufer ist Polar; die Rechnung kommt per Mail, Umsatzsteuer inklusive.
Beide Sprachen, überall — bis in den erzeugten Code
Neu
Die Sprache des Add-ins ist einstellbar. Sie steht bei den übrigen
Projekteinstellungen — im Eigenschaftenbereich, wenn nichts ausgewählt ist —
und entscheidet, in welcher Sprache der erzeugte VBA-Code steht: die
Kommentare im Modul und die Meldungen, die deine Anwender im fertigen
Add-in sehen. Mit der Sprache der Oberfläche hat sie nichts zu tun: wer auf
Deutsch arbeitet und ein Add-in für englische Kollegen baut, stellt genau
das hier um.
Der Modulkatalog spricht beide Sprachen. Alle 21 mitgelieferten Module
— Kommentare und Meldungstexte — folgen der Projektsprache. Bisher waren
sie fest deutsch, und ein englischer Kunde bekam sie unverändert in sein
Add-in, seine Kollegen also die Rückfrage auf Deutsch.
Behoben
Das Beispielprojekt war englisch, auch auf der deutschen Seite. Tab
„Toolbox“, Knopf „Clear Range“, Rückfrage „Clear every cell on this
sheet?“ — auf /de/editor/example, also auf der Seite, die den ersten
Eindruck macht. Alle Beschriftungen folgen jetzt der Sprache.
Export- und Speicherfehler kamen englisch. Darunter die häufigsten:
„Plan free supports up to 5 buttons per project“ stand so im deutschen
Editor. Und umgekehrt kamen Importfehler und die ganze Prüfliste
deutsch, auch im englischen Editor — 42 Meldungen samt Brotkrumenpfad.
Kleinkram in derselben Richtung: sieben Bedienhilfen und Tooltips, die
Seitenbeschreibung im Browser-Tab, die drei Meldungen beim Umbenennen im
Code-Editor, und die Voreinstellungen für neu angelegte Elemente — der
deutsche Editor legte einen „New Button“ an, der englische ein
„Kontrollkästchen“.
Ein Knopf, der etwas tut — ohne eine Zeile VBA
Neu
Aktionen. Ein Steuerelement trägt jetzt wahlweise eine Aufgabe aus
einem Katalog statt eines VBA-Rumpfs: „Blatt anlegen“, „Bereich leeren“,
„Als PDF exportieren“, „Spalte filtern“. Den Code schreibt der Generator
beim Export — und was herauskommt, ist gewöhnliches VBA. Im Add-In steht
ein lesbares Sub, kein Laufzeit-Interpreter, und wer es sich ansehen
will, klappt es im Editor auf.
14 Aktionen in drei Gruppen: Tabelle (Blatt anlegen und löschen, Zelle
schreiben, Bereich leeren, filtern, sortieren, Filter zurücksetzen),
Datei (als PDF exportieren, CSV importieren und exportieren, Zeile
anhängen) und Ablauf (Rückfrage, Meldung, Protokolleintrag). Bis zu
zehn Schritte pro Steuerelement, in der Reihenfolge, die man ihnen gibt.
Woher ein Wert kommt, ist Teil der Aktion. Jedes Feld kann dreierlei
sein: fest eingetragen, beim Klick erfragt („Welches Blatt?“), oder aus
dem Zusammenhang genommen — das aktive Blatt, die aktuelle Auswahl. Bricht
jemand einen Dialog ab, ist das kein Fehler: der Knopf hört auf, ohne
Meldung, und Excel bleibt so, wie es vorher war.
Zwei Schrauben, die man sonst vergisst. „Excel während der Ausführung
anhalten“ schaltet Bildschirm, Ereignisse und automatische Berechnung ab —
und jeder Ausgang schaltet sie wieder ein, der Fehlerfall und der
Abbruch eingeschlossen. Und „Wenn etwas schiefgeht“ entscheidet zwischen
Meldung, stillem Protokoll und Weitermachen, statt den Anwender vor einem
halb ausgeführten Knopf stehen zu lassen.
Geändert
Der Eigenschaftenbereich hat einen Umschalter: Aktionen oder
Eigener VBA-Code, pro Steuerelement. Aus Aktionen lässt sich eigener
Code machen — das ist eine Einbahnstraße, weil die Schritte dabei
aufgelöst werden, und sie fragt deshalb vorher. Umgekehrt genauso: wer von
eigenem Code auf Aktionen wechselt, verwirft ihn, und wird das gefragt.
Drei Stufen — und die kostenlose darf mehr
Geändert
Kostenlos ist Freemium, nicht Schaufenster. Ein freies Projekt darf
alles, was ein Ribbon ausmacht — Aktionen und eigenen VBA-Code im
Steuerelement — und stößt an der Menge an, nicht an der Fähigkeit: ein
Projekt, fünf Steuerelemente, Wasserzeichen im VBA. Die vier
Entwicklerbereiche (Module, Kontextmenüs, Formulare, Backstage) bleiben
zu, damit im Editor sichtbar bleibt, wofür Pro da ist.
Neu dazwischen: Starter, 29 € einmalig. Unbegrenzt viele Projekte und
Steuerelemente, kein Wasserzeichen und kein Branding-Knopf, Bibliothek mit
25 Icons und 25 Snippets, Import und Export als Datei. Das Verhalten eines
Knopfes kommt dort aus dem Aktionskatalog.
Pro bleibt bei 69 € und ist die Stufe für alle, die selbst schreiben:
eigener VBA-Code in jedem Steuerelement, eigene Module, Kontextmenüs,
Backstage-Profile und UserForms.
Zu beachten
Starter kann an genau einer Stelle weniger als Kostenlos, und das ist
Absicht: Starter ist ein No-Code-Werkzeug ohne Limits, kein größeres Free.
Wer selbst getipptes VBA behalten will, nimmt Pro.
Bestehende Projekte behalten ihren Code. Ein Projekt, in dem heute
schon VBA steht, ist als solches markiert und lässt sich weiter
exportieren — auf jeder Stufe. Die Regel gilt für das, was ab jetzt
entsteht, nicht rückwirkend für Arbeit, die gestern funktioniert hat.
Der Bereichswechsel räumt die Adresse nicht mehr ab
Behoben
Der Bereichswechsel baute die Adresse neu statt hineinzuschreiben. Er
setzte ?mode=… — und löschte damit tab und module gleich mit. Der
Wechsel zurück auf „Ribbon-UI" warf sogar die ganze Adresse weg.
Dadurch verfiel sie Schritt für Schritt: aus
?mode=modules&tab=…&module=… wurde ?mode=modules&module=…, dann
?mode=modules — und das nächste Neuladen hatte nichts mehr, woraus es die
Auswahl hätte wiederherstellen können. Von außen sah das aus, als verlöre
der Editor das Modul zufällig mal so, mal so.
Es gibt jetzt genau eine Stelle, die an der Adresse schreibt, und die
mischt einen Parameter hinein, statt die anderen zu überschreiben. Ein
Bereichswechsel nimmt nur noch mode mit; Tab und Modul bleiben stehen.
Das Modul bleibt jetzt wirklich stehen
Behoben
module=… überlebt das Neuladen. Zwei Fehler wirkten zusammen, und
jeder allein hätte gereicht.
Das Wiederherstellen prüfte beim Mount einmal, ob die Id noch existiert,
und gab bei „nein" endgültig auf. Auf einer Seite, deren Projekt erst nach
dem Mount ankommt, existierte das Modul in dem Moment aber wirklich noch
nicht — die Id wurde verworfen. Es wartet jetzt, bis die Id anwendbar ist.
Gleichzeitig schrieb der Schreiber ungerührt weiter: er sah die
Voreinstellung „nichts ausgewählt" und löschte genau den Parameter, auf
den das Wiederherstellen noch wartete. Deshalb war die Adresse nach dem
Reload kürzer als vorher und der Editor leer. Ein Parameter, der noch
gebraucht wird, wird nicht mehr angefasst.
Ein Link, der auf ein gelöschtes Modul zeigt, blockiert die Adresse nicht:
sobald du selbst etwas auswählst, verliert die tote Id ihren Anspruch.
Der lokale Entwurf wirft die Ansicht nicht mehr weg. Beim Zurückholen
des Entwurfs wurde der Bereich auf „Ribbon" und die Auswahl auf „nichts"
gesetzt — richtig für ein anderes Projekt, falsch für dasselbe. Das
Zurückholen tauscht jetzt nur noch das Projekt.
„Exit Sub“ ist kein Fehler mehr
Behoben
Exit Sub wird nicht mehr rot gezeichnet. Monacos VB-Definition meldet
Paare wie Sub/End Sub und If/End If als Klammern an, und die
Klammer-Einfärbung färbt sie danach nach Verschachtelungstiefe. Das Sub in
Exit Sub ist aber weder Öffner noch Schliesser — es hatte keinen Partner
und galt deshalb als verwaiste schliessende Klammer: rot, als sei die Zeile
kaputt.
Dasselbe erklärt, warum End If grün und End Sub blau war. Das war nie
eine Aussage über den Code, sondern über die Schachtelungstiefe.
Die Einfärbung ist jetzt aus. Alle Schlüsselwörter sind blau, wie in der VBE,
und die Farbe trägt keine Bedeutung mehr, die sie nicht halten kann. Was
wirklich nicht stimmt, sagt der Editor über seine Markierungen: gelb
hinterlegt für einen nicht deklarierten Namen, rote Wellenlinie für einen
Strukturfehler.
Hinweis und Fehler sehen jetzt verschieden aus
Behoben
Keine Wellenlinie mehr unter der gelben Markierung. Der Name ist
hinterlegt — das ist die Aussage, eine Unterstreichung daneben sagt dasselbe
ein zweites Mal. Bernstein auf Bernstein las sich bei 12 px ausserdem wie ein
wütendes Rot, also genau wie das, was ein Hinweis nicht sein soll.
Die beiden Stufen unterscheiden sich damit in der Art, nicht nur in der
Farbe: ein Hinweis ist ein hinterlegter Name, ein Fehler eine rote
Wellenlinie. Der Strich am Scrollbalken bleibt in beiden Fällen, damit man
einen Befund in einem langen Modul weiterhin findet.
Strukturfehler sprechen jetzt Englisch, wenn der Editor Englisch spricht.
„Sub-Block nicht geschlossen" und die anderen Meldungen des Linters standen
hartkodiert auf Deutsch im Code — im englischen Editor kamen sie deutsch
heraus. Der Linter liefert jetzt den Befund statt eines fertigen Satzes, und
übersetzt wird an der Oberfläche. Damit fällt auch auf, wenn eine Meldung
fehlt: der Katalog-Abgleich prüft beide Sprachen bei jedem Build.
Ein Rat sieht nicht mehr aus wie ein Fehler
Behoben
Der fehlende Option Explicit markiert keinen Code mehr. Eine Markierung
braucht einen Bereich, und dieser Befund hatte keinen eigenen — also nahm er
Zeile 1 und färbte, was dort stand. In einem normalen Modul ist das ein völlig
korrekter Sub-Kopf, und es las sich, als sei mit dem Sub etwas nicht in
Ordnung.
Jetzt steht der Hinweis über dem Code, gedämpft, mit einer Schaltfläche,
die die Zeile einfügt. Das passt auch besser zur Sache: es ist ein Rat, kein
Fehler. Das Modul kompiliert ohne die Zeile, und wer sie nicht will, lässt
den Hinweis einfach stehen.
Gelb bleibt damit reserviert für das, was wirklich schiefgeht: ein Name, den
niemand deklariert hat.
Zwei Dinge im Code-Editor, die nicht taten was sie sollten
Behoben
Nicht deklarierte Namen sind jetzt gelb hinterlegt, nicht nur
unterstrichen. Die Warnung war die ganze Zeit da — sie bestand aber aus einer
drei Pixel hohen Wellenlinie unter einem sechs Zeichen langen Namen bei 12 px
Schriftgröße, und das sieht schlicht niemand. Markiert wird jetzt der Name
selbst, so wie ein Textmarker es täte. Fehler bekommen bewusst keinen solchen
Hintergrund: die markiert der Struktur-Prüfer zeilenweise, und eine komplett
rote Zeile ließe den halbfertigen Block, den man beim Tippen immer hat, wie
eine Katastrophe aussehen.
Enter beendet die Zeile beim ersten Druck. Stand das Vorschlagsfenster
offen, nahm der erste Enter den Vorschlag an — meist ohne sichtbare Änderung —
und erst der zweite brach die Zeile um. Dadurch sah es so aus, als bräuchte
das automatische End Sub zwei Anläufe. Übernommen wird jetzt mit Tab, wie
in der VBE; Enter bricht immer um.
Auf dem Kopf einer Prozedur wird nichts mehr vorgeschlagen. Dort vergibst
du einen neuen Namen, statt einen vorhandenen zu rufen — und weil der Name,
den du gerade tippst, selbst schon im Index steht, bekam Sub test123 den
Vorschlag test123() zurück.
Neu
Sub Foo bekommt beim Enter seine Klammern, genau wie in der VBE: aus
Sub Foo wird Sub Foo(), darunter steht End Sub, der Cursor sitzt
eingerückt dazwischen. Ein Kopf, der schon eine Parameterliste hat, bleibt
unangetastet, und ein Undo nimmt beides in einem Schritt zurück — es war
schließlich ein Tastendruck.
Die Adresse merkt sich, wo du warst
Behoben
Ein Neuladen landete wieder auf dem Ribbon.Kontextmenü und
Formulare sind eigene Adressen, da ging es immer; Ribbon-UI, Module
und Backstage liegen auf einer Adresse und waren reiner Sitzungszustand.
Jetzt steht der Bereich in der URL.
Auch die Auswahl darin bleibt: ?tab= für den Ribbon-Reiter, dazu
?module=, ?menu= und ?form=. Ein Neuladen landet damit genau dort, wo
du warst — und ein Link auf eine Stelle im Projekt lässt sich weitergeben.
Zeigt ein Link auf etwas, das es nicht mehr gibt, wird er ignoriert statt
eine leere Auswahl zu erzeugen.
Ein Modul mit Option Explicit in der ersten Zeile wurde als Fehler
gemeldet („muss mit Sub Name() beginnen"). Die Regel gilt für den Code
eines Steuerelements, nicht für ein Modul — dort stehen Option Explicit,
Dim, Const, Type und Enum völlig richtig vor dem ersten Sub. Sie
stand damit gegen die Warnung, die genau diese Zeile einfordert.
Excel-Objektmodell im Editor
Neu
Member-Vervollständigung. Nach einem Punkt stehen die Eigenschaften und
Methoden des Objekts in der Liste, mit der Beschreibung aus Microsofts
Dokumentation. 46 Objekte, rund 2200 Member — die, die in Add-In-Code
vorkommen.
Der Editor liest deine Deklarationen mit.Dim ws As Worksheet genügt,
damit ws. das Richtige zeigt. Die globalen Namen (Application,
ActiveSheet, ThisWorkbook, Selection, Range, Cells …) sind ohnehin
bekannt.
Ketten, solange die Dokumentation den Rückgabetyp nennt:
ws.Range("A1").Interior. zeigt die Interior-Member. Wo kein Typ
dokumentiert ist, hört die Kette auf und es kommt nichts — lieber keine
Vorschläge als die des falschen Objekts.
2244 Konstanten wie xlUp oder xlValues, ab zwei getippten Zeichen,
mit Aufzählung und Wert.
Nicht deklarierte Namen werden markiert. Dieselbe Prüfung, die Excel
beim Kompilieren macht, nur sofort und ohne dass Option Explicit dafür
gesetzt sein muss. Bekannt sind dem Editor dabei deine Deklarationen, die
Prozeduren und öffentlichen Symbole des Projekts, die Modulnamen und das
Excel-Objektmodell samt seiner 2244 Konstanten — und er sieht das ganze
generierte Modul, nicht nur den Ausschnitt vor dir.
Der Katalog stammt aus Microsofts offener Dokumentationsquelle
(MicrosoftDocs/VBA-Docs,
Inhalt unter CC BY 4.0) und wird erst geladen, wenn du ihn brauchst — nicht
beim Öffnen des Editors.
Der Code-Editor verhält sich wie die VBE
Neu
Schlüsselwörter werden großgeschrieben, sobald du die Zeile verlässt:
dim x as long wird zu Dim x As Long. Zugleich eine Prüfung — was nicht
großgeschrieben wird, ist nicht das Schlüsselwort, für das du es gehalten
hast. Eigene Namen, Zeichenketten und Kommentare bleiben unangetastet.
Blöcke schließen sich selbst. Enter hinter Sub Foo() schreibt End Sub
darunter, ebenso bei If … Then, For, Do, With, Select Case,
Function, Property, Type und Enum — nur dann, wenn der Abschluss
wirklich noch fehlt. Ein einzeiliges If x Then Exit Sub bekommt keins, das
schließt sich in VBA selbst.
Parameterhilfe beim Tippen der Argumente, mit hervorgehobenem aktuellem
Parameter.
Zur Deklaration springen (F12, Strg-Klick) und Umbenennen (F2)
für Prozeduren aus demselben Modul. Liegt die Prozedur woanders, zeigt der
Mauszeiger-Hinweis Signatur und Herkunft.
Warnung, wenn Option Explicit fehlt — in Modulen, die du selbst
schreibst. Ohne die Zeile legt VBA bei einem Tippfehler im Variablennamen
still eine neue, leere Variable an, statt einen Fehler zu melden: das
Ergebnis wird einfach falsch, ohne dass irgendwo etwas aufleuchtet. In den
Modulen, die addin.studio erzeugt, steht die Zeile schon.
Formular-Designer
Neu
Formular-Designer als eigener Bereich im Editor. Steuerelemente auf ein
Punktraster ziehen, Größe ändern, Eigenschaften setzen, pro Ereignis VBA
hinterlegen. Enthalten sind Bezeichnung, Textfeld, Kombinationsfeld,
Listenfeld, Kontrollkästchen, Optionsfeld, Umschaltfläche und Schaltfläche.
Der Export schreibt daraus einen echten Designer in die .xlam. Die Form
taucht in der VBA-Umgebung auf und lässt sich dort weiterbearbeiten.
Ragt ein Steuerelement über den Rand, nennt die Warnung die nötige
Formulargröße, und ein Knopf setzt sie.
Geändert
Die Landingpage nennt jetzt den tatsächlichen Funktionsumfang. Kontextmenüs,
Backstage-Profile, Formulare, Import/Export und die dynamischen Callbacks
fehlten dort bisher ganz.
Solange die Beta läuft, gibt es Pro auf Anfrage statt über einen Checkout.
Behoben
Der Verlauf zeigte rohe Schlüsselnamen für Modul-Aktionen und beschriftete
alles außerhalb des Ribbons als Kontextmenü.
Der VBA-Linter verlangte im Ereignis-Feld eine vollständige Sub-Deklaration,
obwohl dort nur der Rumpf hingehört.
Ordner in der Icon-Bibliothek, Icons mit Farbe speichern
Neu
Ordner in der Icon-Bibliothek. Unter Icons anlegen, umbenennen,
löschen. Jeder Ordner erscheint im Icon-Picker eines Projekts als Reiter
unter Meine Icons.
Icons aus den Katalogen in die Bibliothek übernehmen, über Aus Katalog
— mitsamt der Farbe. Dasselbe Bootstrap-Icon in drei Farben sind drei
Einträge, jeder später über Farbe ändern anpassbar. So steht die eigene
Palette einmal und lässt sich in jedem Projekt auswählen, statt pro Projekt
neu eingestellt zu werden.
Geändert
Ein Bibliothekseintrag ist nicht mehr zwingend eine hochgeladene Datei. Ein
Katalog-Eintrag speichert den Verweis plus die Farbe: bleibt Vektor, zählt
nicht gegen den Speicherplatz, und die Farbe ändert sich ohne neues Rendern.
Export und Import der Bibliothek nehmen beides mit, Ordnernamen
eingeschlossen. Katalog-Einträge reisen als reines JSON, ohne Bilddaten.
Einen Ordner zu löschen löscht seine Icons nicht — sie liegen danach unter
Ohne Ordner. Bei einem Upload wäre es sonst die einzige Kopie der Datei.
Behoben
Der Knopf Beispielprojekt öffnen im unteren Abschnitt der Startseite war
unlesbar dunkel. Seine CSS-Klasse hieß invert und kollidierte mit einer
gleichnamigen Tailwind-Utility, die den fertig gezeichneten Knopf
farbinvertiert hat.
Die Suche in der Dokumentation ließ sich mit Escape nicht schließen.
Das Logo oben links führt aus der Anwendung wieder auf die Startseite.
Autovervollständigung für eigene Prozeduren
Neu
Vorschläge für eigene Subs und Functions im Code-Editor, beim Tippen und
von selbst nach Call . Mit Signatur daneben und der Angabe, aus welchem
Modul, Formular oder Steuerelement die Prozedur stammt. Von Hand über
Strg+Umschalt+Leertaste, auf dem Mac Cmd+Umschalt+Leertaste — Monacos
eigenes Strg+Leertaste liegt dort auf der Eingabequellen-Umschaltung.
Vorgeschlagen wird nur, was VBA an dieser Stelle auch findet. Public aus
den eigenen Modulen überall; Private nur im eigenen Modul; der Code aller
Steuerelemente teilt sich ein generiertes Modul und sieht sich deshalb
gegenseitig; ein Formular ist ein Klassenmodul und bleibt unter sich.
Nach Call wird mit Klammern eingefügt, ohne Call ohne. Beides ist
gültiges VBA, aber nicht austauschbar.
Geändert
Der Parser, der bisher nach doppelten Namen gesucht hat, liest jetzt auch
Sichtbarkeit, Art und Parameterliste. Vorschläge und Validierung stammen
damit aus derselben Quelle — was angeboten wird, existiert auch.
Dokumentation, Suche und ein Hinweis nach dem Export
Neu
Dokumentation unter /docs: sieben Seiten von den ersten Schritten über
Ribbon, Code, Formulare, Kontextmenüs und Backstage bis zu Export und
Installation. Dazu dieses Changelog.
Volltextsuche mit Cmd+K beziehungsweise Strg+K, / tut es auch. Sie
geht über alle Seiten und das Changelog und springt direkt in den passenden
Abschnitt. Der Index wird beim Bauen erzeugt und liegt auf unserer eigenen
Adresse — gesucht wird im Browser, es geht nichts an einen Suchdienst.
Hinweis nach dem Export. Ein Doppelklick auf die .xlam installiert
nichts: Excel öffnet sie als Arbeitsmappe, das Ribbon bleibt weg, und es gibt
keine Fehlermeldung, an der man das merken würde. Der Hinweis nennt genau das
und verweist auf die vier Schritte in der Dokumentation.
Katalog, dynamische Callbacks und schärfere Validierung
Neu
Katalog fertiger Module. Vorbereitete VBA-Bausteine direkt ins Projekt
übernehmen, neu darunter eine Kategorie „Dialoge" mit 23 fertigen MsgBoxen.
Dynamische Callbacks. Schaltflächen lassen sich abhängig vom Zustand
aktivieren, verstecken oder umbenennen. Das erzeugt getEnabled,
getVisible und getLabel.
Geändert
Die Validierung prüft den ganzen VBA-Namensraum, nicht mehr nur
Prozedurnamen: Public Const, öffentliche Variablen, Type und Enum
zählen mit. Eine Dopplung dort ließ das Projekt bisher erst in Excel
scheitern, mit einer Meldung, die woanders hinzeigte.
Befunde werden im Strukturbaum markiert und rollen auf Gruppe und Tab hoch,
damit ein zugeklappter Zweig nicht stumm bleibt.