Changelog

What has changed, newest first.

One form for many buttons

Added

  • Open a form (action on a ribbon button): one drawn form for several buttons. Each button sets its window title and its own label texts, and after OK calls a procedure with the inputs – in the fields' tab order. Cancel or the X end without an error. The editor shows how the procedure is called and which parameters it needs. Details under One form for several buttons.
  • Dry run: step through an action's generated code line by line with F8, like in the VBE. The form appears the way this button opens it, and after OK you see which procedure would be called with which values. Nothing is executed; your own VBA you still test in Excel.
  • Duplicate form: copy button next to the form in the list.
  • On the form: below the palette, all controls as a list. The ones you cannot see on the canvas are marked – hidden underneath another, empty label, outside the form.
  • Rename a module via a pencil, in the list and in the editor header. An invalid name now says why (accented letter, space, already taken).

Changed

  • Form properties are compact, like the VBE properties window, and collapsible. The code fills the rest of the column, Expand opens it in a wide window.
  • Saving is faster and shows its state: Unsaved, Saving …, Saved.
  • Option Explicit only appears in the export where you write it yourself – form code included.

Fixed

  • Changing something in a form and switching straight to the modules could lose the form change: the new page loaded the old state and saved it over the change on the next edit.
  • Controls and form names counted as undeclared in form code (v_Anlage = v_Anlage.Value got two marks).
  • Excel import: modules in UTF‑8 – code page 65001, or once passed through a UTF‑8 editor – arrived with broken accented letters (“Länge”). Characters already lost in the workbook (�) are now reported by the import, and the project check finds them in existing projects too.

Icon designer

Added

  • Icon designer: combine a main icon and a small badge in a corner into one icon, for instance a file with a download arrow. Both layers come from Bootstrap, Streamline, the Office icons or your own icons. Reachable via Icon designer in the picker, Design icon in the icon library, and the layers button on a control. The main icon is removed under the whole badge; Knock out adds a gap that follows the badge's shape. Details under Combining icons.
  • My icons in the picker reloads when you come back from another tab, so an icon you just saved is there straight away.

Bring in a ribbon from Excel, and the cell preview

Added

  • From Excel (Pro): a ribbon you built by hand in Excel comes into the project. You choose the .exportedUI (Customize Ribbon › Export) and, if the code should come along, the workbook with the macros (.xlsm, .xlam, PERSONAL.XLSB). The code of the standard modules is taken over unchanged, each button calls its macro. Choosing only the .exportedUI works too: the review lets you add the workbook afterwards. Both files are read in the browser, nothing is uploaded. What does not come along is listed in the review.
  • Cell preview under the ribbon view, in every plan: drop an Excel file in and it appears with name box, formula bar and sheet tabs. The file stays in the browser.
  • Action steps with sheet or range fields offer Use selection from cell preview: sheet and range are filled in instead of typed.

Changed

  • The validation reports control ids named like a Sub. The generated VBA names a button's Sub after its id; a button named like a Public Sub in a module gave two subs of the same name and "Ambiguous name detected" in Excel, with nothing warning about it beforehand.

Fixed

  • In the icon picker the categories (Office, themes) were cut off at the bottom.

Dialogs instead of MsgBox

Added

  • Dialogs under Forms › Dialogs: messages and questions with a symbol, colour and your own button text instead of the grey MsgBox. Ten templates to adapt, or start blank. Borderless with rounded corners by default.

  • Placeholders such as {customer} in the text become parameters of the call, with a default from the editor.

  • New action Show own dialog: a dialog on a ribbon button without code. The second button ends the remaining steps.

  • Dialogs are in every plan, one on Free. The Forms area is therefore open to everyone; UserForms themselves stay Pro.

  • Code tester as a ready-made block in the control palette: a window in the add-in to type VBA and run it with one click — borderless in the style of the dialogs, running in a hidden helper workbook. Free and Pro.

  • Up to 50 forms per project instead of 20, and every limit is now listed in one place in the docs under Export › Limits.

  • Contextual tabs: a tab can now appear only while a table, chart, PivotTable, picture or shape is selected – next to Excel's own table and chart tools, shown by Excel itself.

  • Groups in Excel's own tabs: instead of a tab of its own, an add-in's groups can now sit in Home, Data or another Excel tab – at the end, or before or after a particular Excel group.

  • Rules on tabs and groups: whole tabs and groups can be shown and hidden by condition, with two new conditions – "the selection is in a table" and "the active sheet is named …".

  • Rules follow Excel: whether a button is enabled or a group visible is now re-checked on every selection, sheet and workbook change, not only after a click in the add-in.

