본문 바로가기
VBA

[VBA] 오픈챗 대화내용 일자별 추출하기

by 일등미노왕국 2022. 1. 12.

지치지 않는 준빠님때문에 가랑이가 찢어질것 같다...이번 작업은 대화내용을 배열에 담아서 해당날짜와 시간 그리고 내화 내용을 출력하는 작업이다.

오픈챗 대화내용을 보면 알겠지만 분단위로 대화를 출력하기에 동일인이 동일한 시간대에 입력하면서 엔터를 쳤을 때 닉네임과 시간이 생략된 채 대화 내용만 출력되게 된다...이게 첫번째 변수 

 

대화내용을 보면 알겠지만 질문과 답변으로 이뤄지는 답변속에 = 로 시작하는 문장들이 있어 ...이렇게 되었을 때 엑셀에서 수식인줄 알고 에러메세지를 발생시키는 것이 두번째 변수 였다

아오~~~~얄미워~~~

 

코드 진행은 이렇다.

1. 오픈챗 대화 소개글 다음부터 배열에 담아야 하기 때문에 그 구분을 짓기 위해 Bln 으로 참 /  거짓으로 구분

2. 정규식은 2개가 사용되었는데... 날짜를 분리해서 담을 정규식 / 요일, 닉네임, 시간, 대화 내용을 가져올 정규식

3. 요일,닉네임,시간,대화 정규식에서 대화 내용만 있는 것들이 있어서 이걸 임시배열에 적당히 담아줄 조건문이 필요

4. 코드 진행이 크게 정규식으로 한번 걸러지고 그 다음 대화를 임시배열에 담았다가 출력하는 구조이기에 맨마지막에 담긴 대화는 정규식이 대상이 더이상 없기에 그대로 배열에 담긴채 셀에 뿌려지지 못한다. 그래서 배열이 마지막일 경우 정규식을 통과했을 때 진행되는 코드를 한번더 진행시켜야 하기 때문에 배열이 마지막인지 물어봐야 한다

5. 이대로 출력을 하게되면 배열들이 중간중간 대화 내용이 없고 공백으로 된 배열들이 출력되기에 빈셀을 한꺼번에 잡아서 그부분을 처리해주고 각 열의 너비를 고정값을 주며 작업을 마무리해야 한다.

6. 이 과정이 대화 내용에 따라 시간이 소요될 수 있기에 왼쪽 하단에 프로그래스바를 추가하여 진행단계를 표시하게 하였다.

 

최근3개월 대화한 멤버 찾기(22.01.12).xlsm
3.21MB

댓글