컴퓨터 공부/엑셀 & VBA

[엑셀vba] 열려있는 인터넷 익스플로러를 컨트롤 해보자

도 박사 2020. 10. 23. 16:24
반응형

이미 열려있는 익스플로러를 컨트롤하고 싶다.

 

그래서 구글링을 통해 배워봤다.

 


1. 준비

 

VB편집기에서 참조 추가하기

VB편집기에서 Microsoft Internet Controls를 참조 추가하면 준비 끝

 


2. 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    Dim IE As SHDocVw.ShellWindows
    Dim wanna_IE As SHDocVw.InternetExplorer
    
    Set IE = New SHDocVw.ShellWindows
    
    For Each wanna_IE In IE
        
        If wanna_IE.LocationName = "Naver" Then
        
            MsgBox "네이벼 열려있음", vbInformation, "확인"
            Exit Sub
            
        End If
        
    Next wanna_IE
    
End Sub
cs

 

열려있는 익스플로러 중에 네이버라는 이름을 가진 창이 있으면 메세지 박스를 표시하고 함수를 종료하는 코드.

 

F8 키로 한 단계씩 전진하면서 실행 해보았다.

 

IE에 담긴 값

 

Set IE = NEW SHDocVw.ShellWindows 구문으로 IE 변수에 익스플로러와 관련된 데이터를 넣었다.

 

인터넷 익스플로러를 열지 않은 상태이지만 Item1로 데이터가 들어가 있음을 확인했다.

 

저 Item1을 열어보니 파일탐색기 정보가 들어있었다.

 

같은 익스플로러라서 파일 탐색기도 가져오는 듯 ㅎㅎ

폴더와 인터넷 익스플로러 두 가지만 데이터를 끌고오지 일반 응용프로그램, 다른 브라우저 정보는 데리고 오지 않았다.

 

 

 

인터넷 익스플로러 탭으로 구글과 네이버 열어 둔 상태
새 창으로 다음을 열었다

코드가 잘되는지 테스트하기 위해 인터넷 익스플로러에 구글과 네이버, 다음을 열어두었다.

 

 

3개의 아이템이 생성되었다
Item1. 구글

 

Item2. 네이버

 

Item3. 다음

 

LocationName에는 인터넷 익스플로러 창에 표시되는 이름

LocationURL은 접속된 URL 주소가 저장되어 있었다.

 

이 데이터를 바탕으로 내가 원하는 탭이나 창을 골라내어 인터넷을 컨트롤 할 수 있게 되었다.

 

여기서 쓰인 코드는 네이버 창이 있으면 메세지 팝업창을 띄우고 매크로를 종료하도록 만들었다.

 

실행 결과는 아주 만족스러웠다.

실행 결과

 


 

반응형