한글(HWP)로 된 문서를 엑셀에 붙여넣는 작업을 매크로를 이용해 자동화하기

VBA
작성자
화가
작성일
2020-10-23 14:20
조회
1429

사무실에서 한글(HWP)로 된 문서 중에 특정 부분을 발췌해서 엑셀에 붙여넣는 작업을 하고 있습니다.

 

한글로 된 문서가 특정 형식으로 반복되는 내용(신문기사를 제목 - 출처 - 세부내용 - 참고내용 으로 정리한 문서) 이어서

 

단순 반복이 지겹고 시간도 단축시킬 겸 VBA를 활용해 자동화하려고 합니다.

(한글 문서를 제가 읽고 발췌한 부분을 복사합니다)

 

구체적으로 문서의 세부내용 복사하여 엑셀에 붙여 넣으면

 

한글의 서식이 그대로 적용되는 점과 세부내용이 두문단 이상일 경우 하나의 셀이 아니라 두개의 셀로 나뉘어져서 들어가는

 

문제가 있는데 해결이 되지 않습니다.

 

수작업할 때는 붙여넣으려는 셀에 F2를 눌러서 붙여넣기 하면 해결되는 문제였는데

 

Activecell.PasteSpecial 를 이용해서 어떻게든 해보려고 했는데 안되는 것 같습니다.

 

방법 좀알려주세요 T T

 

 

전체 3

  • 2020-10-23 20:36

    안녕하세요? 🙂

    작성해주신 질문이 잘 이해되질 않습니다..^^;

    1. 한글 Hwp -> 엑셀 붙여넣기를 완전 자동화하고 싶단 말씀이신가요?

    또는

    2. 한글에서 엑셀 붙여넣기는 매뉴얼로 하되, 붙여넣기 시 셀 병합 문제가 있어서 F2 입력 -> 붙여넣기 하는 작업을 자동화 하고 싶단 말씀이신가요?


    • 2020-10-23 22:54

      예 두번째입니다


      • 2020-10-27 04:26

        아래 명령문을 사용하면 바로 해결되실 듯 합니다.

        아래 명령문 추가 후 Auto_Open 명령문 실행 -> Ctrl + Shift + V 로 붙여넣기 해보세요.

        이후 엑셀 실행 시 자동으로 Ctlr + Shift + V 에 단축키가 할당됩니다.

        Win32 API 까지 모두 포함된 최종 명령문은 첨부파일을 확인해보시기 바랍니다.

        답변이 도움이 되셨길 바랍니다. 감사합니다.

        Option Explicit
        
        #If VBA7 Then
        'https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getkeystate
        Private Declare PtrSafe Function GetKeyState Lib "user32" ( _
                                                                    ByVal nVirtKey As Long) As Long
        'https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-keybd_event
        Private Declare PtrSafe Sub keybd_event Lib "user32.dll" _
                                                                    (ByVal bVk As Byte, _
                                                                    ByVal bScan As Byte, _
                                                                    ByVal dwFlags As Long, _
                                                                    ByVal dwExtraInfo As Long)
        #Else
        'https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getkeystate
        Private Declare Function GetKeyState Lib "user32" ( _
                                                                    ByVal nVirtKey As Long) As Long
        'https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-keybd_event
        Private Declare Sub keybd_event Lib "user32.dll" _
                                                                    (ByVal bVk As Byte, _
                                                                    ByVal bScan As Byte, _
                                                                    ByVal dwFlags As Long, _
                                                                    ByVal dwExtraInfo As Long)
        #End If
        
        Sub Auto_Open()
        
        Application.OnKey "^+V", "Test"
        
        End Sub
        
        Sub Test()
        
        Const VK_CONTROL = &H11
        Const VK_SHIFT = &H10
        Dim blnC As Boolean: Dim blnS As Boolean
        
        Dim i As Long
        If IsCtrlKeyDown = True Then keybd_event VK_CONTROL, 0, 2, 0: blnC = True
        If IsShiftKeyDown = True Then keybd_event VK_SHIFT, 0, 2, 0: blnS = True
        SendKeys "{F2}"
        For i = 1 To 10000: i = i + 1: Next
        SendKeys "^v"
        For i = 1 To 10000: i = i + 1: Next
        SendKeys "{Enter}"
        If blnC = True Then keybd_event VK_CONTROL, 0, 0, 0
        If blnS = True Then keybd_event VK_SHIFT, 0, 0, 0
        
        End Sub
        
        '###############################################################
        '오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
        '▶ IsCtrlKeyDown 함수
        '▶ 키보드 Ctrl 키 누름여부를 확인합니다.
        '▶ 인수 설명
        '_____________LeftRightKey : 왼쪽/오른쪽 Ctrl 키 누름여부를 정합니다.
        ' 1 : 왼쪽 Ctrl키 입력시 TRUE
        ' 2 : 오른쪽 Ctrl키 입력시 TRUE
        ' 3 : 양쪽 Ctrl키 동시 입력시 TRUE
        ' 0 : 둘 중 하나라도 입력시 TRUE
        '###############################################################
        
        Private Function IsCtrlKeyDown(Optional LeftRightKey As Long = 0) As Boolean
        
        Const VK_LCTRL = &HA2: Const VK_RCTRL = &HA3: Const KEY_MASK As Integer = &HFF80
        
        Dim Result As Long
        
        Select Case LeftRightKey
            '왼쪽 CTRL 키 입력여부 확인
            Case 1:        Result = GetKeyState(VK_LCTRL) And KEY_MASK
            '오른쪽 CTRL 키 입력여부 확인
            Case 2:        Result = GetKeyState(VK_RCTRL) And KEY_MASK
            '양쪽 CTRL 키 동시 입력여부 확인
            Case 3:        Result = GetKeyState(VK_LCTRL) And GetKeyState(VK_RCTRL) And KEY_MASK
            'CTRL 키 둘중 하나의 입력여부 확인
            Case Else:    Result = GetKeyState(vbKeyControl) And KEY_MASK
        End Select
        
        IsCtrlKeyDown = CBool(Result)
        
        End Function
        
        '###############################################################
        '오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
        '▶ IsShiftKeyDown 함수
        '▶ 키보드 Shift 키 누름여부를 확인합니다.
        '▶ 인수 설명
        '_____________LeftRightKey : 왼쪽/오른쪽 Shift 키 누름여부를 정합니다.
        ' 1 : 왼쪽 Shift키 입력시 TRUE
        ' 2 : 오른쪽 Ctrl키 입력시 TRUE
        ' 3 : 양쪽 Shift키 동시 입력시 TRUE
        ' 0 : 둘 중 하나라도 입력시 TRUE
        '###############################################################
        
        Private Function IsShiftKeyDown(Optional LeftRightKey As Long = 0) As Boolean
        
        Const VK_LSHIFT = &HA0: Const VK_RSHIFT = &HA1: Const KEY_MASK As Integer = &HFF80
        
        Dim Result As Long
        
        Select Case LeftRightKey
            '왼쪽 CTRL 키 입력여부 확인
            Case 1:        Result = GetKeyState(VK_LSHIFT) And KEY_MASK
            '오른쪽 CTRL 키 입력여부 확인
            Case 2:        Result = GetKeyState(VK_RSHIFT) And KEY_MASK
            '양쪽 CTRL 키 동시 입력여부 확인
            Case 3:        Result = GetKeyState(VK_LSHIFT) And GetKeyState(VK_RSHIFT) And KEY_MASK
            'CTRL 키 둘중 하나의 입력여부 확인
            Case Else:    Result = GetKeyState(vbKeyControl) And KEY_MASK
        End Select
        
        IsShiftKeyDown = CBool(Result)
        
        End Function
        
        
        

        첨부파일 : 클립보드-붙여넣기-예제.xlsm


