카테고리 없음

[ 엑셀 VBA ] 하이퍼링크(Hyperlink) 확인하기

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

지난 블로그에서 하이퍼링크를 추가하는 방법을 다루었습니다.

☞ VBA로 하이퍼링크(Hyperlinks) 추가하기

 

경우에 따라서는 하이퍼링크가 이미 들어가 있는 셀들을 조작해야 하는 경우가 생깁니다.

그러기 위해서는 하이퍼링크의 존재를 확인해야 하며,

하이퍼링크의 존재를 어떻게 확인하는지 알아보겠습니다.

 

 하이퍼링크(Hyperlink)가 있는지 확인하는 방법

 

특정 셀 또는 범위에 하이퍼링크가 있는 지 확인하는 방법은

해당 셀 또는 범위를 대상으로 하이퍼링크의 개수를 세면 됩니다.

 

우선 아래 그림과 같이 기본 데이터가 있습니다.

B3, C6, D3, D9 셀에 하이퍼링크가 연결되어 있습니다.

 

반응형

먼저 B3셀에 하이퍼링크가 있는지 확인하는 코드입니다.

Sub 하이퍼링크확인()

    Dim link As Range
    
    Set link = Range("B3")
    
    If link.Hyperlinks.Count > 0 Then
        Debug.Print link.Address(False, False) & "에는 하이퍼링크가 있습니다."
    Else
        Debug.Print link.Address(False, False) & "에는 하이퍼링크가 없습니다.."
    End If
    
End Sub

위 코드를 실행하면 해당 셀에 하이퍼링크가 있는 지 확인할 수 있습니다.

 

다음은 선택한 범위에 하이퍼링크가 있는 지 확인하는 코드입니다.

Sub 하이퍼링크확인()

    Dim link As Range
    
    Set link = Selection
    
    For Each cell In link
        If cell.Hyperlinks.Count > 0 Then
            Debug.Print cell.Address(False, False) & "에는 하이퍼링크가 있습니다."
        Else
            Debug.Print cell.Address(False, False) & "에는 하이퍼링크가 없습니다."
        End If
    Next cell
    
End Sub

선택된 범위의 셀을 하나씩 검사하여 하이퍼링크가 있는 지 확인을 하는 코드입니다.

결과는 아래와 같습니다.

 

아래와 같이 하이퍼링크가 있는 셀의 주소만 출력도 가능합니다.

Sub 하이퍼링크확인()

  Dim rng As Range, cell As Range
  Set rng = Selection

  Dim hyperlinkedCells As String


  For Each cell In rng
    If cell.Hyperlinks.Count > 0 Then
      hyperlinkedCells = hyperlinkedCells & cell.Address(False, False) & ", "
    End If
  Next cell

  If Len(hyperlinkedCells) > 0 Then
    Debug.Print "선택된 범위 내에 하이퍼링크가 있습니다: " & Left(hyperlinkedCells, Len(hyperlinkedCells) - 2)
  Else
    Debug.Print "선택된 범위 내에 하이퍼링크가 없습니다."
  End If

End Sub

 

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

 

 시트 전체의 하이퍼링크 확인하기

 

Sub 하이퍼링크확인()

    Dim ws As Worksheet
    Dim hyperlink As hyperlink

    Set ws = ActiveSheet

    For Each hyperlink In ws.Hyperlinks
        Debug.Print "하이퍼링크 주소: " & hyperlink.Address
        Debug.Print "하이퍼링크 텍스트: " & hyperlink.TextToDisplay
        Debug.Print "하이퍼링크 셀 주소: " & hyperlink.Range.Address
    Next hyperlink

End Sub

위 코드를 실행하면 시트 전체의 하이퍼링크를 확인할 수 있습니다.

 

728x90

 해당 셀에 있는 하이퍼링크 정보 확인

 

해당 셀에 하이퍼링크가 있다면

어디로 연결되어 있는 지 확인하는 코드입니다.

Sub 하이퍼링크확인()

  Dim cell As Range
  Dim link As Hyperlink
  
  Set cell = Range("B3")

  If cell.Hyperlinks.Count > 0 Then
    For Each link In cell.Hyperlinks
      MsgBox "주소: " & link.Address & vbNewLine _
             & "설명: " & link.ScreenTip
    Next link
  Else
    MsgBox cell.Address & "에는 하이퍼링크가 없습니다."
  End If

End Sub

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

엑셀 공부하기
VBA 공부하기

 

728x90
반응형