엑셀 VBA에서 Hyperlinks 개체는 워크시트 내에서 특정 셀이나 개체(버튼, 이미지 등)에 하이퍼링크를 추가하거나 관리하는 데 사용됩니다.
즉, 웹사이트, 이메일, 다른 시트 또는 파일로 이동하는 링크를 생성할 수 있습니다.
1. 기본 문법 (Add 메서드)
ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), Address:="https://example.com", TextToDisplay:="클릭하세요"
|
- Anchor → 하이퍼링크를 추가할 위치
- Address → 링크할 주소 (웹, 이메일, 파일, 시트 등)
- TextToDisplay → 셀에 표시할 텍스트
- SubAddress → 같은 파일 내 특정 시트 또는 셀로 이동
- ScreenTip → 마우스를 올리면 표시되는 설명
2. 웹사이트로 이동하는 하이퍼링크 추가
Sub 웹사이트_하이퍼링크()
ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), _
Address:="https://www.google.com", _
TextToDisplay:="구글 바로가기"
End Sub
|
📌 A1 셀에 "구글 바로가기" 하이퍼링크 추가 (클릭 시 구글로 이동)
3. 이메일 하이퍼링크 추가
Sub 이메일_하이퍼링크()
ActiveSheet.Hyperlinks.Add Anchor:=Range("A2"), _
Address:="mailto:example@example.com", _
TextToDisplay:="이메일 보내기"
End Sub
|
📌 A2 셀을 클릭하면 example@example.com으로 이메일 작성 창 열림
4. 파일 열기 하이퍼링크 추가
Sub 파일_하이퍼링크()
ActiveSheet.Hyperlinks.Add Anchor:=Range("A3"), _
Address:="C:\Users\사용자\Desktop\문서.xlsx", _
TextToDisplay:="문서 열기"
End Sub
|
📌 A3 셀을 클릭하면 "문서.xlsx" 파일이 열림
📌 상대 경로 사용 가능 → 같은 폴더 내 파일: "문서.xlsx"
5. 다른 시트의 특정 셀로 이동
Sub 시트_하이퍼링크()
ActiveSheet.Hyperlinks.Add Anchor:=Range("A4"), _
Address:="", SubAddress:="Sheet2!B5", _
TextToDisplay:="Sheet2의 B5로 이동"
End Sub
|
📌 A4 셀을 클릭하면 "Sheet2"의 B5 셀로 이동
📌 Address:="" → 같은 파일 내 이동이므로 주소 없음
6. 현재 시트에서 특정 셀로 이동
Sub 현재시트_셀로_이동()
ActiveSheet.Hyperlinks.Add Anchor:=Range("A5"), _
Address:="", SubAddress:="A20", _
TextToDisplay:="A20으로 이동"
End Sub
|
📌 A5 셀을 클릭하면 현재 시트의 A20 셀로 이동
7. 마우스 오버 시 설명 추가 (ScreenTip)
Sub 하이퍼링크_설명추가()
ActiveSheet.Hyperlinks.Add Anchor:=Range("A6"), _
Address:="https://www.microsoft.com", _
TextToDisplay:="마이크로소프트", _
ScreenTip:="마이크로소프트 홈페이지로 이동"
End Sub
|
📌 A6 셀에 하이퍼링크 추가 (마우스를 올리면 '마이크로소프트 홈페이지로 이동' 표시)
8. 하이퍼링크 제거
📌 특정 셀의 하이퍼링크 삭제
Sub 특정셀_하이퍼링크_삭제()
Range("A1").Hyperlinks.Delete
End Sub
|
📌 A1 셀의 하이퍼링크만 삭제 (텍스트는 그대로 남음)
📌 워크시트 내 모든 하이퍼링크 삭제
Sub 모든_하이퍼링크_삭제()
ActiveSheet.Hyperlinks.Delete
End Sub
|
📌 현재 시트의 모든 하이퍼링크 삭제
📌 워크북 내 모든 하이퍼링크 삭제
Sub 전체시트_하이퍼링크_삭제()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Sheets
ws.Hyperlinks.Delete
Next ws
End Sub
|
📌 모든 시트에서 하이퍼링크 삭제
9. 하이퍼링크 자동 감지 끄기
엑셀에서는 자동으로 하이퍼링크를 감지하여 추가하는 경우가 있습니다. 이를 비활성화하려면:
Sub 자동_하이퍼링크_비활성화()
Application.AutoCorrect.AutoFillFormulasInLists = False
End Sub
|
📌 자동 하이퍼링크 기능 비활성화
10. 하이퍼링크 찾기 및 목록 출력
Sub 하이퍼링크_목록_출력()
Dim rng As Range, cell As Range
Dim rowNum As Integer
rowNum = 1
For Each cell In ActiveSheet.UsedRange
If cell.Hyperlinks.Count > 0 Then
Cells(rowNum, 2).Value = cell.Value ' 표시된 텍스트
Cells(rowNum, 3).Value = cell.Hyperlinks(1).Address ' 링크 주소
rowNum = rowNum + 1
End If
Next cell
End Sub
|
📌 현재 시트의 모든 하이퍼링크 목록을 B열(텍스트)과 C열(주소)에 출력
📝 정리
기능
|
VBA 코드
|
웹사이트 하이퍼링크 추가
|
Address:="https://www.google.com"
|
이메일 하이퍼링크 추가
|
Address:="mailto:example@example.com"
|
파일 열기 하이퍼링크 추가
|
Address:="C:\파일경로.xlsx"
|
다른 시트의 특정 셀로 이동
|
SubAddress:="Sheet2!B5"
|
현재 시트에서 특정 셀로 이동
|
SubAddress:="A20"
|
마우스 오버 시 설명 추가
|
ScreenTip:="설명"
|
특정 셀의 하이퍼링크 삭제
|
Range("A1").Hyperlinks.Delete
|
시트의 모든 하이퍼링크 삭제
|
ActiveSheet.Hyperlinks.Delete
|
전체 워크북의 하이퍼링크 삭제
|
For Each ws In ActiveWorkbook.Sheets : ws.Hyperlinks.Delete : Next ws
|
하이퍼링크 목록 출력
|
cell.Hyperlinks(1).Address
|
🔥 VBA의 Hyperlinks를 활용하면 쉽게 링크를 추가하고 관리할 수 있습니다! 🚀