엑셀

엑셀 vba/기타

엑셀에서 카카오톡 메세지 가져오기

지난번 카카오톡 메세지 보내기 포스팅에 이어 이번 포스팅은 메세지 가져오는 vba 코드에 대한 포스팅입니다. 마찬가지로 Windows API를 사용하기때문에 직접적으로 카카오톡을 제어하는게 아니라 쉽게 말하자면 윈도우를 제어해서 복사, 붙여넣기로 메세지를 읽어오는거라 생각하시면 되겠습니다. 방식은 대화방 이름을 검색해서 대화방을 열고 채팅내용 전체를 선택한후 복사(ctrl+C), 복사한 클립보드 내용을 읽어서 원하는 대화 내용을 뽑아낸다. 라는 방식이 되겠습니다. API 함수 선언부분에는 안쓰는것들도 포함되어 있을 수 있습니다. 카카오톡 전송하는 코드랑 같이 쓰는거에서 뽑아온거라 걸러내기 사실 힘들어서 그냥 그대로 넣었습니다. 메세지 가공하는 부분은 예전 포스팅의 Split, Replace, Trim 활..

엑셀 vba/기타

엑셀에서 카카오톡 메세지 보내기 #2

예전에 카톡 메세지 보내는 엑셀 파일을 올렸는데 거의 2년반만에 새롭게 만들어 봤어요. 원본 소스는 "오빠두엑셀"에서 참고했으며, 인터넷의 python의 카톡 메세지 발송 포스팅 글들을 참고했습니다. 이전글 (엑셀에서 카카오톡 메세지 보내기)에서는 친구목록으로 메세지를 발송했었는데, 이번에는 채팅방 목록에서 채팅방 이름으로 메세지를 발송하도록 변경하였습니다. 친구목록을 사용하실 분들은 이전 포스팅을 참고해주세요. 달라진 부분은 발송방법을 문자와 그림의 두가지로 발송되게 만들었고, C3셀에서 선택하게끔 만들었습니다. 문자의 경우 I3셀부터 아래로 입력된 모든 셀의 내용을 전송합니다. 그림의 경우 C4셀에 입력한 범위를 복사해서 카톡 메세지로 붙여넣기 하는 방식으로 발송합니다. 단, 그림 전송의 경우 예전부..

엑셀 vba/기타

ImageMSO(Image Microsoft Office)

오피스군에서 사용하는 Image 모음입니다. 실행시키면 아래와 같이 ImageMSO 리본탭이 생깁니다. 원하는 이미지를 선택하면 시트에 삽입됩니다. 이미지 선택창에서 이미지에 마우스를 올리면 이미지 이름이 나옵니다. 혹은 시트에 삽입한 상태로 우클릭한뒤 대체 텍스트 편집을 선택하면 대체 텍스트에서 이미지 이름을 확인할 수 있습니다. 리본 편집할때 필요해서 올려둡니다.

엑셀 vba/기타

커스텀 리본 관리 툴 RibbonX Editor

커스텀 리본을 만들거나 관리할수 있게 해주는 툴입니다. 현재 발주관리 파일에서 조만간 다룰 예정 입니다. 링크는 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/기타

vbac를 이용한 vba 소스 코드를 git에서 관리하는 방법

vba를 사용하다 보면 간단한 매크로 같은경우는 크게 문제 없지만 소스 코드가 많아질경우 관리 하기가 쉽지가 않습니다. 버전 관리를 한다고 해도 vba의 경우는 xlsm 파일을 통으로 수정할때마다 파일을 백업해두는 방식으로 밖에는 다른 방법이 없습니다. 어디를 어떻게 추가/삭제/수정 했는지 찾아보기도 힘들고 코드가 길어질수록 찾아보는것 자체도 힘들어 집니다. 그래서 저 같은 경우는 크게 변경이 되었을때만 백업을 해두는 방식으로 관리를 해왔는데 코드가 길어지니 내가 뭘 했었는지 찾아보기도 정말 힘들어 지더군요. 이번에 우연히 구글링을 하다가 vba도 git을 활용해 버전 관리를 할수 있는 방법을 알게 되어서 이렇게 포스팅을 하게 되었습니다. 다른 프로그래밍 언어를 사용해 보셨거나 코드를 길게 짜보신 분들은..

