New beta available (v2.1f)

I’ve finally released a beta version of the Toolbox now that the Report Overview function exports into proper tables. The full suite of reporting options aren’t in there as I’ve got to add Custom Styles, various language detection, template names and both types of image: inline and shapes. But it gives you an idea of what the function will be able to do – that is, what you would see in the Toolbox’s GUI, is now dumped out to a Word (or a PDF) document.

My next stage for the website update is to start adding videos showing how the functions work “in real life”, with proper test documents. I attended the Manchester WordPress User Group last night at MadLab for the first time last night and picked up some good hints and tips on image optimisation from one of the speakers (Kayleigh Thorpe from

I also talked to her during the clinic time afterwards about using videos and she gave me some good hints and tips. Whether I use my current YouTube account, or create one specifically just for this website is a decision I’ll make at some point.

The latest verison (v2.0) of my Word add-in is now available

The what?

I have been developing a Word add-in called Mike’s Toolbox for the last 2.5 years within my spare time: some of it at work, some of it at home. It started out life as a small collection of macros (without any proper GUI) that would fix a number of particular annoyances that kept cropping up in documents where I work.

It is a tool for technical authors, proofreaders or those who would class themselves as ‘power’ Word users. Within the toolbox are lots of features designed to help you fix / improve any Word document. If you know of anyone else who could use this toolbox, please pass on the information about this new release.

I do not charge for this add-in, nor the full source code which I also give away with each new major version.

However, it’s not a tool that will help you create content, nor generate fancy templates. There are other add-ins out there that do that for your Word documents.

New website

Part of this release is to announce that my new website is available. I have moved everything across from the old Weebly-hosted site to the new one – my own proper domain, at last!

The full release of the add-in, including the manual can be found on the new site. Also included is the full VBA source code as a separate download for those that find this side of things interesting.

I couldn’t find a tool that would extract all the blog entries from Weebly and then import them into WordPress – so it had to be done by hand. One blog post at a time 🙁

The new site can be found here:

New version

I’ve upped the version number to v2.0 for this release. This is partly to introduce the new website and partly to enable a better numbering scheme for my forthcoming beta versions.

What’s new?

  • The About box now points to the new website. All traces of the Weebly-hosted site have been removed from the code and the manual.
  • Added ‘Delete TOCs’ and ‘Delete Indexes’ options to the Fields Inspector function. As part of this GUI alteration, I’ve moved the Delete fields option into a new frame called ‘Delete Options’. The old frame has been renamed to ‘Field Tweaks’.
  • A request came from work colleagues for the Fix Footer option to include a facility to insert the SharePoint version number. I.e. A document is checked out and therefore it has its own internal SharePoint revision number. This number is placed into the footer instead of the contents of the Comments or Subject fields as per previous versions of my toolbox.
  • When the document is checked back in, the version number will automatically be increased by a major and/or major/minor version number by SharePoint. This saves the current document editor the task of doing it themselves.
  • In order to make room for the new Content Type functions on the Footer tab, I’ve had to do some GUI rearranging. I had to increase the size of the whole Toolbox form by about 20 pixels. This meant all of the other tabs needed some tweaks to spread them out a bit to fill the gap created, but it will mean larger list boxes on display. The changes to the Footer tab are as follows:

a) Renamed the tab from ‘Footer / Information’ to be ‘Footer / Back To Basics’ – as there’s no information included on there, just footer and back to basic tools.

b) Removed the Refresh button as all of the functions automatically refresh the display after they have completed their task.

c) Moved the ‘Odd/Even Header/Footer’ Swap option to the bottom of the form.

d) Moved the Back To Basics to be in a single line and also now at the bottom of the form.

e) Moved all of the tweaks that are possible with the Fix Footer into the one frame.

f) Moved the Fix Footer’s status outside of the tweaks area, along with the Fix Footer button and that is now larger and in red too.

