티스토리 뷰


안녕하세요. 구스입니다.

오랜만에 엑셀 매크로 프로그래밍에 대한 내용을 업데이트 하네요. 

오늘 공부할 내용은 통합문서(Workbook)를 엑셀 매크로 VBA에서 어떻게 다루는지를 살펴보도록 하겠습니다. 

기본적으로 VBA에서 엑셀을 다루기 위해서 알아야 하는 개체(오브젝트)들이 있습니다.


VBA를 제대로 다루기 위해서 사용자가 알아야 하는 오브젝트는 Application, Workbook, Worksheet, Range 오브젝트로 구분할 수 있습니다. 오늘은 여기에서 Workbook에 대해서 이야기 해볼까 합니다. 


통합문서는 엑셀을 켰을 때 나오는 전체 화면자체가 Workbook이라고 할 수 있습니다. 

아래의 화면을 보게 되면 통합 문서1 - Excel이라는거 보이시죠. 이 부분이 바로 Workbook 오브젝트입니다. 



따라서 통합문서를 통해서 작업할 수 있는 모든 부분을 Workbook 오브젝트로 처리할 수 있습니다. Workbook 오브젝트를 통해서 특정 기능을 수행하기 위해서는 Workbook의 함수를 이용할 수 있습니다. 


Workbook 오브젝트에서 주함수는 아래와 같습니다. 아래의 함수들을 통해서 통합문서의 기능을 매크로 VBA 상에서 처리하게끔 하는것이죠. 


  1. Activate: Workbook(통합문서)을 활성화 한다.
  2. Close: Workbook(통합문서)을 종료한다.
  3. Protect: Workbook(통합문서)를 보호한다. 
  4. ProtectSharing: Workbook(통합문서)를 저장하고 공유를 위한 보호 기능을 설정합니다.
  5. RefreshAll: Workbook(통합문서)의 데이터를 다시 고침합니다. 
  6. RejectAllChanges: Workbook(통합문서)의 변경 작업을 막습니다. 
  7. RemoveUser: Workbook(통합문서)에 지정된 사용자를 제거합니다. 
  8. RunAutoMacros: Workbook(통합문서)의 매크로(Auto_Open, Auto_Close, Auto_Activate 또는 Auto_Deactivate 매크로 부분)를 자동으로 실행합니다. 
  9. Save: Workbook(통합문서)를 저장합니다.
  10. SaveAs: Workbook(통합문서)를 다른이름으로 저장합니다.
  11. SaveCopyAs: Workbook(통합문서)를 복사하여 저장합니다. 
  12. SendMail: Workbook(통합문서)를 메일로 전송합니다. 
  13. UnProtect: Workbook(통합문서) 보호 기능을 해제합니다. 


위의 함수 중에 Activate 함수를 예로 한번 살펴보도록 하겠습니다. 


2개의 통합문서를 열고, 아래와 같이 구현을 합니다. 

아래 코드는 2개의 통합문서중 어느 부분을 Activate 할 것인가를 결정하는 코드입니다. 


Sub ActivateWorkbook()

    Dim strValue As String

    Dim intValue As Integer

    

    strValue = InputBox("어떠한 통합문서를 Activate할 것입니까? [1 혹은 2]")

    intValue = CInt(strValue)

    

    If intValue = 1 Or intValue = 2 Then

        Workbooks.Item(intValue).Activate

    End If

        

End Sub




코드를 실행하면 아래의 그림과 같이 Activate 할 창을 선택하게 됩니다. 

현재는 창이 2개밖에 없기 때문에 1 혹은 2를 입력해야 합니다. 예제를 보여주기 위해서 통합문서 1과 통합문서 2중 통합문서 2가 통합문서 1 위에 있게끔 만들어놓았습니다. (아래의 그림을 참조하세요.)



1를 입력하고 확인을 누르면 통합문서 1이 활성화되면서 통합문서 2보다 앞서서 화면에 나오게 됩니다. 

이렇게 하는게 Activate(활성화)하는겁니다. 



그럼 이만 줄이겠습니다.

이 글에서는 Workbook의 기능과 매크로상에서 어떻게 사용할 수 있는지 여부를 예제를 통해서 살펴보았습니다. 


이 글이 도움이 되셨으면, 아래의 하트를 눌러주세요.

댓글