반응형
코딩으로 시간 벌기 / 엑셀 VBA

일곱 번째 이야기: 보고서 자동화의 기초, 주소 지정의 기술

물류아재 칵칵 · 엑셀 VBA 시리즈 7편

안녕하세요, 물류와 코딩 사이의 경계에서 성장하고 있는 물류아재 칵칵입니다. 😊

지난 시간까지 우리는 색깔을 활용한 실무적인 팁들을 다뤄봤습니다. 이제는 한 단계 더 나아가 '보고서 자동화'라는 큰 그림을 그려보려 합니다. VBA로 보고서를 자동으로 만들 때 가장 먼저 배우는 것이 바로 "어떤 셀에 데이터를 입력할 것인가?" 즉, 셀의 주소를 지정하는 방법입니다.

엑셀 VBA에는 셀을 가리키는 두 가지 주요 방법이 있습니다. 바로 RangeCells입니다. 이 둘의 차이만 명확히 알아도 자동화 코드의 절반은 완성한 셈입니다.


직관적인 Range vs 유연한 Cells

📦 일상적인 비유로 이해하기
- Range: "서울시 강남구 테헤란로 123번지"처럼 우리가 흔히 쓰는 주소 방식입니다. 눈에 잘 보이고 직관적입니다.
- Cells: "위도 37.5, 경도 127.0"처럼 좌표로 찾는 방식입니다. 기계(VBA)가 반복적으로 데이터를 채울 때 훨씬 유리합니다.

언제 무엇을 써야 할까요? 🛠️

구분 사용 예시 장점
Range Range("A1") 가독성이 좋고 특정 범위를 한꺼번에 잡기 편함
Cells Cells(1, 1) 숫자로 제어하므로 반복문(For~Next) 활용에 최적

실전 코드: 데이터 순차적으로 채우기

물류 현장에서 매일 발생하는 입고 리스트를 작성한다고 가정해 봅시다. 1행부터 10행까지 '입고완료'라는 텍스트를 자동으로 채우는 코드입니다.

Sub AutoFillStatus()
    Dim i As Integer

    'Cells(행 번호, 열 번호) 형식을 사용합니다.
    For i = 1 To 10
        Cells(i, 1).Value = "입고완료"
    Next i

    MsgBox "10개 항목 업데이트 완료!"
End Sub
💡 칵칵의 실무 팁
만약 특정 구역(예: A1부터 B10까지)의 색상을 한꺼번에 바꾸고 싶다면 Range("A1:B10").Interior.Color = vbYellow처럼 Range를 쓰는 것이 훨씬 간결합니다. 상황에 맞춰 섞어 쓰는 것이 고수의 비결입니다!

🚨 초보자가 가장 많이 하는 실수

Cells의 순서를 헷갈리지 마세요!
엑셀 시트에서는 'A1'처럼 열(A)이 먼저 나오지만, VBA의 **Cells**에서는 **행(Row) 번호가 먼저** 나옵니다.
- Cells(1, 2)는 A2가 아니라 **B1**입니다! (1행의 2번째 열)

오늘은 VBA 자동화의 뼈대인 주소 지정 방식을 알아봤습니다. 이 기초가 탄탄해야 나중에 수만 줄의 데이터를 눈 깜짝할 새 처리하는 코드를 짤 수 있습니다.

다음 시간에는 이 Cells와 반복문을 활용해 "특정 조건에 맞는 데이터만 다른 시트로 추출하는 방법"을 다뤄보겠습니다. 본격적인 자동화의 시작이니 기대해 주세요! 😊

반응형

+ Recent posts