<p>What is the difference between early and late binding?</p>

Taken directly from
http://word.mvps.org/fAQs/InterDev/EarlyvsLateBinding.htm
There are two ways to use Automation (or OLE Automation) to
  programmatically control another application.
Late binding uses CreateObject to create and instance of the
  application object, which you can then control. For example, to create
  a new instance of Excel using late binding:
```
```
Dim oXL As Object
 Set oXL = CreateObject("Excel.Application")
```
```
On the other hand, to manipulate an existing instance of Excel (if
  Excel is already open) you would use GetObject (regardless whether
  you're using early or late binding):
```
```
Dim oXL As Object
 Set oXL = GetObject(, "Excel.Application")
```
```
To use early binding, you first need to set a reference in your
  project to the application you want to manipulate. In the VB Editor of
  any Office application, or in VB itself, you do this by selecting
  Tools + References, and selecting the application you want from the
  list (e.g. “Microsoft Excel 8.0 Object Library”).
To create a new instance of Excel using early binding:
```
```
Dim oXL As Excel.Application
 Set oXL = New Excel.Application
```
```
In either case, incidentally, you can first try to get an existing
  instance of Excel, and if that returns an error, you can create a new
  instance in your error handler.