EXCEL VBA

[ 엑셀 VBA ] VBA로 하이퍼링크(Hyperlinks) 추가하기

카루루1007 2024. 9. 6. 13:53
728x90
반응형

하이퍼링크는 

문서 내의 다른 위치, 웹사이트, 파일 또는 이메일 주소 등으로 연결되는 텍스트나 이미지 같은 것을 말합니다.

엑셀에서 하이퍼링크에는 보통 밑줄이 그어져 있고,

파란색 글자로 표시가 됩니다.

하이퍼링크를 클릭하면 연결된 위치로 이동을 합니다.

 

 하이퍼링크(HyperLink) 만들기

 

특정 셀에 다음(www.daum.net)으로 연결되는 하이퍼링크를 만드는 코드입니다.

Sub 하이퍼링크()
    Dim ws As Worksheet
    
    Set ws = ActiveSheet
    
    ws.Range("C4").Hyperlinks.Add anchor:=Range("C4"), Address:="https://www.daum.net", TextToDisplay:="다음", ScreenTip:="다음으로이동"
End Sub

 

위 코드는 

현재 활성화된 워크시트의 → C4 셀에 → 하이퍼링크를 추가합니다.

anchor은 대상이 되는 셀입니다.

address는 연결될 링크입니다.(웹페이지의 경우 모든 주소를 써주어야 합니다.)

TextToDisplay는 화면에 표시되는 텍스트입니다.

ScreenTip은 텍스트에 마우스를 가져다 댔을 때 나타나는 툴팁입니다.

 

728x90

아래 그림에서 빨간색 네모 부분이 TextToDisplay이고

파란색 네모 부분이 ScreenTip입니다.

 

 Add 함수의 Anchor 속성

 

만약 아래 코드와 같이 앞에는 Range("C4")를 설정하고

anchor 속성으로 Range("C3")를 설정하면 어떻게 될지 확인해 보겠습니다.

Sub 하이퍼링크()
    Dim ws As Worksheet
    
    Set ws = ActiveSheet
    
    ws.Range("C4").Hyperlinks.Add anchor:=Range("C3"), Address:="https://www.daum.net", TextToDisplay:="다음", ScreenTip:="다음으로이동"
End Sub

위 코드를 실행하면

C4셀에는 아무런 결과가 나타나지 않고

C3셀에 텍스트와 링크가 생성이 됩니다.

 

anchor에 설정된 셀이 우선합니다.

 

 Cells() 함수 사용

 

Cells() 함수를 사용할 수도 있습니다.

Sub 하이퍼링크()
    Dim ws As Worksheet
    
    Set ws = ActiveSheet
    
    ws.Range("C11").Hyperlinks.Add anchor:=Cells(4, 3), Address:="https://www.daum.net", TextToDisplay:="다음", ScreenTip:="다음으로이동"
End Sub

위 코드를 실행하면 Cells(4, 3) 

즉, C4셀에 링크가 생성이 됩니다.

 

반응형

 범위와 함께 사용할 경우

 

그럼 만약 아래 코드와 같이

범위를 지정하면 어떻게 될지 확인해 보겠습니다.

Sub 하이퍼링크()
    Dim ws As Worksheet
    
    Set ws = ActiveSheet
    
    ws.Range("A1:C4").Hyperlinks.Add anchor:=Range("A1:C4"), Address:="https://www.daum.net", TextToDisplay:="다음", ScreenTip:="다음으로이동"
End Sub

 

위 코드의 실행결과는 다음과 같습니다.

예상과 다르게 A1셀에만 하이퍼링크 텍스트가 보입니다.

하지만 A1 ~ C4범위에 모두 하이퍼링크가 있습니다.

눈에 보이지 않지만, 빈 셀에 하이퍼링크가 연결되어 있고 

텍스트는 A1셀에만 나타납니다.

왜 그런지는 모르겠지만....생각지 못한 상황입니다.

 

만약 범위 전체에 링크 텍스트를 생성하고 싶다면

For문을 사용해야 합니다.

Sub 하이퍼링크()
    Dim ws As Worksheet
    
    Set ws = ActiveSheet
    
    For i = 1 To 4
        For j = 1 To 4
            ws.Range("A1:C4").Hyperlinks.Add anchor:=Cells(i, j), Address:="https://www.daum.net", TextToDisplay:="다음", ScreenTip:="다음으로이동"
        Next j
    Next i
End Sub

 

여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.

엑셀 공부하기
VBA 공부하기

 

728x90
반응형