ShipPlotter AIS Data Reception Analysis & Website Upload Spreadsheet/Program

ShipPlotter.xls VBA Guide by Neal Arundale

In course of preparation

VBA Introduction
Why VBA ?
The programs I have seen to extract the data from the ShipPlotter program into spreadsheets use VBScript to write out a file which is then imported into a spreadsheet, or the script writes the data directly into a spreadsheet..

Visual Basic (VB) comes in three flavours. VBS is basically a subset of VB whereas VBA has almost all of the features of  VB plus access to the components of the host application. As my end goal was to graphically display message rate, number of ships and maximum range, it made sense to use VBA rather than VBS. A side benefit was the ability of VBA to reschedule itself at a time in the future, whereas VBS only has a weak wait function and so requires setting up as a scheduled task. In addition the debugging features in VBS are minimal but VBA comes with a good debugging editor (VBE).

Visual Basic Editor
First stop the scheduler
, if you don't you may get an unexpected copy of Excel startup later.
You only need to install VBE if you want to change the VBA code.
With Excel 97/2000 installing VBE is an option when Excel is installed (I don't know about later versions).
When invoked by Tools > Macro > Visual Basic Editor (when in Excel) you should see a screen something like

If you wish to change the format or data reported on I suggest you create a new module & worksheet (even if you copy an existing one), you can keep a separate copy of your module by exporting it. If I change the existing code to fix bugs etc, you will simply be able to import your code module and eveything will continue to work ok.
As my initial interest was to display the message rate etc graphically, this is where most of my effort has been spent, the other sheets I've done were mainly to demonstrate the feasability of the techniques employed rather than to produce relevant data. I've also used more than one method of achieving the same end result for the same reason.