Excel abuse hits new heights as dev uses VBA to code spreadsheet messaging app
At least he didn't use Excel as a database for credit cards
We shouldn't encourage readers to waste their time like this, but it's the kind blend of wonderful insanity that springs from a sysadmin with time on his hands: an enterprise instant messaging platform that runs in Excel.
Of course, nobody would want to deny Microsoft the chance to stub its toe properly by writing its own competitor to Slack, Skype Teams, would they?
This project, by one Tristan Calderbank, is pretty special.
Because no product story is complete without a feature list, here are the high points:
- There's no exposure to Internet-borne attacks, because it only works on the LAN;
- Users don't need an instant messaging client, because it all happens in Excel – which everybody has open all the time in any cubicle farm;
- Messages are delivered within 40 seconds; and
- While it's based on a client-server model (that is, client worksheets link to server worksheets for messaging), messages might get written to a different user worksheet. Upside: no need to switch sheets.
No, there's no real point to this. Calderbank's Excel IM app
So, let's take in some of how Calderbank got this monster functioning.
The easy bit was to point cells in user worksheets at each other, but there are two problems: the first is that new messages only appear when the worksheet was saved (fixed with a VBA autosave on a 20-second cycle); the second, that it was only peer-to-peer and couldn't support multiparty chats.
That's when Calderbank switched to a client-server infrastructure: all the clients point to the server sheet to get messages. The server “loops through all the clients in the folder, grabs nicknames and messages, and creates the master chat window by shifting everything up and ignoring duplicates”.
With the right skin, it looks just like a regular worksheet.
We can almost feel a series coming on: what pointless tasks have sysadmins or devs tortured Excel into performing for fun? Serious submissions will be ignored. ®