Class VBAMacroReader

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class VBAMacroReader
    extends java.lang.Object
    implements java.io.Closeable

    Finds all VBA Macros in an office file (OLE2/POIFS and OOXML/OPC), and returns them.

    NOTE: This does not read macros from .ppt files. See org.apache.poi.hslf.usermodel.TestBugs.getMacrosFromHSLF() in the scratchpad module for an example of how to do this. Patches that make macro extraction from .ppt more elegant are welcomed!

    Since:
    3.15-beta2
    • Constructor Detail

      • VBAMacroReader

        public VBAMacroReader​(java.io.InputStream rstream)
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • VBAMacroReader

        public VBAMacroReader​(java.io.File file)
                       throws java.io.IOException
        Throws:
        java.io.IOException
    • Method Detail

      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException
      • readMacroModules

        public java.util.Map<java.lang.String,​Module> readMacroModules()
                                                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • readMacros

        public java.util.Map<java.lang.String,​java.lang.String> readMacros()
                                                                          throws java.io.IOException
        Reads all macros from all modules of the opened office file.
        Returns:
        All the macros and their contents
        Throws:
        java.io.IOException
        Since:
        3.15-beta2