Pymacro | MacroBuilder
좌표 클릭, 이미지 인식, 엑셀 데이터 처리를 조합한 반복 작업 자동화 프로그램
기간: 2025-11 ~ 2025-12인원: 1 명
Stack: Python
#Macro#Auto
MacroBuilder
노코드 화면 매크로 자동화 프로그램. 좌표 클릭, 이미지 인식, 엑셀 데이터 처리를 조합하여 반복 작업을 자동화합니다.
주요 기능
- 좌표 클릭 - 마우스 위치를 등록하고 자동 클릭 (좌/우/중간 클릭, 더블클릭)
- 이미지 인식 - 화면에서 이미지를 찾아 클릭하거나 대기 (OpenCV 템플릿 매칭)
- 엑셀 연동 - 엑셀 행 데이터를 순차적으로 자동 입력 (다중 엑셀, 독립 인덱스)
- 키보드 입력 - 텍스트 타이핑, 단축키, 키 입력 (한글 지원)
- 플로우 편집 - 드래그 앤 드롭으로 액션 순서 편집, 복제 지원
- 체인 실행 - 여러 프로젝트를 연결하여 순차 실행
- 전역 단축키 - F9(시작), F10(일시정지), F11(중지), F12(창 포커스)
- 자동시작 - 앱 실행 시 지정 프로젝트 자동 실행
- 자동 최신 파일 - 디렉토리에서 최신 엑셀 파일 자동 선택
- 로그 내보내기 - 실행 로그를 파일로 저장
액션 타입
| 분류 | 액션 | 설명 |
|---|---|---|
| 마우스 | click_coord | 등록된 좌표 클릭 |
| 마우스 | click_image | 화면에서 이미지를 찾아 클릭 |
| 마우스 | mouse_scroll | 마우스 스크롤 |
| 키보드 | type_text | 고정 텍스트 입력 |
| 키보드 | type_variable | 엑셀 컬럼/카운터/타임스탬프 입력 |
| 키보드 | key_press | 키 입력 (단일 또는 조합) |
| 키보드 | hotkey | 단축키 실행 |
| 키보드 | paste | Ctrl+V 붙여넣기 |
| 제어 | delay | 지정 시간 대기 |
| 제어 | wait_image | 이미지가 나타날 때까지 대기 |
| 기타 | screenshot | 전체/영역 스크린샷 저장 |
| 기타 | memo | 메모 (실행 안 함) |
실행 모드
- 엑셀 행 반복 - 엑셀 행마다 플로우 실행 (중복 스킵, 에러 시 건너뛰기/중지/재시도)
- 플로우 반복 - 지정 횟수만큼 플로우 반복
- 무한 반복 - 중지할 때까지 계속 실행
설치 및 실행
요구사항
- Python 3.10+
- Windows (pyautogui, pynput 기반)
개발 환경
bashpip install -r requirements.txt
python main.py
exe 빌드
bashpython build.py
빌드된 파일: dist/MacroBuilder.exe
사용 방법
1. 프로젝트 생성
- "새 프로젝트" 클릭 → 이름 입력
- 편집 화면 진입
2. 리소스 등록
- 좌표: "+ 새 좌표 추가" → 3초 카운트다운 후 마우스 위치 캡처 → 이름 입력
- 엑셀: "+ 새 엑셀 추가" → 파일 선택 → 시트/컬럼 선택 → 이름 입력
- 이미지: "+ 새 이미지 추가" → 파일 선택 → 이름/정확도 입력
3. 플로우 구성
- "액션 추가" 클릭 → 액션 타입 선택 → 파라미터 설정
- 드래그 앤 드롭으로 순서 조정
- 📋 버튼으로 액션 복제
4. 실행
- "완료" 클릭 → 실행 화면
- "실행 설정"에서 반복 횟수/무한 반복 설정
- F9 키로 시작 (3초 카운트다운 후 실행)
- F10 일시정지 / F11 중지
프로젝트 구조
pymacro/
├── main.py # 앱 진입점
├── build.py # PyInstaller 빌드 스크립트
├── requirements.txt # 의존성
├── settings.json # 전역 설정 (단축키, 자동시작)
├── core/ # 비즈니스 로직
│ ├── config.py # 앱 설정 (싱글톤)
│ ├── executor.py # 매크로 실행 엔진
│ ├── flow_manager.py # 플로우 시퀀스 관리
│ ├── coordinate_manager.py # 좌표 관리
│ ├── excel_manager.py # 엑셀 데이터 관리
│ ├── image_manager.py # 이미지 템플릿 관리
│ ├── project_manager.py # 프로젝트 JSON 저장/로드
│ ├── chain_manager.py # 체인 프로젝트 관리
│ ├── chain_executor.py # 체인 실행 엔진
│ ├── settings_manager.py # 전역 설정 관리
│ └── ocr_utils.py # OCR 텍스트 추출
├── ui/ # Tkinter UI
│ ├── start_screen.py # 시작 화면 (프로젝트 목록, 검색)
│ ├── project_editor.py # 프로젝트 편집
│ ├── project_runner.py # 프로젝트 실행
│ ├── chain_dialog.py # 체인 생성 다이얼로그
│ ├── chain_runner.py # 체인 실행
│ └── dialogs.py # 각종 다이얼로그
├── utils/ # 유틸리티
├── projects/ # 프로젝트 저장 디렉토리
│ ├── images/ # 이미지 템플릿
│ ├── excel/ # 엑셀 파일 복사본
│ └── logs/screenshots/ # 실행 스크린샷
└── resources/
└── icon.ico # 앱 아이콘
주의사항
- 매크로 실행 중에는 마우스/키보드 사용을 피하세요
- 마우스를 화면 좌상단 모서리로 이동하면 긴급 중지됩니다 (FAILSAFE)
- 화면 해상도 변경 시 좌표를 다시 등록해야 합니다
- 엑셀 파일은
.xlsx형식 권장