Fixed

  • Loading a project file into an existing project now brings forms and dialogs along. They were in the file before but were left out when merging. Duplicate names get a number; a renamed dialog takes the buttons that call it along.

  • The import review warns about duplicate names: if a Sub or public constant from the file already exists in the project, the dialog says so, with where, before anything is applied — otherwise it would only surface on export. The button then reads “Import anyway”.

  • Two modules each with a Private Sub of the same name counted as a conflict and blocked the export. VBA allows it; the check now does too.

  • The import review now shows and counts the VBA code of forms too. And its figures are recomputed from the file's content when reading, instead of trusting what the file claims about itself.

  • The undeclared-name check reported Unload, hex numbers such as &HFF, MSForms constants (fm…) and Windows functions brought in with Declare as undeclared.

Checkout is open

New

  • Buying without the detour. Starter and Pro now go through a checkout instead of an email request. The payment window opens on the page you are already on — losing the context means fewer people come back.
  • Moving from Starter to Pro costs €40 instead of €69. What you paid for Starter is credited. The pricing page shows a Starter customer the difference and marks the tier they already have.
  • Run into a locked area and the pricing page now answers "why am I here" — for context menus, forms, modules, Backstage, your own VBA, and exporting without the watermark.

Changed

  • The beta label is gone. The prices are the ones that apply.
  • Polar is the merchant of record; the invoice arrives by email, VAT included.

Both languages, everywhere — down to the generated code

New

  • The add-in's language can be set. It sits with the other project settings — in the property panel when nothing is selected — and decides which language the generated VBA is written in: the comments in the module and the messages your users see in the finished add-in. It has nothing to do with the language of the interface: if you work in German and build an add-in for English colleagues, this is the switch.

  • The module catalogue speaks both languages. All 21 bundled modules — comments and message texts alike — follow the project's language. They used to be German, full stop, so an English customer got them unchanged in their add-in and their colleagues got the prompt in German.

Fixed

  • The example project was English, on the German site too. A "Toolbox" tab, a "Clear Range" button, "Clear every cell on this sheet?" — on /de/editor/example, the page that makes the first impression. Every caption now follows the language.

  • Export and save errors came out in English. Including the most common ones: "Plan free supports up to 5 buttons per project" is what the German editor showed. And the other way round, import errors and the whole validation list came out in German, in the English editor too — 42 messages plus the breadcrumb trail.

  • Small things in the same vein: seven screen-reader labels and tooltips, the page description in the browser tab, the three messages the code editor shows when a rename is refused, and the defaults for newly added elements — the German editor created a "New Button", the English one a "Kontrollkästchen".

A button that does something — without a line of VBA

New

  • Actions. A control now carries either a task from a catalogue or a VBA body: "create a sheet", "clear a range", "export as PDF", "filter a column". The generator writes the code at export time — and what comes out is ordinary VBA. The add-in contains a readable Sub, not a runtime interpreter, and you can unfold it in the editor whenever you want to look.

    14 actions in three groups: Worksheet (create and delete a sheet, write a cell, clear a range, filter, sort, reset the filter), File (export as PDF, import and export CSV, append a line) and Flow (ask, notify, write a log entry). Up to ten steps per control, in the order you give them.

  • Where a value comes from is part of the action. Every field can be one of three things: fixed, asked for on click ("which sheet?"), or taken from context — the active sheet, the current selection. Cancelling a dialog is not an error: the button simply stops, without a message, and Excel is left the way it was.

  • Two switches that are easy to forget. "Pause Excel while running" turns off screen updating, events and automatic calculation — and every exit turns them back on, the error path and the cancel path included. And "if something goes wrong" decides between a message, a silent log entry and carrying on, rather than leaving the user in front of a half-finished button.

