엑셀 매크로(VBA) 보안 경고 끝! 파이썬으로 똑같은 작업 대체하기

이미지
엑셀 매크로(VBA) 보안 경고 끝! 파이썬으로 똑같은 작업 대체하기 (완성 코드 공개) "매크로가 포함된 파일을 다른 사람에게 보내면 보안 경고 때문에 매크로 사용 설정을 매번 따로 해야 한다", "VBA 코드가 회사 PC마다 다르게 작동해서 디버깅이 어렵다", "매크로를 쓰는 동료가 퇴사하면 그 파일을 아무도 수정하지 못한다"… VBA 매크로는 엑셀 안에서 바로 실행되는 장점이 있지만, 보안 정책으로 차단되거나, 회사 PC마다 설정이 달라 오작동하거나, 코드 관리가 어려운 한계가 있습니다. 이 글에서는 이 블로그에서 지금까지 소개한 파이썬 코드들이 VBA의 어떤 기능을 대체할 수 있는지 비교하고, 대표적인 매크로 작업을 파이썬으로 구현하는 방법을 소개합니다. VBA 매크로 vs 파이썬 비교 VBA 매크로 파이썬 실행 환경 엑셀 안에서만 동작 독립적으로 어디서나 동작 보안 경고 매번 발생, 차단 가능 해당 없음 배포 파일에 코드 포함 스크립트 파일만 공유 디버깅 엑셀 VBA 편집기 사용 다양한 코드 에디터 사용 가능 다른 프로그램 연동 제한적 (Win API 필요) 매우 풍부함 (이메일, 웹, DB 등) 버전 관리(깃 등) 거의 불가능 일반적인 코드처럼 관리 가능 배우는 난이도 엑셀에 특화된 문법 범용 프로그래밍 언어, 활용도 넓음 💡 언제 VBA가 더 나을까: 엑셀을 열자마자 버튼 클릭으로 즉시 실행하고 싶거나, 엑셀 전용 UI(사용자 정의 양식)가 필요한 경우는 VBA가 더 간단할 수 있습니다. 하지만 안정성, 보안, 확장성을 고려하면 대부분의 반복 작업은 파이썬이 더 유리합니다. 대표 매크로 작업 1 — 여러 시트 합치기 VBA로 흔히 작성하는 "모...

PDF 신청서 양식 손으로 채우지 마세요! 파이썬으로 자동 작성하기

이미지
PDF 신청서 양식 손으로 채우지 마세요! 파이썬으로 자동 작성하기 (완성 코드 공개) "거래처 30곳에 보낼 신청서 PDF를 거래처명만 다르게 일일이 입력해야 한다", "정부 지원사업 신청서 양식이 PDF인데 같은 정보를 반복 입력해야 한다", "직원들의 휴가신청서를 매번 손으로 작성하고 있다"… 입력 가능한 PDF 양식(폼 필드가 있는 PDF)은 Adobe Acrobat에서 클릭해서 채우는 방식이 일반적이지만, 여러 개를 반복 작성해야 한다면 자동화가 훨씬 효율적입니다. 파이썬을 사용하면 PDF 양식의 입력란을 자동으로 채우고, 엑셀 목록을 기반으로 여러 개를 한꺼번에 생성할 수 있습니다. 1단계: 준비물 설치 파이썬이 설치되어 있어야 합니다. 없다면 python.org 에서 최신 버전을 받아 설치하세요. 설치 시 반드시 "Add Python to PATH" 에 체크해야 합니다. PDF 양식 처리에 필요한 라이브러리를 설치합니다. 터미널(윈도우: CMD 또는 파워셸)을 열고 아래 명령어를 실행하세요: pip install pypdf pandas openpyxl pypdf 는 PDF 안의 입력 가능한 폼 필드(텍스트 입력란, 체크박스 등)를 읽고 값을 채우는 기능을 지원합니다. pandas 와 openpyxl 은 엑셀 목록을 읽어 여러 신청서를 한꺼번에 생성하는 데 사용합니다. ⚠️ 중요한 전제조건: 이 방법은 PDF가 "입력 가능한 양식" (AcroForm)으로 만들어져 있을 때만 작동합니다. 그냥 스캔한 이미지 PDF나 텍스트만 있는 일반 PDF는 입력란이 없어 이 방법을 사용할 수 없습니다. PDF를 열었을 때 클릭하면 텍스트를 입력할 수 있는 칸이 있는지 먼저 확인하세요. 2단계: PDF의 입력란 이름 확인하기 PDF 양식을 채우려면 먼저 각 입력란의 내부 이름(필드명)을 알아야 합니다. 아래 코드로 확인할 수 있습니...

