더블 클릭 하면 하이퍼링크로 연결하는 방법이 있을까요?

VBA
작성자
호랑이파워
작성일
2022-02-11 17:17
조회
2639
엑셀버전 : 엑셀2016

운영체제 : 윈도우10

안녕하세요.

유튜브에서 vba 셀레니움으로 웹크롤링을 하는 걸 보고

겁도 없이 덤벼들었다가 vba 지옥으로 빠져들고 있는 초보입니다.

 

현재 다음 스포츠 뉴스를 가져오는 걸 연습하고 있습니다

버튼을 누르면 C열에 날짜 / D열에 뉴스 제목이 크롤링이 됩니다.

C열의 마지막 행 날짜가 오늘과 다르면 그 다음날 날짜로 가져오고

제목이 있는 D열에 하이퍼링크를 붙여서 출력이 되고있습니다.

여기서 질문입니다.

 

하이퍼링크를 붙였더니 실수로 잘못 클릭하는 횟수가 많아져서

더블 클릭하면 하이퍼링크로 연결되게 만들고 싶어서 문의 드립니다.

 

 

평상시엔 밑줄(하이퍼링크)이 없는 뉴스 제목인데 그 셀을 더블 클릭하면 설정해둔 하이퍼링크로 연결이 가능하게 만들고 싶습니다.

 

 

감사합니다.

 

# 아래는 제가 어찌저찌 만들어본 코드입니다.

'// 반복문 시작
    For Each ele In driver.FindElementsByClass("link_txt") '.FindElementsByTag("a") '// 지금까지 클릭한 화면에 나온 타이틀을 ele에 저장
 
        Cells(lastrow, "c") = Right(strURL, 8)  '// C열 마지막 행 다음 셀에 url주소 뒤에 8자리를 넣는다.
 
        '// D열마지막 행 다음 셀에 하이퍼링크를 거는데 주소는 타이틀이 들어있는 클랙스 안에 있는 href 값을 넣고 제목엔 타이틀을 넣는다
        Sheet1.Hyperlinks.Add Anchor:=Cells(lastrow, "d"), Address:=ele.Attribute("href"), TextToDisplay:=ele.Text
 
 
    lastrow = lastrow + 1   '//마지막행에 1을 더해서 그 다음 행을 지정
    Next ele