전체 4,249
번호 카테고리 제목 작성자 작성일 추천 조회
4233 함수/공식
New x,y,z로 이루어진 방정식 두 개를 '해 찾기' 기능으로 풀 수 있을까요? (1)
고대하라 | 12:08 | 추천 0 | 조회 19
고대하라 12:08 0 19
4232 기능/도구
New 셀선택시 설명 팝업 (2)
HYODONG | 11:49 | 추천 0 | 조회 16
HYODONG 11:49 0 16
4231 피벗테이블
New 정규화에 대한 문의 첨부파일 (1)
광개토태왕 | 10:05 | 추천 0 | 조회 18
광개토태왕 10:05 0 18
4230 차트/그래프
New 원형 차트에 슬라이서 연결 시 표시 방법 문의 드립니다.
이찬우 | 09:48 | 추천 0 | 조회 16
이찬우 09:48 0 16
4229 함수/공식
New 대량의 데이터를 가지고 있는 다른 시트에서 중복값찾기 (4) 답변완료
라운 | 00:07 | 추천 0 | 조회 40
라운 00:07 0 40
4228 VBA
New 시간이 겹치거나 겹친 시간에 동일 이름이 중복될 경우 찾을려면 어떻게 하면 될까요? (3)
셀라푸우 | 2021.10.20 | 추천 0 | 조회 30
셀라푸우 2021.10.20 0 30
4227 VBA
New 데이터 범위설정 매크로 수식 (2)
젬마 | 2021.10.20 | 추천 0 | 조회 49
젬마 2021.10.20 0 49
4226 피벗테이블
New 피벗테이블 구성 (1)
광개토태왕 | 2021.10.20 | 추천 0 | 조회 38
광개토태왕 2021.10.20 0 38
4225 VBA
New (초보..)vba 웹크롤링(selenium 사용) 문자를 읽어오지않아 문의드립니다!! (4)
윌터너 | 2021.10.20 | 추천 0 | 조회 29
윌터너 2021.10.20 0 29
4224 함수/공식
New 함수 자동입력?
흑형 | 2021.10.20 | 추천 0 | 조회 51
흑형 2021.10.20 0 51
4223 기능/도구
New 구글 스프레드시트 이미지 인쇄 문제 (1)
민 쌤 | 2021.10.20 | 추천 0 | 조회 30
민 쌤 2021.10.20 0 30
4222 파워쿼리/피벗
New 파워쿼리 입문입니다. 시트 합치는 방법 질문드립니다. 첨부파일 (2)
월마리아 | 2021.10.19 | 추천 0 | 조회 51
월마리아 2021.10.19 0 51
4221 함수/공식
New 공부용 일정표 관련해서 자동 생성 질문드립니다.
1234느린열차 | 2021.10.19 | 추천 0 | 조회 31
1234느린열차 2021.10.19 0 31
4220 함수/공식
New 변화되는 값 추적하기 첨부파일 (1)
아자사랑 | 2021.10.19 | 추천 0 | 조회 47
아자사랑 2021.10.19 0 47
4219 함수/공식
New 셀에 포함된 특정단어 추출 함수 첨부파일 (5) 답변완료
마운틴 | 2021.10.19 | 추천 0 | 조회 68
마운틴 2021.10.19 0 68
4218 피벗테이블
New 피벗테이블에서 열 (레이블) 상위 10% 필터링 방법 문의 첨부파일 (3)
김성현19 | 2021.10.19 | 추천 0 | 조회 35
김성현19 2021.10.19 0 35
4217 함수/공식
New 다중조건으로 매출 순위 구하기 첨부파일 (8) 답변완료
newstar | 2021.10.19 | 추천 0 | 조회 56
newstar 2021.10.19 0 56
4216 파워쿼리/피벗
New Expression.Error: Table 형식의 값을 Binary 형식으로 변환할 수 없습니다 첨부파일 (3)
슝슝 | 2021.10.19 | 추천 0 | 조회 30
슝슝 2021.10.19 0 30
4215 함수/공식
New 행에서 시간만 나타내기 첨부파일 (6) 답변완료
드래군 | 2021.10.19 | 추천 0 | 조회 53
드래군 2021.10.19 0 53
4214 기능/도구
New QR 코드 만들기 첨부파일 (1)
맑고 향기롭게 | 2021.10.19 | 추천 0 | 조회 34
맑고 향기롭게 2021.10.19 0 34
4213 함수/공식
New --ISNUMBER의 의미 (2)
마운틴 | 2021.10.19 | 추천 0 | 조회 41
마운틴 2021.10.19 0 41
4212 함수/공식
New 엑셀 수식 가로로 하는법 첨부파일 (4)
KT | 2021.10.19 | 추천 0 | 조회 62
KT 2021.10.19 0 62
4211 함수/공식
New 유효성검사를 통해 다른시트의 데이터 중 매출액이 있는 데이터만 불러오는 방법 첨부파일 (6)
emp**** | 2021.10.19 | 추천 0 | 조회 42
emp**** 2021.10.19 0 42
4210 VBA
New 이미지넣는 매크로, 다시 열어보니 사진이 안떠요 (4) 답변완료
흑형 | 2021.10.19 | 추천 0 | 조회 43
흑형 2021.10.19 0 43
4209 함수/공식
New 조건에 맞는 값 추출될 수 있도록 수식 질문드립니다 첨부파일 (1) 답변완료
젬마 | 2021.10.19 | 추천 0 | 조회 48
젬마 2021.10.19 0 48
4208 기능/도구
New 하나 이상의 수식이 허용된 8,192자 제한보다 깁니다.
City0311 | 2021.10.19 | 추천 0 | 조회 21
City0311 2021.10.19 0 21
4207 VBA
New 재질문 : ParseJSON 함수 첨부파일 (3) 답변완료
하늘의 꿈 | 2021.10.19 | 추천 0 | 조회 29
하늘의 꿈 2021.10.19 0 29
4206 VBA
New 다른시트명 불러오기 vba (3)
야야야야구르트 | 2021.10.18 | 추천 0 | 조회 55
야야야야구르트 2021.10.18 0 55
4205 VBA
New 유저폼에서 리스트 검색 후, 선택목록 내용 보기 첨부파일 (7)
007 | 2021.10.18 | 추천 0 | 조회 52
007 2021.10.18 0 52
4204 함수/공식
New 변하는 변수값 고정시키기 첨부파일 (3)
아자사랑 | 2021.10.18 | 추천 0 | 조회 35
아자사랑 2021.10.18 0 35