본문 바로가기
엑셀 (Excel)/엑셀 매크로 VBA

[Excel 매크로 강좌] Excel 엑셀 매크로 Auto Open 와 Close, Link Open 로 파일, 인터넷 Control 해 보자!

by ★√★ 2021. 2. 24.

안녕하세요, Davey 입니다. 오늘 Posting 할 내용은, Auto Open 와 Close 그리고, Link Open 관련 Macro를 구현해보도록 하겠습니다. 파일을 열거나 닫았을 때 발생하는 이벤트를 적용하는 것입니다.

 

 정말 오랜만에, Excel 매크로 관련 글을 올리게 되었네요. C#, Python이 더 매력적이라서 그런가, 약간 뜸했던건 사실입니다. 근데, 오랜만에 Macro를 하게 됐는데, 이것 또한 정말 파워풀하네요! 정말 요즘에 너무 매력적인 언어가 너무나도 많이 있습니다. 외국어도, 영어, 중국어 이렇게라도 잘하면, 정말 사회에서 최고의 무기를 장착하는 게 아닐까 합니다. 무튼 서론이 길었네요!

 

Excel 엑셀 매크로 Auto Open 와 Close, Link Open 로 파일, 인터넷 Control 썸네일

 

1. Auto_Open()

 : 파일을 열면, 바로 발생하는 이벤트를 만들고 싶을 때, 사용하는 구문으로서, 매크로 모듈을 만들고, Sub 이름을, " Sub Auto_Open()" 설정을 하시면, 파일 오픈 시 이 코드를 실행을 합니다. 

 

- 간단한 예제를 통해서 설명 드리도록 하겠습니다. 일단, Msgbox를 통해서 출력되는 Simple 한 Code를 먼저 보여 드리겠습니다. 

 

========================================================================

 
Sub Auto_Open()

 
                MsgBox "TEST 입니다."

End Sub

========================================================================

 

- 위의 코드를 저장하고, 파일을 닫았다가 다시 열면, 아래 message box가 출력 되는 걸 확인 하실 수 있습니다.

 

 

 

Auto Open 와 Close, Link Open 로 파일 결과 사진

 

- 그럼 여기에서, 좀 더 code를 입혀보도록 하겠습니다. input 구문을 써서, 입력하는 값이 조건에 부합하면 결과 값을 도출하는 code를 짜보도록 하겠습니다. 아래 code 참조 부탁 드립니다. 

 

========================================================================

 

Sub Auto_Open()

 

 If MsgBox("Do you want to open the save file?!", vbYesNo) = vbYes Then

      input01 = InputBox("Please select the file in the files saved before." & Chr(10) & "Davey Blog File")

      '입력창 값을 변수에 넣음

     

              

        If input01 = "" Then Exit Sub                '입력값 없으면 매크로 중단

 

            On Error GoTo 0                                  '에러 검출기능 초기화를 하기 위한 코드

       

             If input01 = "Davey Blog File" Then         '입력값이 "Davey Blog File"이면

                 If input01 =  Then

           

                    MsgBox "Message 출력 했습니다."

              

             Else

                   MsgBox "잘못 입력 하셨습니다. 다시 시작해주세요."                          

                   '입력값이 기존 조건에 부합하지 않으면 출력

         

             End If

       

         End If

       

 

     End If

 

End Sub

 

 

========================================================================

 

- 위 코드를 실행하면, 아래 처음 화면이 나오고, "Yes" 를 하게 되면, 두 번째 사진이 나오고, 여기에서 "Davey Blog File" 를 입력하게 되면, 마지막 화면이 나옵니다. 

 

 

Auto Open 와 Close, Link Open 로 파일 결과 사진

 

 

Auto Open 와 Close, Link Open 로 파일 결과 사진

 

 

Auto Open 와 Close, Link Open 로 파일 결과 사진

 

 

2. Auto_Close()

 : 파일을 닫으면, 바로 발생하는 이벤트를 만들고 싶을 때, 사용하는 구문으로서, 매크로 모듈을 만들고, Sub 이름을, " Sub Auto_Close()" 설정을 하시면, 파일 Close 시 이 코드를 실행을 합니다. 

 