Changed

  • The property panel has a switch: Actions or Your own VBA, per control. Actions can be turned into your own code — that is a one-way street, because the steps are dissolved in the process, so it asks first. The same the other way around: switching from your own code to actions discards it, and asks.

Three tiers — and the free one may do more

Changed

  • Free is freemium, not a shop window. A free project may do everything that makes a ribbon — actions and your own VBA in a control — and runs into quantity rather than capability: one project, five controls, a watermark comment in the VBA. The four developer areas (modules, context menus, forms, backstage) stay closed, so the editor keeps showing what Pro is for.

  • New in between: Starter, €29 one-off. Unlimited projects and controls, no watermark and no branding button, a library of 25 icons and 25 snippets, file import and export. A button's behaviour there comes from the action catalogue.

  • Pro stays at €69 and is the tier for people who write it themselves: your own VBA in every control, your own modules, context menus, backstage profiles and UserForms.

Worth knowing

  • Starter can do less than Free in exactly one place, and that is deliberate: Starter is a no-code tool without limits, not a bigger Free. If you want to keep hand-written VBA, take Pro.

  • Existing projects keep their code. A project that already contains VBA today is marked as such and still exports — on any tier. The rule applies to what is built from now on, not retroactively to work that ran yesterday.

Switching areas no longer clears the address

Fixed

  • Switching areas rebuilt the address instead of writing into it. It set ?mode=… — and deleted tab and module along with it. Switching back to "Ribbon UI" even threw the whole address away.

    So it decayed step by step: ?mode=modules&tab=…&module=… became ?mode=modules&module=…, then ?mode=modules — and the next reload had nothing left to restore the selection from. From the outside it looked as though the editor lost the module at random.

    There is now exactly one place that writes to the address, and it merges a parameter in rather than overwriting the others. Switching areas touches only mode; the tab and the module stay put.

The module now really does stay put

Fixed

  • module=… survives a reload. Two faults worked together, and either one alone would have been enough.

    Restoring checked once, at mount, whether the id still existed, and gave up for good on "no". On a page whose project arrives after mount, the module genuinely did not exist at that moment — so the id was discarded. It now waits until the id can be applied.

    Meanwhile the writer carried on regardless: it saw the default "nothing selected" and deleted the very parameter restoring was waiting for. That is why the address was shorter after a reload and the editor came up empty. A parameter still needed is now left alone.

    A link pointing at a deleted module does not block the address: as soon as you select something yourself, the dead id loses its claim.

  • The local draft no longer throws the view away. Bringing the draft back reset the area to "Ribbon" and the selection to nothing — right for a different project, wrong for the same one. Bringing it back now swaps only the project.

“Exit Sub” is no longer an error

Fixed

  • Exit Sub is no longer drawn in red. Monaco's VB definition declares pairs such as Sub/End Sub and If/End If as brackets, and bracket colouring then paints them by nesting depth. The Sub in Exit Sub is neither an opener nor a closer, though — it had no partner and so counted as an orphaned closing bracket: red, as if the line were broken.

    The same explains why End If was green and End Sub blue. That was never a statement about the code, only about nesting depth.

    The colouring is off now. Every keyword is blue, as in the VBE, and colour no longer carries a meaning it cannot keep. What is actually wrong the editor says through its markers: a yellow highlight for an undeclared name, a red squiggle for a structure error.

A warning and an error now look different

Fixed

  • No more squiggle under the yellow highlight. The name is highlighted — that is the statement, and an underline beside it says the same thing a second time. Amber on amber also read as an angry red at 12px, which is precisely what a warning should not be.

    The two levels now differ in kind, not merely in colour: a warning is a highlighted name, an error is a red underline. The tick on the scrollbar stays in both cases, so a finding is still easy to locate in a long module.

  • Structure errors speak English when the editor does. “Sub block is not closed” and the linter's other messages were hardcoded in German — the English editor reported them in German. The linter now returns the finding rather than a finished sentence, and the surface translates it. A missing message is caught too: the catalogue check compares both languages on every build.

Advice no longer looks like an error