g) I also added the Please Wait form to the Fix Footer function when there are more than 5 sections in the document. I will investigate where else I can place this so that you are aware of when fixes are taking place and don’t think that the Toolbox, or Word, has crashed.

  • As part of my long-awaited list of To Dos, I’ve started adding in the section type to some of the functions. First off is the Field Inspector which now displays the section type in brackets after each of the field’s content.
  • Did some shrinking of buttons within the Table Inspector toggles frame and made enough room to add a new function to toggle table borders on/off.
  • However, this doesn’t allow you to customise which of the borders are on/off, it’s just a simple on/off per selected table.
  • Removed the refresh buttons from both Endnotes and Footnotes forms. Added ‘Update’ buttons to both the Numbering Rule and Numbering Style combo boxes on both forms too. All as a result of finding that the code that updates the listbox was being called multiple times in the previous releases. The Convert and Delete buttons have been laid along the same horizontal line too.
  • Added a simple display option for any Building Blocks found inside a Word template file. It’s a ‘no thrills’ option which I hope to improve over time.
  • Removed the Read-Only/Read-Write status check that appeared underneath the main Toolbox form. The read-write status of the current document is now done, as per all the other Inspector tools, prior to launching the function. This enabled me to remove about 15 different checks of the status that were inside the main Toolbox’s code.

That’s all that’s new. More details will be in the manual.

What’s been fixed?

  • A bug was found in the Field Inspector when I added an index to the manual – mainly because I’d never created/used indexes in a Word document before. The Field Inspector had made some assumptions about index entries and that’s now been fixed.
  • Fixed an odd bug in the Endnotes/Footnotes code that created the listbox. For some reason I was calling the routine to populate the list box three times in a row due to the use of ‘_Change’ event each time. So, for example, if there were 4 endnotes found, they were being listed as 12. The four endnotes and 8 blank entries. Bug quashed!
  • The Section, Field and Table Inspectors weren’t checking if multiple documents were open. They do now.
  • I’d not included a description in this manual to cover the Odd/Even Header/Footer option in the Footer / Back To Basics tab. Oops!

That’s the list of bug fixes that were hanging over from the previous version.


I have learned a lot about optimising my VBA code during the update from the previous version (v1.89) to this new version. So much so that some of it will feature in my next article for the ISTC magazine, Communicator.

To save boring you with examples of code, all of the optimisations can be found in the Change History section of the manual.

All in all, the optimisations have helped to shrink the add-in down by quite a margin. The v2.0 of this add-in is now smaller than the previous release (v1.89) but includes new features, along with the bug fixes. The VBA source code is shorter too, by almost 400 lines of code/comments and line spacing.

Site updated ready for v2.0’s release!

I’ve updated most of the pages with the latest screenshots. I had to install yet another WordPress plugin as, annoyingly, if you want to replace an existing screenshot you have to upload a fresh one, delete the old one then rename the new one and then it should (!) appear on the page.

Or you can install the Enable Media Replace plugin which will allow you to upload (one-at-a-time) the replacement images and it does all of the work for you. Which is much easier.

The download and source code pages will be made available tomorrow and there will be the usual links appearing on here, Facebook and Twitter. I’ve almost finished the announcement article on LinkedIn and that will be made live tomorrow too.

This version might not be a massive update, but it’s:

a) smaller due to the optimisation

b) has some bug fixes

c) has a few extra features.

Have fun!

More code optimisations and a new beta available (v2.0 preview)

As my first official post on this new official website for my add-in, it might be a lengthy one 🙂

Code optimisation(s):

There are several that I’ve discovered, including a variant of the ‘IF’ command that I didn’t know existed.


There’s the condensation of a line of code. I’ve done this before in previous “how can I shrink the code” runs, but due to some “copy & paste coding”, I’d got lazy and had forgotten that I should be doing this.

My Old Code:
If blnProtected = True Then
 Exit Sub
End If
The New Code:
If blnProtected = True Then Exit Sub

