It was in 1994 that Microsoft declared Office a development platform, and released the Office Developer’s Kit 1.0 for coders to turn out useful utilities.
Using Visual Basic and COM automation, programmers could control Office applications using software. Automating, say, document editing in heavyweights Word and Excel in the fragile and resource-constrained environment of Windows 3.1 was unwieldy, but in some scenarios was a great timesaver.
In 2003, the company came up with Visual Studio Tools for Office, in which COM automation was wrapped with .NET libraries, allowing Office to be controlled using C# and other .NET languages. Microsoft also came up with a variety of methods for extending Office: templates, COM add-ins, Smart Tags, Action Panes, custom ribbon tabs, and more.
Then there is Visual Basic for Applications (VBA), the macro scripting language that will not die. Lightweight and effective, VBA still exists in Office 2013, the new release currently in preview.
The problem with all these odds and sods is that they run in the client and (VBA macros aside) have complex dependencies. They do not translate well to the cloud-with-device model, in which Office may be running on a locked-down Windows RT ARM tablet or in the browser on an Apple iPad using Office Web Apps.
Hiya Napa: Is Microsoft's Office cloud IDE an island paradise?
Programmers can get started with Apps for Office by signing up for an Office 365 developer pass. One advantage of this approach is that you can use Napa - Microsoft’s cloudy IDE for Office and SharePoint client apps. Napa is itself an app, and once installed you can create a new App for Office in a couple of clicks.
Napa is a simple affair, but it does support syntax highlighting, code completion, error highlighting, and search and replace. More importantly, it makes deployment for testing a snap. Hit the run button, and Napa packages and deploys the app to your Office 365 SharePoint and lets you launch it in the relevant Office application, such as Word or Excel, or in the browser for a pure SharePoint app.