聰明不如鈍筆
총명불여둔필
assignment Common Sense

엑셀 셀에서 인터넷주소(URL) 추출하기

access_time 2018.07.03 14:35


살다 보면 마이크로소프트(MS) 엑셀 파일에서 인터넷주소(URL)를 추출해야 할 때가 있습니다. 그러니까 이미 하이퍼링크를 건 데이터가 잔뜩 있는 상태에서 URL만 뽑아내야 하는 일이 있을 수 있다는 뜻입니다. (사실 저도 그럴 일이 없을 줄 알았는데 요즘 계속 경험하고 있습니다.) 자료가 얼마 되지 않으면 링크를 직접 눌러서 붙여 넣어도 되지만 자료가 많으면 '자동화'하는 편이 낫습니다.


이때 도움을 받을 수 있는 건 '비주얼 베이직'입니다. 엑셀에는 'VBA(Visual Basic for Application)'라고 부르는 프로그래밍 언어가 들어 있습니다. VBA를 쓰면 각종 반복 업무를 자동화할 수 있습니다. 당연히 URL을 자동으로 추출하는 것도 가능합니다.


이제부터 드리는 설명은 '엑셀 2016' 기준입니다.


엑셀에서 VBA를 켜시려면 Alt+F11을 누릅니다. 그러면 새 창이 뜨는데 여기서 '실행 - 매크로 실행'을 선택하면 아래 같은 창이 나타납니다. 여기서 '매크로 이름'에 적당한 걸 넣으시고 만들기를 누릅니다.



그러면 코드 입력창이 뜰 텐데 'sub (매크로 이름 여기서는 URL) ()', 'End Sub' 사이에 아래 코드를 붙여 넣습니다.


On Error Resume Next

Dim rngCell As Range

Dim lnkLink As Hyperlink


For Each lnkLink In ActiveSheet.Hyperlinks

With lnkLink.Parent

.Offset(0, 1) = .Hyperlinks.Item(1).Address

End With

Next lnkLink



입력을 마치셨으면 창을 닫고 다시 '매크로 - 매크로 실행'으로 가셔서 위에서 만든 매크로를 실행하시면 됩니다.



이때 주의하셔야 할 건 하이퍼링크가 있는 바로 옆 열에 주소를 기록한다는 점입니다. 그러니 그 열(예컨대 링크가 A열에 있다면 B열)은 데이터를 비워주시는 게 좋습니다. 아니면 .Offset(0, 1) = .Hyperlinks.Item(1).Address 이 줄에서 (0, 1)에서 1을 다른 숫자로 바꾸시면 됩니다. 그러니까 바로 옆이 아니라 그다음 열이 편하시면 (0, 2)입니다.


혹시 저처럼 갑자기 이런 기능이 필요한 분이 계실지 몰라 올려 놓습니다.

Tags  , , ,

댓글, 0

account_circle
vpn_key
web

security

mode_edit
Common Sense | 카테고리 다른 글 더 보기