엑셀 vba/기타

엑셀에서 카카오톡 메세지 보내기

새로운 소스를 포스팅 했습니다. 여기에서 확인해 주세요. 원본 소스는 "오빠두엑셀"에서 가져왔습니다. 원본에는 카톡 대화창이 열려 있을때만 보낼수 있게 되어있는데, 댓글을 보니 채팅창이 닫혀있을때는 안정성이 떨어진다는 이유로 업데이트를 보류하고 있다고 하네요. 해서 여기저기 찾아보고 제 나름대로 업데이트를 했습니다. 채팅창이 간혹 안열리는 경우가 있어서 sleep로 대기시간을 1초정도 넣어줘 봤습니다. 아마도 원작자분이 얘기하신 안정성 문제가 이런 부분이 아닐까 싶은데 제 능력으론 대기시간을 주는 정도로 밖에는 다른 해결책이 떠오르지 않네요. 참고해서 연구해 보실분들은 연구해 보시면 좋을것 같습니다. 더보기 시트 소스코드 입니다. Private Sub Worksheet_Change(ByVal Target..

엑셀 vba/기타

VBA 맨위의 행으로 이동하는 명령어

맨위의 행으로 이동하는 명령어 ActiveWindow.ScrollRow = 1 스크롤을 아래로 내리거나 데이터 양이 많아서 검색등을 했을시에 스크롤을 처음행으로 이동시킬수 있다.

엑셀 vba/발주관리(OLD)

발주관리#8 매입처 삭제

이번 포스팅은 매입처 관리에서 삭제 버튼에 할당되는 프로시저입니다. 삭제에는 따로 유저폼이 필요하지 않기 때문에 코드만 넣어주시면 되겠습니다. 아래와 같이 두개의 프로시저를 만들어주세요. 12345678910111213141516171819202122232425262728293031323334353637Sub 매입처_삭제() Dim rngclmB As Range '붙여넣은 영역의 B열을 담아둘 변수 If Intersect(Columns("A"), Selection) Is Nothing Or Not Intersect(Rows("1:3"), Selection) Is Nothing Then 'A열이 아니거나 1:3행일 경우 sub 종료 MsgBox "삭제할 번호셀을 선택해 주세요!", vbCritical, "..

엑셀 vba/발주관리(OLD)

발주관리#7 매입처 수정

이번 포스팅은 지난 발주관리#3에서 만들어둔 수정 버튼에 프로시저를 만들어 연결하겠습니다. 역시 지난 포스팅에서 만들었던 유저관리폼과 함께 사용하게 됩니다. 우선 수정 버튼을 눌렀을때 실행될 프로시저 입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Sub 매입처_수정() '복수셀 선택시 종료 If Selection.Count > 1 Then MsgBox "수정할 하나의 셀만 선택해 주세요!", vbCritical, "오류" Exit Sub End If 'A:C열이 아니거나 1:3행일경우 종료 If Intersect(Columns("A:C"), Selection) Is Nothing Or Not Intersect(Rows("1:..

엑셀 vba/기타

날짜를 요일로 반환받기

오늘 파일 작업을 하다 갑자기 정해진 날짜를 요일로 반환받는게 필요해서 검색해보고 이것저것 실험해보고 알게되었네요. 1 WeekdayName(Weekday(Sheets("시트1").Range("A1"), vbSunday), True) cs 시트1 시트의 A1에 날짜가 적혀있다는 가정하에 위의 코드를 사용하면 적혀진 날짜의 요일을 반환합니다. Weekday는 날짜를 요일에 해당하는 숫자로 반환해주는 명령어구요. WeekdayName는 요일에 해당하는 숫자를 요일로 반환해주는 명령어 입니다. 각 명령어를 클릭하시면 영문 설명/예제 링크로 연결됩니다. 마지막의 True 부분은 옵션인데, 예를들어 A1의 요일이 월요일이라 가정하면 True일 경우 월이라고 표시가 되고, False일 경우 월요일로 표시가 됩니다.

SweetCookie
'엑셀' 태그의 글 목록