본문 바로가기
office/excel

엑셀 특정 셀에 작성된 주소를 입력받고 웹브라우저 컨트롤에 웹페이지 나타내기

by 개코 - 개발과 코딩 2021. 4. 29.

엑셀의 특정 셀에 인터넷 주소를 입력하고 버튼을 클릭하여 웹브라우저 컨트롤에 웹페이지를 나타내게 한다면 이것도 이것 나름대로 편할 것이다. 크롬이나 엣지같은 웹브라우저까지는 아니겠지만 나름 비슷한 기능을 만들 수 있다. 추가되는 기능은 셀을 선택하는 메서드를 사용하면 된다.

 

엑셀 VBA 에서 셀의 값을 가져오는 방법

vba를 사용하여 엑셀의 특정셀의 값을 가져오는 방법은 여러가지가 있겠지만 아래의 5가지가 대표적이다.

괄호안의 것은 지정값을 나타낸다.

엑셀의 셀의 인덱스는 1부터 시작하기 때문에 B2 위치의 행과 열은 2,2 가 된다.

자세한 내용은 다음으로 미루지만, 자세히 보면 그리 어려운 구문도 아닐 것이다.

ActiveSheet.Range("B2").Value
ActiveSheet.Cells(2, 2).Value
Sheets("Sheet1").Cells(2, 2).Value
Sheets(1).Cells(2, 2).Value
Sheet1.Range("B2").Value

 

프로시저를 변경하기

이전 포스팅에서 버튼을 누르면 웹브라우저컨트롤에 cnn 웹페이지가 나타나도록 하였다.

 

>>> 엑셀 버튼 클릭하여 웹브라우저 컨트롤에 웹페이지 띄우기 <<<

 

변경할 부분은 .Navigate 부분이 된다.

강제로 cnn 웹페이지가 나타나도록 강제로 설정을 했지만, 이 부분을 지정한 셀의 주소 문자열을 가져와서 설정한다면 내가 원하는 인터넷 주소로 웹브라우저에 웹페이지가 나타날 것이다.

셀을 선택하는 방법은 위의 언급했지만 다시 한번 살펴보도록 하자.

' ----------
' 변경 전
' ----------
.Navigate "https://www.cnn.com"

' ----------
' 변경 후
' 아래 중 아무것나 하나 선택해서 사용하면 된다.
' ----------
.Navigate Sheet1.Range("B2").Value
.Navigate ActiveSheet.Range("B2").Value
.Navigate ActiveSheet.Cells(2, 2).Value
.Navigate Sheets("Sheet1").Cells(2, 2).Value
.Navigate Sheets(1).Cells(2, 2).Value

 

vba 전체코드와 테스트

위의 링크로 이전 포스팅을 봤다면 이해가 빠를 것이다.

전체 매크로 코드롤 보도록 하자.

중요한 부분은 .Navigate 부분이다.

여러가지 방식으로 셀에 접근하여 주소값을 가져오도록 하고 있다.

Sub 단추6_Click()

    Dim vWebBrowser As InternetExplorer
    
    Set vWebBrowser = Sheet1.WebBrowser1
    
    With vWebBrowser
    
        '.Navigate Sheet1.Range("B2").Value
        '.Navigate ActiveSheet.Range("B2").Value
        '.Navigate ActiveSheet.Cells(2, 2).Value
        '.Navigate Sheets("Sheet1").Cells(2, 2).Value
        .Navigate Sheets(1).Cells(2, 2).Value
 
        Wait_Browser vWebBrowser
    
    End With
    
End Sub
 
Sub Wait_Browser(Browser As InternetExplorer, Optional t As Integer = 1)
 
    While Browser.Busy Or Browser.ReadyState <> 4
        DoEvents
    Wend
     
    Application.Wait DateAdd("s", t, Now)
 
End Sub

B2 셀에 인터넷 주소를 입력한 후 탐색하기 버튼을 클릭하면 웹브라우저 컨트롤에 웹페이지를 나타나도록 하였다.

네이버와 다음으로 테스트를 해 보았다.

잘 나오는 것을 알 수 있다.

특정 셀에 인터넷 주소와 웹브라우저 컨트롤
특정 셀에 인터넷 주소와 웹브라우저 컨트롤

반응형

댓글