본문 바로가기

반응형

autohotkey

Autohotkey#46, RandBetween, 특정 범위에서 실수 난수(Random number) 발생하기 https://youtu.be/odJGwIr_5v0 기존에 임의의 숫자 발생기는 단순히 임의의 숫자(난수, random number)를 발생시켰는데, 일반적으로는 특정 범위내의 난수를 발생시키는게 일반적이므로 이번에는 해당 기능에 대해서 구현하는 것을 설명드립니다. 다시 한번 random number를 발생시키는 문법은 아래와 같습니다. Random, no, StartNo, EndNo StartNo에서 EndNo사이에서 난수를 발생시켜 no에 저장합니다. 만약 원하는 갯수만큼 난수를 발생시키려면 loop를 그만큼 돌리면 됩니다. Loop %Count% { Random, no, StartNo, EndNo } 그렇다면, 해당 갯수만큼 발생시킨 결과를 하나의 변수에 저장하려면 어떻게 해야 할까요? 저장용 변수.. 더보기
Autohotkey#45, 엑셀 취합 v1.6(입력파일의 특정열을 취합파일의 다른 열에 복사하는 경우) https://youtu.be/B9EtxxusnRk 엑셀 취합 v1.5면 웬만한 경우를 다 감당한다고 생각했는데, 생각보다 다르게 사용하는 경우가 많은 것 같습니다. 일단 질문이 들어온 경우를 설명드리면, 입력 엑셀 파일에서는 B열을 복사해서 최종 취합할 엑셀 파일에서는 C열에 넣고 입력 엑셀 파일에서 E열을 D열에 취합하려면 어떻게 하냐는 것입니다. 다양한 방법이 존재하지만, 취합할 엑셀 파일이 기존에 사용하던 내용이라 손을 대기 어려운 상황이라서, 프로그램적으로 처리하기를 원한 경우라 생각됩니다. 그걸 해결하려면 구조를 수정해야 했습니다. GUI는 다음과 같이 변경했습니다. 우선 기존의 시작행과 종료행을 지정하는 방식대, 전체행을 복사하는 경우에 대한 방식을 RADIO버튼을 써서 선택하도록 해 주고,.. 더보기
Autohotkey #44, 엑셀 취합 수정본 v1.5(지정된 행만 취합하기) https://youtu.be/UhgcakmDS8A 기존 엑셀 취합 내용에 추가적인 요구사항이 있어서 수정된 버전을 올려 드립니다. 1) 시작행부터 종료행까지 지정하고자 하는 경우 2) 종료행을 지정하지 않고 최종행까지 취합하고자 하는 경우 3) 최종행은 합계행이므로 빼고 취합하고자 하는 경우 4) 시트명이 default이름인 Sheet1이 아닌 경우 등에 대한 내용이 반영되도록 수정한 버전입니다. 어지간한 취합은 대부분 감당할것으로 생각됩니다. 추가적으로 다른 경우가 있다면 좀 더 수정이 필요하겠습니다. 통상적으로 취합활동을 많이 하시는 분들에게 도움이 되기를 기대합니다. 먼저 시작행부터 종료행을 지정하고자 하는 경우입니다. 예제에서는 2행부터 6행까지 취합하는 경우입니다. 만약 한줄만 취합하려면 En.. 더보기
Autohotkey #43, SciTE4Autohotkey를 이용한 디버깅 https://youtu.be/Nkvk_Htp0Dc SW개발의 꽃은 디버깅(Debugging)입니다. 많은 분들이 직접 디버깅을 해 보는데 어려움을 겪고 있는듯 하여 그것을 설명해 드리겠습니다. 여러가지 방법이 있겠지만, Autohotkey를 설치할 때 따라오는 SciTE4Autohotkey가 가장 쉽게 접할 수 있고, 다음으로는 Notepad++등에 디버거를 Add해서 사용하는 방법이 가장 쉽게 접할 수 있는 방법입니다. 오늘은 SciTE4Autohotkey를 설명하겠습니다. 우선 Autothotkey#1(https://autohotkey4auto.tistory.com/5 )에서 소개해 드린 내용중 일부지만 먼저 설치 및 한글메뉴 패치를 다시 보여 드립니다. 2) 전용 SciTE4Autohotkey E.. 더보기
Autohotkey#42, 엑셀의 특정열만 취합하기 https://youtu.be/vS9VtCl8uf0 #26번 강좌에서 엑셀 취합하기 영상을 올렸는데, 어떤 분이 질문을 주셨습니다. 특정열만 취합하기 위해서는 어떻게 해야 하는지? 결론적으로 원본의 복사할 범위와 대상이 되는 범위를 조정해 주면 됩니다. 원본의 복사할 범위는 아래식에서 정해집니다. iLastCol := exelinput.ActiveSheet.Cells.SpecialCells(11).column tt := chr( asc("A")+iLastCol -1) rg = A2:%tt%%iLastRow% iLastCol에는 해당 엑셀의 마지막 컬럼을 숫자로 반환해서 저장합니다. 그값을 원하는 범위의 마지막 컬럼을 나타내는 숫자로 변경해 주면 됩니다. 예를 들어 D열이라고 하면 A=1, B=2, C=3.. 더보기
Autohotkey#41, StrSplit에서 줄바꾸기 오류(`r`n, \r\n ) https://youtu.be/NY4j3AYleG0 지난번에 FileSetting을 저장하고 읽어 오는 스크립트를 소개할 때 오류가 있었습니다. 우선 줄바꾸기를 나타내는 내용이 `r`n인데 `n만 표시하여 실제 그 스크립트로 동작을 시키면 일부 동작이 제대로 수행되지 않는 경우가 발생했을 것입니다. 이것을 해결하기 위해서는 `n대신에 `r`n을 사용하면 됩니다. 가장 치명적인 경우가 설정치에서 읽은 내용에 추가로 다른 내용을 덧붙일 경우입니다. 그 경우 `r이 동작 하면, 어떤 경우(대표적으로 cmd창에서 명령을 입력하는 경우)에는 명령이 2가지로 분리되어 전달되는 경우가 발생가능합니다. 따라서 그럴일이 없도록 `r`n을 합쳐서 StrSplit을 수행하던지, `n만 가지고 StrSplit 한 결과를 가지.. 더보기
Autothokey #40, Lotto 발생기 수정버전, 원하는 번호 추가하기 https://youtu.be/PA1Xo3WuQjY - YouTube www.youtube.com 예전에 랜덤함수에 대한 예시로 로또 번호 생성기를 소개해 드렸는데, 많은 분들이 본인이 지정한 숫자를 기본으로 넣고 나머지 번호만 번호를 생성하는 기능을 원하셔서 해당 기능이 추가된 버전을 소개해 드립니다. 기본적인 필요는 사용자가 지정한 숫자만큼은 기본으로 넣고, 나머지 숫자에 대해서만 발생하면 되므로 일단 사용자 입력을 받아 들일 수 있도록 UI에 추가해 줘야겠고, 입력된 숫자를 읽어 들여서, 몇개를 입력했는지? 해당 값들을 어떻게 저장할지등을 정해야겠죠. 이후에 나머지 숫자만큼만 번호를 발생하는 로직으로 진행하면 되겠습니다. 먼저 사용자 입력을 위해 UI를 수정합니다. Gui, Add, Text, x6.. 더보기
Autohotkey #39, 매일 일정한 시간에 특정 업무를 진행하기 https://youtu.be/HSbT7i6Vk64 - YouTube www.youtube.com 많은 분들이 매일 일정한 시간에 특정한 업무를 진행하는 경우가 많습니다. 만약 특정업무를 autohotkey 또는 다른 매크로를 이용하여 자동화를 해 놓았다면, 자동으로 해당 시간에 실행만 시켜주면 그야말로 모든게 자동화 되는거죠. 그렇게 하려면 어떻게 해야 할까요? 우선 정해진 시간에 동작하도록 SetTimer함수를 사용해야 합니다. 사용법은 다음과 같습니다. Settimer, Myjob, 6000 마지막 6000은 milisecond단위이므로 6초간격을 의미하며, Myjob이라는 Label로 이동하여 주어진 업무를 수행합니다. 정해진 시간에 동작하는 함수는 알게 되었는데, 내가 원하는 시간을 어떻게 찾아.. 더보기

반응형