Building an Add-in for Excel, specification
An important step in any software development process is defining what your application is supposed to do, what it must be capable of. Let's try and put that together here.
The primary goal of the add-in is to provide:
- A simple way for an Excel user to create and maintain a Table Of Contents in a workbook
- A simple worksheet navigation helper on the ribbon (so you can quickly jump to other worksheets)
As you may imagine, this needs more detail before you can jump head-first into the VBA editor to start building this thing. We need more specs.
More detailed specification
- The ToC will be placed on a worksheet called ToC, with a table starting from cell C2
- The table will be Formatted as a Table
- The table will contain a list of all worksheet names in column C, a direct link to each sheet in column D and some space for remarks about each sheet in column E
- The remarks are retained when the table is updated, ensuring the remarks stay with their associated worksheet, based on the worksheet's name
- A screenshot of what the ToC might look like:
- The tool will have a custom ribbon tab, with one group,
- a dropdown listing all worksheets in the active workbook (when a sheet is picked, it is activated)
- an "Update ToC" button which updates the table of content:
- If the user switches to a different workbook, the sheetlist on the ribbon is automatically updated
- If the user switches to a different worksheet, the dropdown will display that sheet's name.
Are we ready to go?
Of course in real world software projects, lots of other things might be needed first, in no particular order:
- Get funding; someone has to pay your bills
- Do market research (if you plan to sell the thing, might be nice if there is a demand for it)
- Google. Twitter. Ask your neighbor. Make sure you are not trying to build something that already exists! Chances are someone was in the same situation as you and has a ready-made add-in you can just use.
- Planning: when should you be done with the project?
Other things to think about
Here are some more things that you might need which often have little to do with the core functionality of the add-in:
- Designing the user-interface
- Bugs to work around
- Activation (if you are selling licenses, how do you ensure people actually pay)
- Demo version
- How do I issue updates
So that's it for now, time to start coding