신고
스크랩
공유
회원등급 : 7레벨
포인트 : 541 EP
총질문 : 12 개 (마감율 : 92%)
채택답변 : 0 개
전체 5

  • 2022-02-11 22:08
    채택된 답변

    @호랑이파워

    Cells(lastrow, "E") = ele.Attribute("href")

    D열에는 ele.Text를 넣고 E열에 Sheet1.Hyperlinks.Add Anchor 대신 그냥 일반 텍스트로 url을 입력하시고

    VBE 창에서 Sheet1 더블클릭해서 Worksheet_BeforeDoubleClick에 기사 제목을 더블클릭했을 때 그 셀 옆에 입력된 url을 브라우저로 여는 명령을 추가하면 될 것 같습니다.

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     
      If Intersect(Target, Range("D:D")) Is Nothing Then Exit Sub
      If Target.Count > 1 Then Exit Sub
     
      On Error Goto ErrHandler
      Application.EnableEvents = False
      ThisWorkbook.FollowHyperlink Target.Next
     
    ErrHandler:
      Application.EnableEvents = True
      Cancel = True
     
    End Sub

    대충 이정도 코드가 들어가면 될 것 같고요, 다른 코드가 더 들어가거나 할 때는 적당히 수정하시면 될 것 같네요.

     


    • 2022-02-12 19:05

      @나는나 님  

      정말 감사드립니다.

      알려주신 코드를 사용하여 성공 했습니다!!!!!

      코드를 파악해볼려고 하는데 모르는 부분이 있어서 여쭤봅니다.

       

      d열이 nothing이면 종료

      d열이 1보다 크면 종료

      에러가 생기면 ErrHandler로 이동

      이벤트 발생 : 없음

      ThisWorkbook.FollowHyperlink Target.Next  ' 이부분은 무슨 뜻일까요?

      ErrHandler:

      이벤트 발생 : 있음

      캔슬 = 있음  ' 이부분도 무슨 의미인지 알고싶습니다.

       

       

      정말 다시한번 감사드립니다.

       


      • 2022-02-12 20:02

        @호랑이파워 님 코드에 주석으로 설명을 달아드릴까 하다가 다 아시는 내용일지도 모르는데 너무 막 아는척 한다고 생각하실까봐 말았습니다. ^^

        아래 추가 설명을 달았으니 구문 이해에 도움이 되셨으면 좋겠습니다.

        '//더블클릭한 셀(Target)과 D열의 교집합이 없으면 종료. 즉, D열이 아닌 곳을 더블클릭하면 종료
          If Intersect(Target, Range("D:D")) Is Nothing Then Exit Sub
         
        '//Target의 셀 갯수가 1보다 클 때(여러 셀을 영역 선택했을 때) 종료
          If Target.Count > 1 Then Exit Sub
         
        '//에러 발생시 ErrHandler로 이동 (D열의 빈 셀을 더블클릭 하거나 E열에 URL이 없는 경우 
        링크를 열 수 없어 에러 발생하면 다음 명령 구문들은 무시하고 ErrHandler 라벨로 이동) 
          On Error Goto ErrHandler
         
        '//시트 내에서 이벤트가 발생할 때 무한루프가 생겨 엑셀 다운되는 것 방지하기 위해 한 번만 
        명령을 실행하라고 자동 Events를 중지시킴
          Application.EnableEvents = False
         
        '//<strong>ThisWorkbook.FollowHyperlink "URL"</strong> 은 해당 URL을 기본 브라우저로 여는 명령입니다.
        Target의 타입이 Range이므로 Cell.Next의 의미는 바로 오른 쪽 셀 즉, 여기서는 Target이 
        D3면 Target.Next는 E3를 말합니다. 그래서 D3를 더블클릭하면 E3에 입력된 URL을 브라우저로 
        여는 명령입니다.
          ThisWorkbook.FollowHyperlink Target.Next
         
        '//에러가 발생했을 때 점프해서 이곳으로 이동함
        ErrHandler:
         
        '//이벤트를 한 번만 실행하라고 꺼놨던 걸 다시 복원시켜줘야 합니다. 이걸 빠트리면 다음에는 
        더블클릭해도 아무런 동작을 안 합니다. 이벤트가 꺼져있기 때문이지요. 엑셀 전체에 영향을
        주는 기본값을 변경한 것이기 때문에 반드시 기본값으로 복원해줘야 합니다. 
        만약 중간에 에러가 발생하거나 사용자가 임의로 프러시저를 중단시켰을 때 
        Application.EnableEvents = True가 실행되지 않은 상태라면 VBE 직접 실행창에 
        아래 명령을 입력 후 엔터로 실행시켜줘야 다시 기본값인 True 상태가 됩니다.
          Application.EnableEvents = True
         
        '//셀을 더블클릭하면 그 셀에 커서가 깜빡이면서 입력모드가 되는데 Cancel이 입력모드를
        해제시킵니다 ESC처럼요. 이 구문을 주석처리한 상태로 D열의 셀을 더블클릭하면 브라우저에
        해당 기사를 열고 엑셀에는 해당 셀에 커서가 깜빡거리는 상태로 남게 됩니다.
          Cancel = True

         

         


        • 2022-02-13 00:56

          @나는나 님 정말 감사합니다.

           

          이제 VBA를 조금씩 배우고 있는데 책에도 나와있지 않고, 검색해도 못 찾을 때

          질문을 드렸는데 주석으로 상세히 알려주신 덕분에 정말 큰 도움이 되었습니다.

          즐거운 주말 보내시길 바랍니다.


  • 2024-05-28 14:20

    @호랑이파워 님 저도 감사드립니다 🙂