That’s three lines of code into one.


This is the new IIF function that I never knew existed in VBA. It is very similar to the IF function that can be used in Excel formulae in that you store a result from a test, based on whether the answer is true or false. I do a *lot* of these kinds of tests in my code, mostly within the generation of the list box contents for the various Inspector-type tools.

My Old Code:
If .Rows.WrapAroundText = True Then
 strWrapAround = "Y"
 strWrapAround = "N"
End If
The New Code:
strWrapAround = IIf(.Rows.WrapAroundText = True, "Y", "N")

That’s five lines of code into a single one. That’s going to help shave quite a few kilobytes off the size of the final release of v2.0 when I’ve gone through the code and fixed them all.

New beta:

There is a new beta available (v2.0 preview) which can be downloaded via the DropBox links on the Beta page. I completely forgot to update the GoogleDrive links, but I will fix that tonight. This will be the version which will have some, but not all of the code optimisations as mentioned above. All being well, there will be a noticeable difference in the size of the release version, compared to this beta.

Download, install and let me know via the Trello board if there are any changes needed.

Updated version of my Word add-in (v1.89)

It’s been a few months since the release of v1.87, but after several incarnations of the beta (v1.88), I can now announce the availability of v1.89.

There have been *lots* of changes: either to existing features, or adding new features. I’ve also fixed some really embarrassing bug fixes and, as a visitor to this blog, you know that I don’t hide from my mistakes, so they are all listed towards the end of the manual. There are a smattering of D’oh! comments in there after I’d worked out how to fix somethings that I’d broken in the first place!

Download & installation

Existing users

As the following lists are quite lengthy, I’ll give those who are impatient to get the latest version the URL to go to:

Download the .ZIP file, unpack the files and overwrite your existing copy with the new version and away you go! I would double-check your configuration just to make sure nothing has changed, but it shouldn’t matter.

New users

If you are a new user, then follow the installation guide in the manual and remember to use the Configuration form first to set up the few items needed. Leave the Expert mode toggle off until you’re tired of all the message boxes appearing 🙂

New features

  • Table Inspector: Reset Table To Normal has been added. A quick fix to reset all the selected tables to be reset back to a standard looking table. Handy for fixing those tables which have an odd look and feel.
  • Table Inspector: You can now remove any empty rows or columns. The function to do columns is a bit slower as it has to do more background checks to ensure it doesn’t ruin a table’s layout.
  • Section Inspector has had a major overhaul. If I’m honest, I didn’t like how the first release of it worked in v1.87, so it’s been rewritten from scratch and lots of extra functionality added. I hope you’ll like the new version 🙂
  • Endnote/Footnote Inspector: A new function to handle endnotes and footnotes within a document.
  • The Image/Shape Browser has, thanks to some suggestions from a beta tester, had a bit on an overhaul. Lots more functions in there, including a preview of my ‘select one or multiple select many’ toggle. If this is liked by the users, I’ll adapt it for other listbox-based functions.

Enhancements to existing features

GUI tweaks:

  • When running the toolbox on my PC at home, connected to a 42″ TV, I noticed that several buttons and labels weren’t displaying correctly. All are now fixed.
  • Removed all of the ‘Close’ buttons from all forms. There’s the standard X in the corner of each form to use instead, plus it gained me some form space for extra functions on quite a few forms.
  • Buttons that replace or remove items from your document (singularly or in bulk) are now displayed in red, as a ‘warning’.
  • The Please Wait form now includes a total of the items being examined to show you how many the current function needs to work through.
  • Increased the width of the Fields Inspector form to allow more detail to be viewed.
  • In most listboxes, you cannot use the functions *until* you have selected at least one item.
  • You can now alter the size of the font used for the text that appears in the Fix Footer routine.
  • Fields Inspector form tidying has been done. Some of the field types weren’t being displayed and now are.

