Toward Reverse Engineering of VBA Based Excel Spreadsheets Applications – Domenico Amalfitano, Nicola Amatucci, Vincenzo De Simone, Anna Rita Fasolino and Porfirio Tramontana

Spreadsheets are commonly used (no surprise there) and comprehension is needed in many scenarios. Comprehension can be hard though, because there is no clear distinction between different layers: data, calculation and visualization.

The use of VBA increases the complexity, as users can introduce user defined functions and form elements and even override existing functionality. Vincenzo’s plan is to firstly reverse engineer the data model. For this, they use an heuristic approach, where information is exploited about how spreadsheets are usually laid out.
2015-05-18 11.58.55

When the data model is defined, the approach is to do user Interface and business logic reverse engineering, by recognising elements of the user interface are recognised, and events and their handlers.

Finally, when the calculation parts are extracted, different views are offered to the user:

2015-05-18 12.02.24

In other words: The steps are: Extraction, Abstraction and Presentation

Exact is available for download from:

2015-05-18 12.03.18

This post was visited 233 times.


  1. Michael

    The github link doesn’t work. Do you have a working link?

    1. felienne (Post author)

      Thanks for pointing that out! It is:

Comments are closed.