Skip to content

This release adds 1 notable feature for engineering teams evaluating rollout.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

compound-file deterministic excel file-format macro-extraction ms-cfb
+13 more
ms-ovba office-automation openxml pure-python python roundtrip vba vba-macros xlam xls xlsb xlsm zero-dependencies

Summary

AI summary

Added synthesize_class_header(name) helper that generates VBA class headers automatically.

Changes in this release

Feature Low

Adds synthesize_class_header(name) helper returning VBA class header

Adds synthesize_class_header(name) helper returning VBA class header

Source: llm_adapter@2026-05-27

Confidence: high

Feature Low

Updates README Architecture section to list synthesize_class_header in public API

Updates README Architecture section to list synthesize_class_header in public API

Source: llm_adapter@2026-05-27

Confidence: high

Bugfix Low

Fixes broken relative links in README on PyPI by using absolute GitHub URLs

Fixes broken relative links in README on PyPI by using absolute GitHub URLs

Source: llm_adapter@2026-05-27

Confidence: high

Refactor Low

Updates demo scripts to use body-only add_module call, removing manual CLSID constant

Updates demo scripts to use body-only add_module call, removing manual CLSID constant

Source: llm_adapter@2026-05-27

Confidence: high

Full changelog

Added

  • synthesize_class_header(name) -- new public helper (importable from
    pyopenvba) that returns the standard eight-line attribute header for a
    plain VBA class module, including the universal VB_Base CLSID. It is
    now also emitted automatically by add_module(kind=VBAModuleKind.other)
    when a bare body is supplied, matching the existing behaviour for standard
    modules. Callers no longer need to construct or hard-code the CLSID
    constant themselves.

Fixed

  • README relative links were broken on PyPI. The links to LICENSE.md,
    docs/roadmap.md, docs/architecture.md, and
    docs/ms-ovba-implementation-guide_v2.md were relative paths that
    resolved correctly on GitHub but 404'd on the PyPI project page. All
    five occurrences are now absolute github.com/blob/main/... URLs.

Changed

  • Demo scripts (create_new_excel_with_class_demo.py,
    create_new_with_class_demo.py, create_new_word_with_class_demo.py,
    inject_xlsb_with_class_demo.py) updated to use the body-only
    add_module call, removing the manual _CLASS_VB_BASE constant and
    DATAMODEL_HEADER block.
  • README Architecture section updated to include synthesize_class_header
    in the __init__.py public API listing.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track WilliamSmithEdward/pyOpenVBA

Get notified when new releases ship.

Sign up free

About WilliamSmithEdward/pyOpenVBA

All releases →

Related context

Earlier breaking changes

  • v3.0.0 Renamed the `AccessFile` class to `AccessReader`.
  • v3.0.0 Renamed `pyopenvba.access` module to `pyopenvba.access_read`.
  • v1.1.1 `add_module(kind=other)` now requires an explicit attribute header; automatic synthesis is disabled.

Beta — feedback welcome: [email protected]