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단축키 실행
키보드pasteCtrl+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. 프로젝트 생성

  1. "새 프로젝트" 클릭 → 이름 입력
  2. 편집 화면 진입

2. 리소스 등록

  • 좌표: "+ 새 좌표 추가" → 3초 카운트다운 후 마우스 위치 캡처 → 이름 입력
  • 엑셀: "+ 새 엑셀 추가" → 파일 선택 → 시트/컬럼 선택 → 이름 입력
  • 이미지: "+ 새 이미지 추가" → 파일 선택 → 이름/정확도 입력

3. 플로우 구성

  1. "액션 추가" 클릭 → 액션 타입 선택 → 파라미터 설정
  2. 드래그 앤 드롭으로 순서 조정
  3. 📋 버튼으로 액션 복제

4. 실행

  1. "완료" 클릭 → 실행 화면
  2. "실행 설정"에서 반복 횟수/무한 반복 설정
  3. F9 키로 시작 (3초 카운트다운 후 실행)
  4. 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 형식 권장