Fixed

  • A missing Option Explicit no longer marks any code. A marker needs a range, and this finding had none of its own — so it took line 1 and coloured whatever stood there. In an ordinary module that is a perfectly correct Sub header, and it read as though something were wrong with the Sub.

    The hint now sits above the code, muted, with a button that inserts the line. That also fits what it is: advice, not a defect. The module compiles without the line, and anyone who does not want it can simply leave the hint standing.

    Yellow is thereby reserved for what actually goes wrong: a name nobody declared.

Two things in the code editor that did not do what they should

Fixed

  • Undeclared names are highlighted in yellow now, not merely underlined. The warning was there the whole time — but it consisted of a three-pixel squiggle under a six-character name at 12px, which is something nobody sees. The name itself is marked now, the way a highlighter would. Errors deliberately get no such background: the structure linter marks whole lines, and a fully red line would make the half-written block you always have while typing look like a disaster.

  • Enter ends the line on the first press. With the suggestion list open, the first Enter accepted a suggestion — usually with no visible change — and only the second broke the line, which made the automatic End Sub look like it needed two attempts. Tab takes the suggestion now, as in the VBE; Enter always breaks the line.

  • Nothing is suggested on the header of a procedure. There you are giving a new name rather than calling an existing one — and because the name you are typing is itself in the index, Sub test123 was offered test123() back.

New

  • Sub Foo gets its parentheses on Enter, exactly as in the VBE: Sub Foo becomes Sub Foo(), End Sub goes below it, and the caret sits indented in between. A header that already has a parameter list is left alone, and a single undo takes both back — it was one keystroke, after all.

The address remembers where you were

Fixed

  • A reload landed back on the ribbon. Context menus and Forms are their own addresses, so they always worked; Ribbon UI, Modules and Backstage share one address and were session state only. The area is in the URL now.

  • What is selected inside stays too: ?tab= for the ribbon tab, plus ?module=, ?menu= and ?form=. A reload lands exactly where you were — and a link to a spot in the project can be shared.

    A link pointing at something that no longer exists is ignored rather than producing an empty selection.

  • A module with Option Explicit on its first line was reported as an error ("must start with Sub Name()"). That rule belongs to a control's code, not to a module, where Option Explicit, Dim, Const, Type and Enum rightly stand before the first Sub. It contradicted the warning that asks for exactly that line.

The Excel object model in the editor

New

  • Member completion. After a dot, the object's properties and methods are in the list, with the description from Microsoft's documentation. 46 objects, around 2200 members — the ones that turn up in add-in code.
  • The editor reads your declarations. Dim ws As Worksheet is enough for ws. to show the right thing. The global names (Application, ActiveSheet, ThisWorkbook, Selection, Range, Cells …) are known anyway.
  • Chains, as long as the documentation names the return type: ws.Range("A1").Interior. shows the Interior members. Where no type is documented the chain stops and nothing is offered — better no suggestions than the wrong object's.
  • 2244 constants such as xlUp or xlValues, from two typed characters on, with their enumeration and value.
  • Undeclared names are marked. The same check Excel performs when compiling, only immediately and without Option Explicit having to be set for it. The editor knows your declarations, the project's procedures and public symbols, the module names and the Excel object model with its 2244 constants — and it sees the whole generated module, not just the slice in front of you.

The catalogue comes from Microsoft's open documentation source (MicrosoftDocs/VBA-Docs, content under CC BY 4.0) and is loaded only when you need it — not when the editor opens.

The code editor behaves like the VBE

New

  • Keywords are capitalised the moment you leave the line: dim x as long becomes Dim x As Long. It doubles as a check — a word that is not capitalised is not the keyword you took it for. Your own names, strings and comments are left alone.
  • Blocks close themselves. Enter after Sub Foo() writes End Sub below, and the same for If … Then, For, Do, With, Select Case, Function, Property, Type and Enum — only when the closer is actually missing. A single-line If x Then Exit Sub gets none; VBA closes that itself.
  • Parameter hints while typing the arguments, with the current parameter highlighted.
  • Go to declaration (F12, Ctrl-click) and rename (F2) for procedures in the same module. When the procedure lives elsewhere, hovering shows its signature and where it comes from.
  • A warning when Option Explicit is missing — in modules you write yourself. Without the line, a typo in a variable name makes VBA silently create a new, empty variable instead of reporting an error: the result is simply wrong, with nothing anywhere to show for it. The modules addin.studio generates already carry the line.

