Skip to main content

Precompile VBA code.

Project description

Coverage Status Build Status

VBA-Precompiler

About

The Microsoft VBA language includes a simple precompilation language (Conditional Compilation). This tool allows users to specify environment parameters to convert a conditional-module-body into a preprocessed-module-body.

This software operates as recommended in the Microsoft VBA Language Specification.

Requirements

vba_precompiler is tested on python 3.8 and higher.

Installation

Use the package manager pip to install VBA-Precompiler.

pip install vba_precompiler

Getting Started

vba_precompiler will take a specified directory that contains vba source code, and a set of environment values, and produce a set of matching vba source files in which code is excluded as directed by the precomiler directives.

For example, the following

Attribute VB_Name = "Input"
#Const TestType="testing"
#If Win16 Or Then
    foo = 6
#ElseIf Win32
    foo = 7
#EndIf
'Additional VBA code follows

Will be transformed to the following:

Attribute VB_Name = "Input"
'#Const TestType="testing"
'#If Win16 Then
    foo = 6
'#ElseIf Win32
'    foo = 7
'#EndIf
'Additional VBA code follows

To run the program

python vba_precompiler.py [-h] [-s SYSTEM] [-v VERSION] [-o OUTPUT] directory

positional arguments:
  directory             The source directory.

options:
  -h, --help            show this help message and
                        exit
  -s, --system          System Type, Win16, Win32, Win64, or Mac.
  -v, --version         VBA version, 6 or 7.
  -o, --output         output path, defaults to ./build.

examples:
  python -m vba_precompiler -s Win32 -v 7 -o ./build32_7 ./project

Tests

The tests directory contains complete unit and functional tests.

Contributing

Contributions are welcome. Please ensure new features include unit tests to maintain 100% coverage. All code must adhere to the PEP8 Standards for both formatting and naming. Method signatures must be fully annotated.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vba_precompiler-0.0.1.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

vba_precompiler-0.0.1-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file vba_precompiler-0.0.1.tar.gz.

File metadata

  • Download URL: vba_precompiler-0.0.1.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for vba_precompiler-0.0.1.tar.gz
Algorithm Hash digest
SHA256 2243fd40c9d57d9bf0dd74ef436ec6b167f30c808f061f7fc28b00fdd2d6431c
MD5 8e3407c934b1f5b8701a10fc481ba6fb
BLAKE2b-256 99b38026ebd6c41a470faa2da9d7b1779498be9e15ca7c659afa3d7d9a3f02ab

See more details on using hashes here.

File details

Details for the file vba_precompiler-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for vba_precompiler-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 41bc1bbcc6ce73b94a2e592db50d465f74566edfab7970ac23122aa12e2a0393
MD5 8e6e2db673e9dbeb0e2cc02aeeb90980
BLAKE2b-256 bb140094709987e1ea0392064ae919d200452ae78d12a5f06020233b70e4d63c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page