Včasná vazba vs. Pozdní vazba

Tyto dva termíny nejsou nic záhadného a jistě se s nimi setkáváte při prohlížení jiných projektů. Jde o to jak pracujeme s knihovnami. Je to velice silný pomocníka. Můžete se dostat k Windows API či API dalších programů jak Office tak i jiných.

Včasná vazba-
Early  Binding

Včasná vazba je o práci s Referencemi v rámci projektu VBA (Tools->References).

Instance objektu například Excel:

Dim XL_o As Excel.Application 			'vytvoření objektu
Set XL_o = New Excel.Application		'přiřazení

Výhody:

  • Máte k dispozici Intellisense, což je asi největší benefit
  • Automatická kontrola syntaxe
  • Lze využívat konstanty/enumy daných knihoven
  • Je dostupný prohlížeč objektů
  • Nápověda pod F1

Nevýhody:

Jelikož knihovny vybíráme v Referencích. Je tedy potřeba aby knihovna byla v PC, ale i byla přímo vybrána s konkrétní verzí. Toto je nepříjemné, pokud bude váš výtvor využívat více různě nakonfigurovaných strojů s různou verzí office.


Pozdní vazba-
Late Binding

Pozdní vazba nevyužívá předefinovaných knihoven, kód netrpí tedy problémy s verzí. Nedochází k problémům s verzí reference a stačí aby byla knihovna v PC registrována.

Instance objektu například Excel:

Dim XL_o As Object 
Set XL_o = CreateObject("Excel.Application")

Výhody:

Jak již bylo psáno, není problém s verzí knihoven

Nevýhody:

  • Není k dispozici Intellisense
  • Není Automatická kontrola syntaxe
  • Nelze využívat konstanty/enumy daných knihoven
  • Není dostupný prohlížeč objektů
  • Není nápověda pod F1

Oba postupy mají stejné zápis pro manipulaci s již existující instancí

Dim XL_o As Object 
Set XL_o = GetObject(, "Excel.Application")

Pozdní a Včasná vazba v jednom

Oba výše uvedené přístupy lze využít najednou. Výhoda včasné vazby při psaní kódu a pozdní pro stabilitu kódu. Využijeme Hastag. Tento kód vkládáme úplně nahoru.

	'#Const vcasneVolani = True 'Včasné vazby potřebuje správnou Referenci
#Const vcasneVolani = False    'Použij Pozdní vazby
    #If vcasneVolani = True Then
  		'Deklarace pro Včasnou vazbu
        Dim XL_o          As Outlook.Application
    #Else
  'Deklarace pro Pozdní vazbu
        Dim XL_o          As Object
    #End If

Konstantou vcasneVolani určuje zda se bude používat Včasná či Pozdní vazba. Doporučuji pro psaní kódu využívat Včasnou a po předání do používání přepnout na Pozdní. Při psaní kódu budete mít k dispozici všechen komfort a vyřešíte s tím problémy se změnou verze knihovny.