본문 바로가기
카테고리 없음

[VBA] 최근3개월간 오픈챗팅 대화로그(Feat.준빠 theme)

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

이전글에서 단순하게 멤버들의 아이디

를 추출했다면

https://1stminokingdom.tistory.com/62

 

[VBA] 지난 3개월간 오픈챗팅에서 대화한 멤버들 확인하기

엑셀에서 텍스트파일을 불러와서 수정하는 작업을 하다. 문득 엑사남 오픈채팅방에 멤버들의 이름이 알고 싶어졌다. 그래서 대화를 긁어보았다. 근데 대화는 오늘기준으로 3개월간의 대화만 긁

1stminokingdom.tistory.com

준빠님은 아이디 대신 풀 닉네임을 가지고와서 대화의 각 시간대별 누적을 구하는 코드를 작성하여 본인도 비슷하게 만들어 보았다. 관건은 텍스트파일을 가져와서 그걸을 해당 문제에 맞게 어떻게 정규식 패턴으로 최적화해서 원하는 값을 가져오냐에 달렸다.  우리가 필요한 값은 [풀닉네임과 채팅시간]이 필요하다. 그렇기에 패턴으로 해당 텍스트를 뽑아서 거기서 SubMatches로 각각을 불러와야 한다.

Match 정보를 보면 알겠지만 그룹1부터 3까지 우리가 원하는 결과를 가져왔기에 Submatches의 번호를 끌어다 쓰기만 하면 된다. 참고로 Submatch는 0부터 시작함으로 그룹1은 Submatches(0) 이 된다. 

참 많은것을 배우고 도전하게 만드는 사람중에 한명이다..

때론 경쟁자로서 때론 뮤즈로서 지금의 Haja를 만들어준 한명이다. 최근 뜸한 뽀리너님도....

이미지에는 나오지 않았는데 텍스트 파일을 선택해야 한다.

텍스트 파일은 [카카오톡 대화내보내기]로 얻은 텍스트 파일을 이용하여야 에러가 나지않고, 원하는 결과를 얻게 될것이다. 혹여나 오픈챗 멤버가 아닌 다른 분들이 볼 수가 있어서 텍스트 파일은 올리기 않기로 하겠다.

 

결과에서도 볼 수 있듯이 채팅을 너무 했다....반성중...친구없는거 너무 티난다...

제 취미는 ......엑셀입니다....

이번에 작업한 내용은 이렇다.

1. 파일 다이얼로그를 통해 오픈챗 텍스트파일을 선택한다.

2. ADODB를 통해 텍스트 파일을 [줄바꿈]으로 분리하여 배열에 담는다.

3. 배열을 순환하면서 풀닉네임과 채팅시간을 분리한다.

4. 딕셔너리를 통해 각 닉네임의 총채팅시간과 해당 시간의 각각의 누적시간을 구한다.

5. 딕셔너리 키값을 순환하면서 셀에 출력한다.

6. 조건부서식을 입힌다.(개발도구의 매크로 기록기 이용

3월에 한번 더 해보려한다....VBA에 진심이 사람들이 더 많이 대화를 하고 참여를 하길 기대한다.

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

댓글