Other fixes:

  • Added a check to the Replace Style function to check that you aren’t trying to replace the same source and destination styles.
  • Redid the layout of the Table Inspector form to allow extra features to be added.
  • Rejigged the Inspector icons on the Toolbar so that the magnifying glass image on each icon are now facing the same way. No idea why I hadn’t fixed that sooner.
  • The main Toolbox feature appears a lot quicker now as it was being slowed down due to the inspection of the styles in a document. This is now performed only when you click on the Styles tab.
  • An crash occurred when Readability Statistics was used on a document with multiple languages. I’ve added an error trap and a message box will suggest that you fix the document to contain a single language before attempting to generate the statistics.
  • Removed the ‘Replace F & S’ bulk fix as it wasn’t as useful as I thought it might be – for me or for the person who suggested it. Them’s the breaks!
  • Quite a few bugs had cropped up in the Configuration form when I was attempting the Mac port a few versions ago. For some reason I’d left the default folder as the Mac instead of the Windows equivalent.
  • Other tweaks were also done to the Configuration form to ensure it doesn’t go pear-shaped when you delete a template you have added.

Source code

As per usual, the full VBA source code is also available.

Dev Tool Plug

Finally, a quick plug for a development tool that’s helped me out a lot during this version’s coding. The purchase of MZ-Tools has been very, very useful. Whilst a lot of functions are more orientated towards the .NET side of things – or my coding style – there is enough inside this tool to make developing in VBA a lot easier. It’s well worth the price that’s being asked.

New utility – RoboHelp Map ID Report to CSV add-in

I’ve released a stand-alone version of a function that was from an older version of the toolbox.

The code has been tidied up, CSV file writing added and some extra checks are now included. Load up the RoboHelp Map ID Report, click the Convert button and a .CSV file version will appear in the same folder as the source .RTF file you exported from RoboHelp.

It comes with an example RoboHelp Map IDs file so that you can try it out before using it.

I’m not sure what other options to add to this utility, or indeed if there’s anyone else out there in the world who would be able to use it! So get in touch via LinkedIn or email and let me know if you do use it and any improvements you think I can add to it.

As with all my code, it’s not protected and you can just right-click and open it in Word, then press ALT & F11 to view the full source code.

Gearing up for v1.89 to be released

The add-in is being prepared ready for the next full release. Which means webpage edits and screenshot changes galore as I’ve moved from Office 2013 as my main development tool to Office 2016. If you’ve tried any of the beta versions out, you will have noticed that the screenshots in the manual are now based on the newer version of Office.

From its early days of just being a collection of unlinked single functions carved into an ever bulging Normal.dotm file, through to what you have now: a full GUI-based system which lots (and lots) of functions.

It’s been two years of on/off development for the add-in. The first post on this blog was written back in August 2014, but the coding of the ‘GUI-based version’ had started in earnest a month or so before-hand.

I’ll sort out a proper “What’s New” post on the day of release so that those who haven’t downloaded any beta versions before will be fully aware. The list of bug fixes is large as well, but I’ll leave that detail in the manual as wouldn’t want to bore anyone with that.

After these two years, I’m happy to say that this add-in is still 100% free – and that includes the fully commented source code.

New beta (v1.88h) now available

This is just an interim beta release as I’ve fixed a few bits here and there, but I’m still not sure whether I like how the add-in is handling endnotes and footnotes. I’ve added the detection of Whole Document / Selection to the form so that if you only want to amend endnotes/footnotes in a particular area, highlight it first before launching the Endnote/Footnote Inspector tool.

Grab it from the Beta download page and, for those who use endnotes and/or footnotes in your documents, please do your best and test out the functionality with this beta.

In other news, this add-in has to be developed at home and not in work. In fact, it has been for a good 6 weeks or so, but the lack of any real progress shows just how much I prefer relaxing with my Xbox One when I’m at home. Far Cry 4 was recently completed and I’ve just started Mad Max, so I’ve no idea when the next full release of the add-in will appear 🙂