[−][src]Crate ovba
An Office VBA project parser written in 100% safe Rust.
This is a (partial) implementation of the [MS-OVBA]: Office VBA File Format Structure protocol (Revision 9.1, published 2020-02-19).
The main entry point into the API is the Project
type, returned by the
open_project
function.
Usage
Opening a project:
use std::fs::read; use ovba::open_project; let data = read("vbaProject.bin")?; let project = open_project(data)?;
A more complete example that dumps an entire VBA project's source code:
use std::fs::{read, write}; use ovba::open_project; let data = read("vbaProject.bin")?; let project = open_project(data)?; for module in &project.modules { let src_code = project.module_source_raw(&module.name)?; write("./out/".to_string() + &module.name, src_code)?; }
The API also supports low-level access to the [MS-CFB]: Compound File Binary File Format data. The following example lists all CFB entries:
use std::fs::read; use ovba::open_project; let data = read("vbaProject.bin")?; let project = open_project(data)?; for (name, path) in &project.list()? { println!(r#"Name: "{}"; Path: "{}""#, name, path); }
Structs
Information | Specifies version-independent information for the VBA project. |
Module | Specifies data for a module. |
Project | Represents a VBA project. |
ReferenceControl | Specifies a reference to a twiddled type library and its extended type library. |
ReferenceOriginal | Specifies the identifier of the Automation type library the containing
|
ReferenceProject | Specifies a reference to an external VBA project. |
ReferenceRegistered | Specifies a reference to an Automation type library. |
Enums
Error | Public error type. |
ModuleType | Specifies the containing module's type. |
Reference | Specifies a reference to an Automation type library or VBA project. |
SysKind | Specifies the platform for which the VBA project is created. |
Functions
open_project | Opens a VBA project. |
Type Definitions
Result | A type alias for |