The biggest downside to working in massive corporate offices is the locked down computer systems. There is no internet access, no games, no fun! However, Excel is always installed and kicking. How awesome would it be if Excel had a couple of games in it?
Initially I planned to use Excel’s VBE to create the game in a UserForm, but later, I decided to use Excel’s Interface itself. Neatly stacked square cells could be used to make old school pixel based games. I chose to create that Game which reached millions through our beloved Nokia mobile phones: Snakes.
I have added in a lot of comments in the code to help you understand how it works. Take a look at it and let me know what you think. I have used API calls to windows for animating the Snake; and API functions are known to crash Excel, if Excel is not ready when called. My code takes that into account, but it is safe to save and close your workbooks before playing. I developed this in a 64-bit version of Excel 2010. I did created a separate 32-bit version for the API calls, but I have not tested it out myself.
Download
For the 64Bit users
For the 32Bit Users
Download and Have Fun! Send it around! I am sure many of your colleagues would like to squeeze in a game or two between drafting ridiculously long reports.
Ejaz, Good one
Thanks Sajjad bhai. Which version worked for you? The 64 or the 32?
Bhai, brilliance!! Respect.
Hi Harsh. Thanks for letting me know! Have fun at work!
Hi, I’m really interested in that Excel games, can you update the link, plz ?
Nice work! An idea for improvement: You don’t need to have separate 32-bit and 64-bit files. You can use the preprocessor variable VBA7 to check for 64-bit. See: http://stackoverflow.com/questions/5506912/how-should-i-make-my-vba-code-compatible-with-64-bit-windows
Thank you for the link. I did look into this before, but I did not have a 32 bit office to test it out. I still don’t. Would you be interested in helping me test it?
Yeah, I can do that. They have 32-bit Office at my work. If you send or upload the file I’ll check if it works.
Lovely. I will get in touch with you when I get around to doing it. Thank you.
Why the “Optional ByVal booDummy As Boolean = False”?
That is actually a long story I meant to write about.
You may want to prevent users from running intermediate subs in your modules from the macro dialog box.
One way to accomplish that is to declare it private. However that will prevent you from using the call statement to access subs in other modules.
You may argue that the run statement can be used, but that is not very ideal for a lot of reasons.
Adding an argument will ensure that your sub does not get listed in the macro dialogue box.
Therefore adding an optional dummy boolean argument hides the macro from a user, but still lets you use the call statement.
I have been using this technique since excel 2003. There is a good chance we don’t need this workaround any more, but I am not sure.
why it must use microsoft excel 2010
Excel 2010 was the version I used when I designed this game. It should work on later versions also.