Late Binding means you don't need to set a reference to any library, Early
Binding means you have to set a reference to a specific version of Excel (or
Word, or whatever application it is you're trying to automate)
Using Early Binding, you'd usually use code like:
Dim xlApp As Excel.Application
Set xlApp = New Excel.Application
Using Late Binding, you'd use code like:
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application")
By not setting a reference to Excel, you gain a little freedom. If you chose
to set a reference to, say, Excel 2003 and you ship your application to
someone who has Excel 2002 or Excel 2007, you run the risk that the
reference you set will break, and nothing in your application will work
properly (not just the Excel-related code). However, you lose a few things.
You don't get Intellisense while you're coding, and you can no longer refer
to the intrinsic Excel constants (xlRight, xlBold, etc.). Some people claim
that the code runs slower, but I've never really noticed it. Yes, the
initial instantiation will be a bit slower (so you don't want to do that
inside a loop), but once it's instantiate, it seems about the same to me.
Tony Toews has an introduction to the topic (plus some good links) at
http://www.granite.ab.ca/access/latebinding.htm
--
Doug Steele, Microsoft Access MVP
(no private e-mails, please)