엑셀 수식 일일이 입력하지 마세요! 파이썬으로 함수 자동 삽입하기

이미지
엑셀 수식 일일이 입력하지 마세요! 파이썬으로 함수 자동 삽입하기 (완성 코드 공개) "매달 매출 데이터 행이 늘어날 때마다 합계 수식 범위를 다시 잡아야 한다", "거래처별 금액에 VLOOKUP을 걸어서 할인율을 매번 찾아야 한다", "조건에 따라 다른 결과를 보여주는 IF 수식을 수백 개 행에 똑같이 입력해야 한다"… 엑셀 수식을 셀 하나에 입력하고 드래그해서 채우는 작업은 데이터 양이 적을 때는 괜찮지만, 매번 데이터가 추가되거나 여러 파일에 똑같은 수식을 반복 적용해야 한다면 비효율적입니다. 파이썬을 사용하면 데이터 범위에 정확히 맞춰 수식을 자동으로 삽입할 수 있고, 엑셀에서 열면 일반 수식처럼 그대로 작동합니다. 1단계: 준비물 설치 파이썬이 설치되어 있어야 합니다. 없다면 python.org 에서 최신 버전을 받아 설치하세요. 설치 시 반드시 "Add Python to PATH" 에 체크해야 합니다. 터미널(윈도우: CMD 또는 파워셸)을 열고 아래 명령어를 실행하세요: pip install openpyxl pandas openpyxl 은 셀에 수식 텍스트를 직접 입력하는 기능을 지원합니다. 파이썬이 수식을 계산하는 것이 아니라, 엑셀이 인식할 수식 문자열을 셀에 써넣는 방식입니다. 파일을 엑셀로 열면 자동으로 계산됩니다. 💡 이 코드로 할 수 있는 것: SUM, AVERAGE 같은 집계 수식을 데이터 범위에 맞춰 자동 삽입, VLOOKUP으로 다른 시트의 값 참조, IF 조건 수식 일괄 적용, 수식을 행 전체에 자동으로 채우기까지 처리합니다. 2단계: 엑셀 파일 준비 아래처럼 1행이 헤더이고 2행부터 데이터가 입력된 형태면 됩니다. 거래처명 단가 수량 금액(수식 채울 열) 상태(수식 채울 열) A주식회사 50000 12 B기술연구소 30000 5 C물산 800...

회의록 작성 시간 끝! 파이썬으로 음성 녹음을 텍스트·요약으로 자동 변환하기