Form designer

Added

  • Form designer as its own area in the editor. Drag controls onto a point grid, resize them, set properties, attach VBA per event. Label, text box, combo box, list box, check box, option button, toggle button and command button are included.
  • The export writes a real designer into the .xlam. The form shows up in the VBA editor and can be edited further there.
  • When a control hangs over the edge, the warning names the size the form would need, and a button applies it.

Changed

  • The landing page now names what the product actually does. Context menus, backstage profiles, forms, import/export and the dynamic callbacks were missing from it entirely.
  • While the beta runs, Pro is available on request rather than through a checkout.

Fixed

  • The history panel showed raw key names for module actions and labelled everything outside the ribbon as a context menu change.
  • The VBA linter demanded a full Sub declaration in the event field, where only the body belongs.

Folders in the icon library, icons saved with their colour

New

  • Folders in the icon library. Create, rename and delete them under Icons. Each folder appears as a tab under My icons in a project's icon picker.
  • Save catalogue icons into the library via From catalogue — colour included. The same Bootstrap icon in three colours is three entries, each one adjustable later through Change colour. Your palette is set up once and picked from in every project, instead of being reconfigured per project.

Changed

  • A library entry no longer has to be an uploaded file. A catalogue entry stores the reference plus the colour: it stays a vector, does not count against storage, and recolouring needs no re-render.
  • Library export and import carry both kinds, folder names included. Catalogue entries travel as plain JSON, with no image data.
  • Deleting a folder does not delete its icons — they end up under No folder. For an upload it would otherwise be the only copy of the file.

Fixed

  • The Open example project button in the closing section of the landing page was unreadably dark. Its CSS class was called invert, colliding with a Tailwind utility of the same name that colour-inverted the finished button.
  • The documentation search could not be closed with Escape.
  • The logo in the top left leads back out of the app to the landing page.

Autocomplete for your own procedures

New

  • Suggestions for your own Subs and Functions in the code editor, while typing and by itself after Call . With the signature beside the name and the module, form or control the procedure comes from. By hand via Ctrl+Shift+Space, on a Mac Cmd+Shift+Space — Monaco's own Ctrl+Space sits under the macOS input-source switcher there.
  • Only what VBA would find here is suggested. Public from your own modules everywhere; Private only inside its own module; the code of all controls shares one generated module and therefore sees itself; a form is a class module and keeps to itself.
  • After Call the insert uses parentheses, without Call it does not. Both are valid VBA, but they are not interchangeable.

Changed

  • The parser that used to look for duplicate names now also reads visibility, kind and parameter list. Suggestions and validation come from one source — what is offered exists.

Documentation, search, and a note after the export

New

  • Documentation at /docs: seven pages, from the first steps through ribbon, code, forms, context menus and backstage to export and installation. Plus this changelog.
  • Full-text search on Cmd+K or Ctrl+K, and / works too. It covers every page and the changelog and jumps straight to the matching section. The index is built at build time and served from our own address — the search runs in your browser, nothing goes to a search service.
  • A note after the export. Double-clicking the .xlam installs nothing: Excel opens it as a workbook, the ribbon stays away, and there is no error to tell you so. The note says exactly that and points at the four steps in the documentation.

Catalog, dynamic callbacks and sharper validation

Added

  • Catalog of ready-made modules. Prepared VBA building blocks straight into your project, newly including a “Dialogs” category with 23 ready MsgBoxes.
  • Dynamic callbacks. Buttons can be enabled, hidden or relabelled depending on state. That generates getEnabled, getVisible and getLabel.

Changed

  • Validation now covers the whole VBA namespace rather than procedure names alone: Public Const, public variables, Type and Enum all count. A duplicate there used to fail only in Excel, with a message pointing somewhere else.
  • Findings are marked in the structure tree and roll up to group and tab, so a collapsed branch does not stay silent.