- 위에 Auto_Open 경우와 동일하게, 간단한 예제를 통해서 설명 드리도록 하겠습니다. 일단, Msgbox를 통해서 출력되는 Simple 한 Code를 먼저 보여 드리겠습니다. 대신, 거의 Close 시에는 간단하게 이벤트를 진행하기에, Msgbox 출력하는 Code만 보여 드리겠습니다.

 

========================================================================

 

Sub Auto_Close()

 

   

   MsgBox "하시는 업무는 다 하셨나요?! 수고하셨습니다."        ' Close 시 어떤 메세지를 띄울지 설정함.

 

End Sub

 

========================================================================

 

 - 위의 코드를 실행을 시키면 아래와 같은 결과를 보실 수 있습니다. 즉, Close 시 아래 이벤트가 발생을 합니다.

 

 

Auto Open 와 Close, Link Open 로 파일 결과 사진

 

3. File & Link Open 함수

 : 위의 Auto_Open, Close 시 잘 적용하는 Code가 파일을 열거나, 익스플로어의 어떤 주소로 연결하는 것입니다. 물론, Message 창을 띄워 Notice를 주는 것도 많이 사용하긴 합니다. 하지만 이 사항은 위에서 다뤘으니, File과 익스플로어 연결하는 Code를 매크로로 짜보도록 하겠습니다. 

 

사용할 Code는 아래와 같습니다. 

 

1) 파일을 열때 사용하는 Code

  : Workbooks.Open Filename:= 파일 위치

 

2) 인터넷 주소로 연결하는 Code

  : Set 변수 = CreateObject("InternetExplorer.Application")

    변수 .Navigate 접속 주소

 

- 아래와 같이 간단하게 예제를 들어 설명 드리겠습니다. 결과창은 어차피, 원하시는 결과에 따라 다르므로, 따로, snap shot은 첨부하지 않겠습니다. 직접 실행해보세요. 실행해보시면, 더 기억에 오래 남으실 겁니다. 

 

==================================================================================

 

Private Explorer01 As InternetExplorer

 

Sub File_Link_Open_Content()

   

   Set Explorer01 = CreateObject("InternetExplorer.Application")                      ' 특정 익스플로어 주소를 오픈하는 코드

    Explorer01 .Navigate "www.naver.com"

    Explorer01 .Visible = True

  

  Workbooks.Open Filename:= "C:\TEST_Folder\Davey Blog Management 비법.xls"  ' 파일을 오픈하는 코드

     

End Sub

==================================================================================

 

 이상입니다. 코드만 보면 정말 단순한데, 직접 해볼려고 하면, 갑자기 생각이 안나는 코드 중에 하나 인거 같습니다. 하지만 요즘에는 인터넷이 너무나도 발달해서, 구글에서 검색하면 바로 찾을 수 있어서 엄청 편한 거 같습니다. 그래서 그런지, 잘 안외워지는 부작용도 발생합니다. 어떤 게 더 좋은지는 모르지만, 일단, 구현하는게 목적이니까, 이렇게 하나 하나씩 하면 언젠가는 익숙해지는 날이 올 거라고 생각합니다. 그럼 항상 애기 드리지만, 꼭 실습해보세요! 정말 도움이 많이 되실 겁니다. 그럼 파이팅 하시고, 같이 성장하시죠! 감사합니다. 

  
제 Posting이 조금이나마 정보 전달에 도움이 되셨길 빌며, 되셨다면, 구독, 댓글, 공감 3종 세트 부탁 드립니다. 감사합니다.


[저작권이나, 권리를 침해한 사항이 있으면 언제든지 Comment 부탁 드립니다. 검토 후 수정 및 삭제 조치 하도록 하겠습니다. 그리고, 기재되는 내용은 개인적으로 습득한 내용이므로, 혹 오류가 발생할 수 있을 가능성이 있으므로, 기재된 내용은 참조용으로만 봐주시길 바랍니다. 게시물에, 오류가 있을때도, Comment 달아 주시면, 검증 결과를 통해, 수정하도록 하겠습니다.]

728x90

댓글


// 내부링크를 현재창으로 열기 // Open internal links in same tab