전체 16,933
번호 카테고리 제목 작성자 작성일 추천 조회
알림
[📚진짜쓰는 실무엑셀] 2024년 엑셀 공부, 이 책 한권으로 마스터하세요! (291)
오빠두엑셀 | 2022.02.03 | 추천 554 | 조회 845188
오빠두엑셀 2022.02.03 554 845188
공지사항 문서서식
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (197)
오빠두엑셀 | 2021.10.28 | 추천 304 | 조회 31516
오빠두엑셀 2021.10.28 304 31516
74618 VBA
New 유저폼에 바코드스캔시 입력속도 개선방법?
땡이 | 11:36 | 추천 0 | 조회 14
땡이 11:36 - 14
74616 함수/공식
New Rawdata 첨부파일 (3)
HIHUGO | 10:48 | 추천 0 | 조회 27
HIHUGO 10:48 - 27
74604 문서서식
New 간트차트 조건부서식 이용 문의 엑셀파일첨부파일 (3)
배고픈짐승 | 2024.10.30 | 추천 0 | 조회 54
배고픈짐승 2024.10.30 - 54
74599 함수/공식
New 이런 경우에는 무슨 함수를 써야할까요..? (2)
iwnqn | 2024.10.30 | 추천 0 | 조회 78
iwnqn 2024.10.30 - 78
74598 문서서식
New 엑셀 유효성 검사 뛰어 쓰기 문제 엑셀파일 (2) 답변완료
퉁퉁이 | 2024.10.30 | 추천 0 | 조회 54
퉁퉁이 2024.10.30 - 54
74592 함수/공식
New 여러 값들 중에서 원하는 값을 찾고 싶어요 도와주세요! 첨부파일 (7) 답변완료
저도해볼게요 | 2024.10.30 | 추천 0 | 조회 78
저도해볼게요 2024.10.30 - 78
74589 구글시트
New 한셀에 줄바꿈으로 있는 여러데이터를 한셀에 한데이터 들어가게끔 일괄로 하고 싶습니다 첨부파일 (4) 답변완료
스톤스톤 | 2024.10.30 | 추천 0 | 조회 50
스톤스톤 2024.10.30 - 50
74585 VBA
New UserForm 크기질문 첨부파일 (5)
땡이 | 2024.10.30 | 추천 0 | 조회 63
땡이 2024.10.30 - 63
74583 함수/공식
New XLOOKUP 함수의 다중조건을 잘 모르겠습니다 첨부파일 (6)
qlcc**** | 2024.10.30 | 추천 0 | 조회 74
qlcc**** 2024.10.30 - 74
74582 함수/공식
New filter 함수에 대해 문의드립니다 (5)
김은상 | 2024.10.30 | 추천 0 | 조회 63
김은상 2024.10.30 - 63
74581 구글시트
New 구글폼 견적서 자동화 관련, 폼에서 입력된 이미지 파일을 견적서에 넣는 방법 좀 알려주시면 감사하겠습니다.
| 2024.10.30 | 추천 0 | 조회 51
2024.10.30 - 51
74572 차트/그래프
New 꺽은선 그래프의 레이블이 원복이 됩니다. 첨부파일 (3)
구리구리이 | 2024.10.30 | 추천 0 | 조회 59
구리구리이 2024.10.30 - 59
74570 함수/공식
New 배수 금액으로 순번 정하기 알려 주세요...ㅠ 엑셀파일첨부파일 (3) 답변완료
서기 | 2024.10.30 | 추천 0 | 조회 54
서기 2024.10.30 - 54
74566 함수/공식
New 두개의 열에 입력된 데이터를 순서 바꿔서 입력으로 중복일 때 골라내는 법 엑셀파일첨부파일 (1)
문과적남자 | 2024.10.30 | 추천 0 | 조회 57
문과적남자 2024.10.30 - 57
74564 함수/공식
New 각 열별로 합 구하는 방법 첨부파일 (2) 답변완료
라핼 | 2024.10.30 | 추천 0 | 조회 73
라핼 2024.10.30 - 73
74563 함수/공식
New 필터 적용시 중복값 제외 카운트 되는 법 좀 알려주세요 ㅠㅠ 첨부파일 (1)
정재욱 | 2024.10.30 | 추천 0 | 조회 72
정재욱 2024.10.30 - 72
74558 함수/공식
New 문자와 숫자가 섞여있는 열의 합계와 평균을 구하는 방법을 알려주세요!! 첨부파일 (9)
침착해 | 2024.10.30 | 추천 0 | 조회 76
침착해 2024.10.30 - 76
74556 함수/공식
New 세트상품 마진율 구하기 (2)
ek02 | 2024.10.30 | 추천 0 | 조회 63
ek02 2024.10.30 - 63
74543 기능/도구
New 문자와 숫자 혼합된 셀에서 숫자만 따로 따올수 있는 기능이 있을까요? 첨부파일 (4)
야만용사 | 2024.10.29 | 추천 0 | 조회 99
야만용사 2024.10.29 - 99
74542 기능/도구
New 엑셀 백분율 숫자로변경 (3)
rarara | 2024.10.29 | 추천 0 | 조회 90
rarara 2024.10.29 - 90
74540 함수/공식
New ★데이터 가공★ 잘못된 데이터를 올바른 데이터로 변환하는 과정을 도와주세요 ㅠㅠ 엑셀파일첨부파일 (10)
| 2024.10.29 | 추천 0 | 조회 125
2024.10.29 - 125
74539 함수/공식
New 안녕하세요 INDEX, MATCH 다중조건 질문드립니다! 엑셀파일 (3)
gys**** | 2024.10.29 | 추천 0 | 조회 96
gys**** 2024.10.29 - 96
74533 함수/공식
New 산출집계시트에 항목을 산출서에서 가져오고싶어요 엑셀파일 (3)
Moto | 2024.10.29 | 추천 0 | 조회 90
Moto 2024.10.29 - 90
74532 문서서식
New [질문] 전체 행 또는 열을 선택 후 특정 셀만 선택 제외 시키기 첨부파일 (2)
ViVaViva | 2024.10.29 | 추천 0 | 조회 78
ViVaViva 2024.10.29 - 78
74530 함수/공식
New Lookup 함수 오류에 관한 문의 엑셀파일첨부파일 (6) 답변완료
TMOH | 2024.10.29 | 추천 0 | 조회 93
TMOH 2024.10.29 - 93
74528 함수/공식
New 다중조건 만족하는 결과를 가져오고싶습니다 도와주세요 ㅠㅠ 엑셀파일첨부파일 (8)
말하지마00 | 2024.10.29 | 추천 0 | 조회 101
말하지마00 2024.10.29 - 101
74526 함수/공식
New 열과 행으로 정렬된 데이터를 같은 행으로 표시하려고 합니다. 엑셀파일 (2) 답변완료
깐부 | 2024.10.29 | 추천 0 | 조회 78
깐부 2024.10.29 - 78
74521 함수/공식
New B시트에서 A시트 항목 제품 및 수량 가져오는법좀 부탁드려요 첨부파일 (2)
Moto | 2024.10.29 | 추천 0 | 조회 79
Moto 2024.10.29 - 79
74520 VBA
New VBA 런타임 오류 관련 질문 첨부파일 (1)
angelriun | 2024.10.29 | 추천 0 | 조회 61
angelriun 2024.10.29 - 61
74518 함수/공식
New 두 시트에서 교집합 찾기 (3)
우파루파 | 2024.10.29 | 추천 0 | 조회 89
우파루파 2024.10.29 - 89