Read our blogs, tips and tutorials
Try our exercises or test your skills
Watch our tutorial videos or shorts
Take a self-paced course
Read our recent newsletters
License our courseware
Book expert consultancy
Buy our publications
Get help in using our site
551 attributed reviews in the last 3 years
Refreshingly small course sizes
Outstandingly good courseware
Whizzy online classrooms
Wise Owl trainers only (no freelancers)
Almost no cancellations
We have genuine integrity
We invoice after training
Review 30+ years of Wise Owl
View our top 100 clients
Search our website
We also send out useful tips in a monthly email newsletter ...
Software ==> | Excel VBA Macros (52 exercises) |
Topic ==> | Event handling (4 exercises) |
Level ==> | Average difficulty |
Subject ==> | VBA training |
This exercise is provided to allow potential course delegates to choose the correct Wise Owl Microsoft training course, and may not be reproduced in whole or in part in any format without the prior written consent of Wise Owl.
Open the file called Battleship game.xlsx and create a subroutine which handles the SelectionChange event for Sheet1.
Use the drop down lists at the top of the code window.
The Target parameter returns a reference to the range that you select. Add a message box which tells the user the Address of the cell they have clicked on:
Test your code works by clicking on a cell.
Write an If statement which changes the fill colour of the cell to grey and shows a message if you click an empty cell:
Your message could resemble this one.
Add an Else clause which changes the fill colour to red and shows a message if the cell isn't empty.
Here we have included the type of ship you hit. A = aircraft carrier, B = battleship, C = cruiser, D = destroyer and S = submarine.
The game won't work if a user attempts to select multiple cells. Add an If statement at the start of the subroutine which checks if the Count or CountLarge property of the target is greater than 1. If so, display a message and exit the subroutine.
That should slow down the cheaters!
You could add a separate subroutine to reset the game by changing the ColorIndex property of the cells to xlNone.
Take a few shots and then save and close the file.
You can find other training resources for the subject of this exercise here:
Kingsmoor House
Railway Street
GLOSSOP
SK13 2AA
Landmark Offices
99 Bishopsgate
LONDON
EC2M 3XD
Holiday Inn
25 Aytoun Street
MANCHESTER
M1 3AE
© Wise Owl Business Solutions Ltd 2024. All Rights Reserved.