Precompile VBA code.
Project description
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for vba_precompiler-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41bc1bbcc6ce73b94a2e592db50d465f74566edfab7970ac23122aa12e2a0393 |
|
MD5 | 8e6e2db673e9dbeb0e2cc02aeeb90980 |
|
BLAKE2b-256 | bb140094709987e1ea0392064ae919d200452ae78d12a5f06020233b70e4d63c |