이미지
회의록 작성 시간 끝! 파이썬으로 음성 녹음을 텍스트·요약으로 자동 변환하기 (완성 코드 공개) "1시간짜리 회의 녹음을 다시 들으면서 회의록을 작성하느라 회의 시간보다 더 오래 걸린다", "출장 중 통화 내용을 녹음해뒀는데 텍스트로 정리할 시간이 없다", "여러 명이 참석한 회의 내용을 핵심만 요약해서 공유하고 싶다"… 회의록 작성은 회의 자체보다 시간이 더 걸리는 경우가 많습니다. 파이썬과 무료 음성 인식 라이브러리를 활용하면 녹음 파일을 텍스트로 자동 변환하고, 핵심 내용만 추출해서 워드 파일로 정리할 수 있습니다. 1단계: 준비물 설치 파이썬이 설치되어 있어야 합니다. 없다면 python.org 에서 최신 버전을 받아 설치하세요. 설치 시 반드시 "Add Python to PATH" 에 체크해야 합니다. 음성 인식에 필요한 라이브러리를 설치합니다. 터미널(윈도우: CMD 또는 파워셸)을 열고 아래 명령어를 실행하세요: pip install openai-whisper python-docx openai-whisper 는 OpenAI에서 공개한 무료 음성 인식 모델입니다. 별도 API 키나 인터넷 연결 없이 PC에서 직접 음성을 텍스트로 변환할 수 있습니다. 한국어 인식 성능이 뛰어난 편입니다. python-docx 는 결과를 워드 파일로 저장하는 데 사용합니다. ⚠️ 추가 설치 필요: Whisper는 내부적으로 FFmpeg 라는 프로그램이 필요합니다. ffmpeg.org 에서 윈도우용을 내려받아 압축을 풀고, 시스템 환경 변수 PATH에 bin 폴더 경로를 추가해야 합니다. 검색창에 "환경 변수 편집"을 입력하면 설정 화면을 찾을 수 있습니다. 2단계: 완성 코드 — 음성을 텍스트로 변환 아래 코드를 그대로 복사해서 메모장에 붙여넣고, transcribe.py 로 저장하세요. 저장 시 파일 형식은 "모든 파일...

코드에 비밀번호 그대로 적어두지 마세요! 파이썬으로 암호화 저장하기

이미지
코드에 비밀번호 그대로 적어두지 마세요! 파이썬으로 암호화 저장하기 (완성 코드 공개) 이 블로그에서 지금까지 소개한 이메일 발송, 카카오톡·텔레그램 연동, 구글 시트, 웹사이트 로그인 자동화 코드들을 다시 살펴보면 공통적으로 PASSWORD = "abc1234!" 처럼 비밀번호를 코드에 그대로 적어두는 부분이 있었습니다. 이 방식은 코드를 다른 사람과 공유하거나 깃허브에 업로드할 때 비밀번호가 그대로 노출되는 위험이 있습니다. 파이썬의 cryptography 라이브러리를 사용하면 비밀번호와 API 키 등 민감한 정보를 암호화해서 별도 파일에 저장하고, 실행할 때만 복호화해서 사용할 수 있습니다. 코드 자체에는 평문 비밀번호가 전혀 남지 않습니다. 1단계: 준비물 설치 파이썬이 설치되어 있어야 합니다. 없다면 python.org 에서 최신 버전을 받아 설치하세요. 설치 시 반드시 "Add Python to PATH" 에 체크해야 합니다. 암호화에 필요한 라이브러리를 설치합니다. 터미널(윈도우: CMD 또는 파워셸)을 열고 아래 명령어를 실행하세요: pip install cryptography cryptography 는 업계 표준 암호화 라이브러리입니다. 이 글에서는 그 중 가장 사용하기 쉬운 Fernet 방식(대칭키 암호화)을 사용합니다. 하나의 키로 암호화와 복호화를 모두 처리합니다. 💡 이 코드로 할 수 있는 것: 비밀번호, API 키, 토큰 등을 암호화해서 별도 파일에 저장하고, 프로그램 실행 시 키 파일로 복호화해서 사용합니다. 암호화된 파일만 봐서는 원래 내용을 알 수 없습니다. 2단계: 완성 코드 — 암호화 키 생성 (최초 1회만) 먼저 암호화·복호화에 사용할 키를 한 번만 생성합니다. 아래 코드를 generate_key.py 로 저장하고 실행하세요. from cryptography.fernet import Fernet # 암호화 키 생성 key = Fern...

사내 그룹웨어 매일 로그인 끝! 파이썬으로 웹사이트 자동 로그인하기

