---
name: "extract_vba"
section: "1p"
platform: "linux"
package: "libexcel-writer-xlsx-perl"
version: "1.11-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/extract_vba"
---

# extract\_vba(1p)

A utility to extract a VBA project from an Excel 2007+ xlsm file.

## NAME

extract\_vba - A utility to extract a VBA project from an Excel 2007+ xlsm file.

## DESCRIPTION

This utility is used  to extract the VBA project binary from an Excel 2007+ xlsm file. The VBA project can then be added to an Excel::Writer::XLSX file to enable it to have macros.

An `"xlsm"` file is a version of an Excel `"xlsx"` file that contains an additional VBA project binary file. The `"xlsm"` file format is a collection of mainly XML files in a ZIP container.

The extracted VBA project is an OLE Compound Document in binary format. It is named `"vbaProject.bin"` and is generally located in the `"xl"` directory of the `"xlsm"` file.

See the `"add_vba_project()"` section of the  Excel::Writer::XLSX documentation for more details.

Note: you can also extract the VBA project from an `"xlsm"` file using the standard Linux `"unzip"` command:

```
    unzip -j macro01.xlsm xl/vbaProject.bin
```

On Windows you can use any suitable Unzip application.

## SYNOPSIS

```
    $ extract_vba file.xlsm
    Extracted 'vbaProject.bin' successfully
    $ extract_vba -h # For help.
```

## OPTIONS

- **--help or -h**

  Print the help documentation.

## AUTHOR

John McNamara jmcnamara@cpan.org

## VERSION

Version 0.01.

## COPYRIGHT

(c) MMXV, John McNamara.

All Rights Reserved. This program is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.
