카테고리 없음
[ 엑셀 VBA ] 하이퍼링크(Hyperlink) 확인하기
카루루1007
2024. 9. 9. 13:37
728x90
반응형
지난 블로그에서 하이퍼링크를 추가하는 방법을 다루었습니다.
경우에 따라서는 하이퍼링크가 이미 들어가 있는 셀들을 조작해야 하는 경우가 생깁니다.
그러기 위해서는 하이퍼링크의 존재를 확인해야 하며,
하이퍼링크의 존재를 어떻게 확인하는지 알아보겠습니다.
하이퍼링크(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
여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.
728x90
반응형