SolidWorks API
SolidWorks API is exposed using technology from Microsoft called "Automation". Automation interfaces are common among applications written for Windows.
There are different ways to access the SolidWorks API.
Macro
VBA, or Visual Basic for Applications, is a programming environment that is accessed from within SolidWorks. Programs written using VBA are referred to as "macros".
Macro is typically used by end-users to write small programs to automate repetitive tasks, although it is not limited to this.
A Macro program has the same access to all of the features of the API as any of the other methods of accessing the API.
Add-Ins
Add-Ins are a special type of SolidWorks program.
SolidWorks starts the Add-In automatically whenever SolidWorks is run. This has a huge advantage in that the add-in is able to insert itself into SolidWorks user-interface.
Add-ins have a distinct advantage over Macro in delivering your program to users and managing your source code.
An Add-Ins program can be written using languages such as Visual Basic, C#, and Visual C++.
Standalone EXE
A standalone EXE is a program that runs on its own and connects to SolidWorks. This type of program is typically used in the case where you have a program that doesn't require the user to interactively work with SolidWorks.
For example a batch plotting utility can be an EXE that runs independently of SolidWorks. It might monitor a database watching for new records to be added which describe documents that need to be plotted.
When a new record is created in the database, the EXE starts SolidWorks, opens the desired document and plots it.
A Standalone EXE program can be written using languages such as Visual Basic, C#, and Visual C++.