지난번 카카오톡 메세지 보내기 포스팅에 이어 이번 포스팅은 메세지 가져오는 vba 코드에 대한 포스팅입니다. 마찬가지로 Windows API를 사용하기때문에 직접적으로 카카오톡을 제어하는게 아니라 쉽게 말하자면 윈도우를 제어해서 복사, 붙여넣기로 메세지를 읽어오는거라 생각하시면 되겠습니다. 방식은 대화방 이름을 검색해서 대화방을 열고 채팅내용 전체를 선택한후 복사(ctrl+C), 복사한 클립보드 내용을 읽어서 원하는 대화 내용을 뽑아낸다. 라는 방식이 되겠습니다. API 함수 선언부분에는 안쓰는것들도 포함되어 있을 수 있습니다. 카카오톡 전송하는 코드랑 같이 쓰는거에서 뽑아온거라 걸러내기 사실 힘들어서 그냥 그대로 넣었습니다. 메세지 가공하는 부분은 예전 포스팅의 Split, Replace, Trim 활..
예전에 카톡 메세지 보내는 엑셀 파일을 올렸는데 거의 2년반만에 새롭게 만들어 봤어요. 원본 소스는 "오빠두엑셀"에서 참고했으며, 인터넷의 python의 카톡 메세지 발송 포스팅 글들을 참고했습니다. 이전글 (엑셀에서 카카오톡 메세지 보내기)에서는 친구목록으로 메세지를 발송했었는데, 이번에는 채팅방 목록에서 채팅방 이름으로 메세지를 발송하도록 변경하였습니다. 친구목록을 사용하실 분들은 이전 포스팅을 참고해주세요. 달라진 부분은 발송방법을 문자와 그림의 두가지로 발송되게 만들었고, C3셀에서 선택하게끔 만들었습니다. 문자의 경우 I3셀부터 아래로 입력된 모든 셀의 내용을 전송합니다. 그림의 경우 C4셀에 입력한 범위를 복사해서 카톡 메세지로 붙여넣기 하는 방식으로 발송합니다. 단, 그림 전송의 경우 예전부..
오피스군에서 사용하는 Image 모음입니다. 실행시키면 아래와 같이 ImageMSO 리본탭이 생깁니다. 원하는 이미지를 선택하면 시트에 삽입됩니다. 이미지 선택창에서 이미지에 마우스를 올리면 이미지 이름이 나옵니다. 혹은 시트에 삽입한 상태로 우클릭한뒤 대체 텍스트 편집을 선택하면 대체 텍스트에서 이미지 이름을 확인할 수 있습니다. 리본 편집할때 필요해서 올려둡니다.
커스텀 리본을 만들거나 관리할수 있게 해주는 툴입니다. 현재 발주관리 파일에서 조만간 다룰 예정 입니다. 링크는 gitHub의 릴리스 페이지 입니다. https://github.com/fernandreu/office-ribbonx-editor/releases Releases · fernandreu/office-ribbonx-editor An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF - fernandreu/office-ribbonx-editor github.com 중간쯤에 최신 버전의 다운로드 링크가 있습니다. NETFramework 바이너리나 인스톨러 둘중 하나를 선택해 사용하시면 되겠습니다...
vba를 사용하다 보면 간단한 매크로 같은경우는 크게 문제 없지만 소스 코드가 많아질경우 관리 하기가 쉽지가 않습니다. 버전 관리를 한다고 해도 vba의 경우는 xlsm 파일을 통으로 수정할때마다 파일을 백업해두는 방식으로 밖에는 다른 방법이 없습니다. 어디를 어떻게 추가/삭제/수정 했는지 찾아보기도 힘들고 코드가 길어질수록 찾아보는것 자체도 힘들어 집니다. 그래서 저 같은 경우는 크게 변경이 되었을때만 백업을 해두는 방식으로 관리를 해왔는데 코드가 길어지니 내가 뭘 했었는지 찾아보기도 정말 힘들어 지더군요. 이번에 우연히 구글링을 하다가 vba도 git을 활용해 버전 관리를 할수 있는 방법을 알게 되어서 이렇게 포스팅을 하게 되었습니다. 다른 프로그래밍 언어를 사용해 보셨거나 코드를 길게 짜보신 분들은..
카톡으로 발주를 매일 받는건이 있어서 만들었던 매크로 입니다. 현재도 쓰고 있구요. 저의 상황에 맞춰서 만든거라 참고용으로 보시고 필요하신 부분 참고하시라고 올려봅니다. 카톡 대화창에서 대화내용을 우클릭해서 복사한뒤 엑셀에 붙여넣기를 하면 [대화명] [시간] 내용 이런식으로 나오게 되는데 여기서 내용만 뽑아내고 내용에서 필요없는 부분을 없애고, 원하는 형식으로 변경해주는 코드입니다. Sub KakaoMessageFiltering() Dim i As Long, j As Long '반복구문에 사용할 변수 Dim strU As String, strUF As String '문자를 합쳐갈(U)nion 변수 Dim strEach$, strK$, strL$ '문자를 넣을 변수 Dim varS() As String '..
매출처 관리 유저폼(FormClient) 매출처 관리 유저폼 전체 코드 더보기 Option Explicit '폼 열릴때 실행 Private Sub UserForm_Initialize() Call SetColumnHeaders Call Connect_DB Call Load_Client_DB Cn.Close Me.txtSearch.SetFocus End Sub '리스트뷰 헤더 설정 Private Sub SetColumnHeaders() With Me.ListClient.ColumnHeaders .Add Text:="번호", Width:=0, Alignment:=lvwColumnLeft .Add Text:="매출처명", Width:=150, Alignment:=lvwColumnCenter .Add Text:=..
매출처 관리에서 등록/수정을 눌렀을때 팝업되는 유저폼 입니다. 하나의 유저폼을 사용해서 Caption을 다르게 설정해주고 Caption에 따라 처리를 나눠줬습니다. 유저폼의 레이아웃은 아래와 같습니다. 이해를 돕기 위해 텍스트 박스에는 이름을 써놓았습니다. 등록 버튼은 btnSave, 닫기 버튼은 btnClose로 설정했습니다. 유저폼 이름은 FormEditClient로 설정했습니다. 코드는 아래를 펼쳐서 확인해 주세요. 더보기 Option Explicit '저장 Private Sub btnSave_Click() If Me.Caption = "매출처 등록" Then Call Add_Client Else Call Edit_Client End If Unload Me End Sub '닫기 Private Sub..
지난 포스팅에서 만들었던 매출처 관리 유저폼의 각 버튼별 코드를 이번 포스팅에서는 다루겠습니다. 등록, 수정, 삭제, 닫기 총 4개의 버튼이 있습니다. 등록, 수정 버튼을 클릭했을시 유저폼을 하나더 팝업시켜 사용하는 방식으로 데이터를 추가/수정합니다. 사용할 유저폼은 FormEditClient로 이름을 설정했습니다. FormEditClient 유저폼은 다음 포스팅에서 다루도록 하겠습니다. 우측상단의 txtIdx 텍스트 박스는 Visible을 False로 설정해서 보이지 않게 숨겨주었습니다. 먼저 등록 버튼 클릭시 실행되는 코드 입니다. '등록 Private Sub btnRegister_Click() With FormEditClient .Caption = "매출처 등록" .Show End With Call..
이번 포스팅은 5개의 버튼 각각의 코드입니다. 버튼은 등록, 수정, 삭제, 초기화, 닫기 이렇게 5개입니다. 우선 등록 버튼은 매입처명, 구분, 발주구분을 입력한뒤 클릭시 DB에 저장(INSERT)하는 코드입니다. '등록 Private Sub btnRegister_Click() If txtPurchase.Value = "" Then MsgBox "매입처명을 입력해 주세요.", vbCritical, "입력오류" Exit Sub End If Call Connect_DB '중복 매입처 체크 SQL = "SELECT * FROM purchase WHERE purchaseName LIKE '" & txtPurchase.Value & "'" rs.CursorLocation = adUseClient '★★★★★★★★..