About

ShipTrack is an add-in for Microsoft® Excel® 2003-2013 (32-bit Office) that lets you track shipments from several major carriers directly from Excel.

ShipTrack is an add-in UDF that can be used to track packages from FedEx, UPS, Conway, ABF and more and return status information directly to the worksheet. Returns current delivery status and (if available) delivery date/time. Uses XMLHTTP object for lightning-fast web queries! (ShDocvw.InternetExplorer used for ABF)

Current version is 4.3.4. This addin was originally written in VBA and was completely rewritten in VB6 in 2011. Supported versions: 2003-2013 (32-bit Office only).

Requires MSXML6.dll in your local system32 folder, as well as Internet Explorer (for certain carriers) and an Internet connection.

How to Use

After installing the addin, start Excel and enter the following formula:

=ShipTrack("tracking number", "carrier", volatile)

where

  1. "tracking number" is your tracking number, or a cell reference containing your tracking number (ex: A1)
  2. "carrier" is one of these carriers, in the following format:
  3. Carrier
    Format
    A1 Express=ShipTrack("tracking number", "A1")
    AAA Cooper Transportation=ShipTrack("tracking number", "AAACT")
    ABF=ShipTrack("tracking number", "ABF")
    A-1 International=ShipTrack("tracking number", "AONE")
    Blue Dart=ShipTrack("tracking number", "BD")
    CEVA Logistics=ShipTrack("tracking number", "CEVA")
    CMA-CGM=ShipTrack("tracking number", "CMACGM")
    Conway Freight=ShipTrack("tracking number", "CONWAY")
    DHL=ShipTrack("tracking number", "DHL")
    DHL Global Forwarding=ShipTrack("tracking number", "DHLGLOBAL")
    Estes Express (PRO numbers only)=ShipTrack("tracking number", "ESTES")
    Expeditors=ShipTrack("tracking number", "EXPINT")
    FedEx=ShipTrack("tracking number", "FEDEX")
    Hong Kong Post=ShipTrack("tracking number", "HKPOST")
    India Post=ShipTrack("tracking number", "INDIAPOST")
    Lasership=ShipTrack("tracking number", "LASERSHIP")
    New England Motor Freight=ShipTrack("tracking number", "NEMF")
    Old Dominion=ShipTrack("tracking number", "ODFL")
    Ontrac=ShipTrack("tracking number", "ONTRAC")
    Pegasus Logistics Group=ShipTrack("tracking number", "PLG")
    Purolator=ShipTrack("tracking number", "PUROLATOR")
    R+L Carriers=ShipTrack("tracking number", "RLC")
    Rworld Couriers=ShipTrack("tracking number", "RWORLD")
    Safmarine=ShipTrack("tracking number", "SAFM")
    SAIA LTL Freight=ShipTrack("tracking number", "SAIA")
    TCIXPS=ShipTrack("tracking number", "TCIXPS")
    TNT=ShipTrack("tracking number", "TNT")
    United Parcel Service (including LTL and International)=ShipTrack("tracking number", "UPS")
    UPS Mail Innovations=ShipTrack("tracking number", "UPSMI")
    U.S. Postal Service=ShipTrack("tracking number", "USPS")
    YRC Freight=ShipTrack("tracking number", "YRC")
    YRC Regional (including New Penn, Holland, Reddaway)=ShipTrack("tracking number", "YRCREGIONAL")
  4. volatile is a boolean true/false indicating whether you want the function to be volatile (Excel only). For backwards compatibility this is set to false by default. If you do not want to change the behavior of the formula then you do not need to change any existing formulas.

You could also use a cell reference (ex: B1), as long as it was a string in one of the above formats.

Examples:

=ShipTrack("ABC12345", "CONWAY")
=ShipTrack("123BOL456", $B$1) ' $B$1 contains the string "YRCREGIONAL"
=ShipTrack("1Z18456Y7689043", "UPS", true) ' this formula is volatile

ShipTrack offers two additional class methods:

  • GetShipTrackCarriers() – returns an array of carrier codes currently supported by the addin
  • GetVersion() – returns the addin name and version

API

You can call the ShipTrack function from your VBA code, either as early or late bound code. Once installed, declare an object to hold the ShipTrackFunctions class:

Late bound:

Dim shipTrack As Object

Early bound: (must first go to Tools > References and set a reference to \Program Files\ShipTrack\ShipTrack.dll)

Dim shipTrack As ShipTrack.ShipTrackFunctions

Regardless of binding, you then instantiate the object like this:

Set shipTrack = CreateObject("ShipTrack.ShipTrackFunctions")

Now you can return tracking results to your VBA code like this:

Dim result As String
result = shipTrack.ShipTrack("tracking number", "carrier")
' show version
Debug.Print shipTrack.GetVersion
' get supported carriers
Dim carriers() As String
carriers = shipTrack.GetShipTrackCarriers
Debug.Print carriers(0)

Note that the third parameter has no effect in VBA.

Site last updated: March 31, 2014