이미지
사내 그룹웨어 매일 로그인 끝! 파이썬으로 웹사이트 자동 로그인하기 (완성 코드 공개) "매일 아침 사내 그룹웨어에 로그인해서 출근 체크를 한다", "인트라넷에 로그인한 후 매번 같은 메뉴를 클릭해서 데이터를 확인한다", "여러 웹사이트에 로그인해서 정보를 확인하는 루틴이 매일 반복된다"… 이전 게시글 pyautogui 윈도우 자동화 편 에서는 좌표 기반으로 마우스·키보드를 제어하는 방법을 소개했습니다. 웹사이트 자동화에는 Selenium 이라는 전용 도구가 훨씬 안정적입니다. 브라우저 창의 위치나 크기가 바뀌어도 HTML 요소를 기준으로 정확하게 찾아서 클릭하기 때문입니다. 1단계: 준비물 설치 파이썬이 설치되어 있어야 합니다. 없다면 python.org 에서 최신 버전을 받아 설치하세요. 설치 시 반드시 "Add Python to PATH" 에 체크해야 합니다. 웹 자동화에 필요한 라이브러리를 설치합니다. 터미널(윈도우: CMD 또는 파워셸)을 열고 아래 명령어를 실행하세요: pip install selenium webdriver-manager selenium 은 브라우저를 코드로 제어하는 표준 라이브러리입니다. webdriver-manager 는 크롬 브라우저에 맞는 드라이버 파일을 자동으로 다운로드하고 관리해줍니다. 별도로 드라이버를 수동 설치할 필요가 없습니다. ⚠️ 중요한 주의사항: 이 코드는 본인이 권한을 가진 계정(사내 시스템, 개인 업무 계정)에만 사용해야 합니다. 타인의 계정이나 권한 없는 사이트에 자동 로그인을 시도하는 것은 명백한 불법 행위입니다. 또한 비밀번호를 코드에 평문으로 저장하는 것은 보안 위험이 있으므로, 실제 운영 시에는 아래 응용 섹션의 환경 변수 분리 방법을 꼭 적용하세요. 2단계: 완성 코드 아래 코드를 그대로 복사해서 메모장에 붙여넣고, web_login.py 로 저장하세요. 저장 시 파일 형식은 ...

한글 파일 열면 깨질 때! 파이썬으로 인코딩 자동 감지·변환하기

이미지
한글 파일 열면 깨질 때! 파이썬으로 인코딩 자동 감지·변환하기 (완성 코드 공개) "옛날 회계 시스템에서 받은 CSV 파일을 열면 한글이 ㅁㅁㅁ로 깨진다", "거래처에서 보내준 텍스트 파일이 메모장에서는 이상하게 보이는데 다른 프로그램에서는 정상이다", "수십 개의 파일을 일괄로 UTF-8로 통일해야 한다"… 한글 텍스트 파일이 깨지는 가장 흔한 원인은 인코딩 방식의 차이 때문입니다. 오래된 윈도우 프로그램은 EUC-KR (또는 CP949)을 사용하고, 최신 웹·프로그램은 UTF-8 을 사용합니다. 서로 다른 인코딩으로 저장된 파일을 잘못된 방식으로 열면 한글이 깨집니다. 파이썬을 한 번만 세팅해두면 파일의 인코딩을 자동으로 감지하고 원하는 인코딩으로 일괄 변환할 수 있습니다. 1단계: 준비물 설치 파이썬이 설치되어 있어야 합니다. 없다면 python.org 에서 최신 버전을 받아 설치하세요. 설치 시 반드시 "Add Python to PATH" 에 체크해야 합니다. 인코딩 감지에 필요한 라이브러리를 설치합니다. 터미널(윈도우: CMD 또는 파워셸)을 열고 아래 명령어를 실행하세요: pip install chardet chardet 은 파일의 바이트 패턴을 분석해서 어떤 인코딩으로 저장되었는지 자동으로 감지하는 라이브러리입니다. 파일을 직접 열어보지 않고도 인코딩을 알 수 있습니다. 💡 이 코드로 할 수 있는 것: 텍스트·CSV 파일의 인코딩을 자동으로 감지하고, 원하는 인코딩(UTF-8, EUC-KR, CP949 등)으로 변환해 저장합니다. 폴더 안의 여러 파일을 한꺼번에 처리할 수 있고, 변환 전후 인코딩을 로그로 기록합니다. 2단계: 완성 코드 아래 코드를 그대로 복사해서 메모장에 붙여넣고, encoding_convert.py 로 저장하세요. 저장 시 파일 형식은 "모든 파일" , 인코딩은 UTF-8 로 설정합니다....