Capabilities

Model and Field System

Define models using typed fields (TextField, DateField, PositiveIntegerField, etc.) through a built-in user form interface.

The Addin generates required class modules, constructors, and Getter/Setter properties automatically, allowing you to work with records as real objects instead of raw worksheet rows.

Multiprocessing

Long-running Excel work runs in a background Excel worker while you keep working in your own workbook.

Database Records

Once a model exists (e.g. ApartmentUnit with number_beds, square_feet, rent_asking), records can be created immediately.

All Getter/Setter procedures are fully wired by default, allowing instances to be created, read, and updated without manual VBA plumbing.

Database Record Sorting

Records can be sorted by one or more fields, including relational fields (ForeignKey), even when the sort column lives on a different worksheet.

This allows expressive, database-style ordering while remaining entirely Excel-native.

Basic Fields

Basic field types enforce value correctness at the object level, reducing the need for repeated defensive checks throughout your code.

Available field types are listed here.

Relational Fields

ForeignKey and ManyToMany field types are supported, enabling expressive access patterns such as property.amenities.all().

Relational fields allow models to reference one another without duplicating data, bringing database-style relationships into worksheets.

Setting Registry

Some values do not belong to any specific model but still need persistence. The Setting Registry stores these values on a hidden worksheet with zero VBA edits.

Settings persist with the workbook itself, unlike Windows Registry storage, which is machine-specific and not portable.

Built-In Procedure Runners

The Addin ships with several built-in procedure runners that manage execution, error capture, and reporting consistently.

In essence, write a test function, and the Addin will discover and execute it whenever the "Test Workbook" Ribbon button is clicked. The benefit is you don't have to wire anything. You only write the test, validation, or reset function.

ErrorBank and Assertions

ErrorBank is the foundation for testing and validation. It provides expressive assertions such as AssertGreaterThan and rich failure messages that include context and values.

Multiple ErrorBanks can be merged together, which is how runners aggregate results across procedures.

Generic Form Views

The Addin provides generic ListView, EditView, and CreateView forms for interacting with records.

Given a model and list of fields, the Addin renders compatible input controls, validates submitted values, and highlights violations directly in the form.

These forms are particularly useful for relational fields, where users must select from related records.

They are intended as a starting point rather than an end state.

Custom Forms

When building custom forms, submitted values are available immediately and can be assigned directly to model properties.

Invalid assignments (e.g. assigning text to an IntegerField) fail loudly, while bulk pre-validation can be requested before saving any values.

Type enforcement, validation, and persistence are handled centrally, eliminating large classes of repetitive worksheet code.

FormBuilder Class

Generic forms are built on top of FormBuilder. FormBuilder is also exposed directly for advanced use cases.

Unlike generic forms, FormBuilder allows inputs to save into multiple models at once, making more sophisticated workflows practical.

WhoaRefactoring Tool

The refactoring tool performs coordinated renaming across VBA code, modules, range names, and worksheet cells. For example, renaming a range will not only rename the range itself, but also any formula references.

Think of it as a workbook-aware Find and Replace with context.

Fixture Registry

The Fixture Registry saves named text blobs using Base64 compression on hidden worksheets. Text is decompressed transparently when retrieved.

Fixtures help keep workbook size manageable and enable the programmatic test runner to execute, even when your VBA project is locked.

Programmatic Row and Column Hide

Row and column visibility can be controlled programmatically as part of larger procedures or runners.

Direct AI Calls

Store an API key in the workbook and call OpenAI, Anthropic or Gemini directly from VBA. Each call returns a typed result: the response text, tokens used and estimated cost.

That lets you build repeatable AI steps into a workbook, with no chat window involved.

Prompt Interceptor

Test a prompt before you wire it into your workbook. Prompt Interceptor shows the prompt your code built and the model's response side by side, then runs your callback on that response with one click.

Progress Bar Utility

Displays progress feedback during execution. Adds runtime overhead but improves perceived responsiveness.

High-Resolution Timer

Provides fine-grained timing beyond VBA's built-in timers, allowing side-by-side performance comparisons.

Spell Currency

Converts numeric currency values into written English. Useful in valuation and reporting contexts.

ATTRIBUTION: this was obtained (and minimally adapted) from: www.ExcelDataPro.com

GIS Feature Overview

Some GIS features use Google API keys, which are free under generous limits. All GIS capabilities are usable without paid services.

Geocoding Street Addresses

Geocoding transforms a street address into latitude and longitude coordinates, which serve as the basis for other GIS operations.

Requires a Google API key.

Distance Calculation (As the Crow Flies)

Given two coordinate pairs, distance is calculated mathematically using the Haversine formula.

This avoids API calls but loses precision over longer distances.

Export Map Points to Google Earth

Converts coordinate lists into KML map files for Google Earth. Pins can be styled with colors, labels, and descriptive hover text.

Parse KML Polygons to Coordinates

Extracts coordinate data from polygons defined in Google Earth.

Primarily used with point-in-polygon operations.

Point Within Polygon Boundary

Determines whether coordinates fall within a defined polygon. Useful for zoning, environmental studies, and property analysis.