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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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