VBA Macro

[VBA] Early Binding Vs. Late Binding

루아흐뉴마 2018. 5. 7. 15:14
반응형

Early Binding과 Late Binding의 차이


  • Binding은 "묶다"는 어원적 의미에서부터 설명하자면, 어떤 개체 변수를 설정하는 것과 관련된 개념이다.
  • Early Binding은 변수 선언 단계에서 이미 myPPT 변수를 PowerPoint.Application으로 지정한다.
  • 반면, Late Binding은 변수 선언 단계에서 myPPT 변수를 단순히 Object로 선언하고,
  • 개체를 생성하는 단계에서 나중에 PowerPoint.Application을 지정한다.
  • 변수 선언 측면에서 별 차이가 없어보일 수 있지만, 이후의 코드 작성이 완전히 달라진다.
  • Early Binding을 통한 코딩의 경우, 아래 예시와 같이 .WindowState = 까지만 기입하면
  • 이후에 입력할 수 있는 변수 목록이 자동으로 생성되며, "어떤 변수 값을 기입해야 할까?"를 고민할 필요가 없다.
  • 즉, Enumeration의 명칭을 그대로 변수 값으로 활용할 수 있다. 아래 예시에서는 ppWindowMaximized가 된다.
  • 반면, Late Binding을 통한 코딩의 경우, ppWindowMaximized 값을 사용할 수 없다.
  • 이 경우 WindowState Property가 가질 수 있는 값을 개체 라이브러리(F2)에서 직접 찾아서 숫자로 기입해야 코드가 정상적으로 작동한다.


Early Binding 예시 Code


Option Explicit
Sub Early_Binding()
    Dim myPPT As PowerPoint.Application
    Set myPPT = New PowerPoint.Application  '파워포인트 개체 생성
    
    With myPPT
        .Activate                           '파워포인트 활성화
        .WindowState = ppWindowMaximized    '파워포인트 창 크기 최대화
    
    End With

End Sub



Late Binding 예시 Code


Option Explicit
Sub Late_Binding()
    Dim myPPT As Object
    Set myPPT = CreateObject("PowerPoint.Application") '파워포인트 개체 생성

    With myPPT
        .Activate
        .WindowState = 3         'Early Binding처럼 ppWindowMaximized를 직접 사용할 수 없음. 변수의 Value 값을 기입해야 함.
    End With
End Sub





 Copyright (2018) Ruahneuma. All Rights Reserved.


반응형

'VBA Macro' 카테고리의 다른 글

[엑셀] 자주 사용하는/유용한 VBA 코드 정리  (0) 2017.10.27