본문 바로가기
반응형

#4 VBA40

Variant형의 특징과 주의점 엑셀 VBA에서 Variant 형은 “무엇이든 담을 수 있는 그릇”이다. 이 글에서는 Variant형의 동작 원리, 메모리 구조, 속도·안정성에 미치는 영향, 주의해야 할 함정을 실무 위주로 정리하여, 잘못 사용했을 때 발생할 수 있는 오류와 성능 저하를 예방하고자 한다.1. Variant형이란 무엇인가?Variant는 VBA의 기본(암시적) 데이터형으로, 숫자·문자·Object·배열·Null·Error까지 모두 보관할 수 있다. 내부적으로는 16바이트 Fixed Header + 가변 데이터 구조로 동작하며, SubType(Tag) 필드를 통해 현재 담긴 실제 형식을 결정한다.구성 요소크기(바이트)설명Type Descriptor2현재 저장된 서브타입 코드(예: 2 = Integer, 8 = String).. 2025. 8. 8.
Boolean형과 논리연산자(And, Or 등) 이 글은 Excel 및 VBA에서 Boolean형과 주요 논리연산자(And, Or, Not, Xor)를 완벽하게 이해하고 실무에 즉시 활용할 수 있는 팁과 주의사항을 제공하는 것을 목적으로 한다.Boolean 데이터형의 핵심 이해Boolean은 True·False의 두 값으로 표현되는 1비트 논리형이다. 그러나 Excel VBA에서는 2바이트(16 비트)로 저장되며, 내부적으로 True=-1, False=0로 처리된다. 워크시트에서 TRUE/FALSE는 1·0으로 암묵적 형변환이 발생한다.구분VBA 저장값워크시트 변환값메모리 크기True-112 ByteFalse002 Byte주요 논리연산자와 기능연산자설명우선순위예시 결과And모든 조건이 True일 때 True3True And False = FalseOr.. 2025. 8. 7.
문자형(String)과 문자열 연결(&) 본 글은 엑셀 VBA에서 String 데이터형과 문자열 연결 연산자 &의 올바른 활용 방법을 정리하여, 실무자가 다양한 데이터 가공 업무를 신속히 처리하도록 돕는 것을 목적으로 한다.문자형(String) 데이터형 기본 개념문자형(String)은 문자, 숫자, 기호를 포함한 텍스트 데이터를 저장하는 데이터형이다.영문·한글 모두 지원하며, 내부적으로 Unicode(UTF-16)로 관리한다.VBA에서 기본 길이 제한은 0~2,147,483,647(≈2 GB) 문자이며, 동적 길이이므로 가변 할당된다.데이터형저장 크기저장 내용예시String (변동)2 바이트 × 문자수텍스트, 숫자, 특수문자"Excel 2025"Integer2 바이트정수(-32,768~32,767)2025Long4 바이트정수(-2,147,483.. 2025. 8. 6.
데이터형(Integer, Long, Double 등) 구분 엑셀 VBA에서 효율적인 코딩을 하려면 변수 선언 시 적절한 데이터형을 선택하여 메모리를 절약하고 실행 속도를 최적화해야 한다. 본 글은 Integer, Long, Double 등의 기본 데이터형을 비롯해 Currency, Date, String, Variant 등 주요 자료형의 특성과 선택 기준을 정리한다.1. VBA 기본 데이터형 총정리데이터형저장 크기표현 범위 또는 형태주요 용도Byte1 Byte0 ~ 255바이너리 데이터, ASCII 문자Boolean2 ByteTrue (-1), False (0)조건 판별 논리값Integer2 Byte-32,768 ~ 32,767작은 정수 카운터Long4 Byte-2,147,483,648 ~ 2,147,483,647대용량 행/열 인덱스Single4 Byte±3.4.. 2025. 8. 5.
상수(Constant) 선언 방법 VBA(Visual Basic for Applications)에서 상수 Const 선언 방법을 명확히 이해하면 코드 가독성과 유지보수성이 크게 향상된다. 본 글은 상수 선언의 원칙, 범위, 자료형 지정, 실무 적용 예시, 자주 묻는 질문을 총정리하여 엑셀 업무에 즉시 활용할 수 있도록 안내한다.상수 선언의 필요성변수와 달리 상수(Constant)는 실행 중 값이 변경되지 않는 식별자이다. 하드코딩된 숫자나 문자열을 상수로 치환하면 다음과 같은 효과를 얻는다.코드 의미 전달력이 높아진다 ― ‘VAT_RATE’가 ‘0.1’보다 직관적이다.오타나 계산 실수를 방지한다 ― 한곳에서 정의 후 참조만 한다.유지보수가 용이하다 ― 값 변경 시 선언부만 수정한다.컴파일 최적화가 적용되어 실행 속도가 소폭 향상된다.참고.. 2025. 8. 4.
전역 변수와 지역 변수 차이 본 글은 프로그래밍 초심자부터 중급 개발자, 그리고 Excel VBA를 활용하는 실무자가 전역 변수(Global Variable)와 지역 변수(Local Variable)의 개념‧특성‧활용 전략을 명확히 이해하도록 돕는 것을 목적으로 한다. 실전 사례와 코드 예시를 풍부하게 제시하여, 독자가 자신의 프로젝트에 즉시 적용할 수 있는 지식을 제공한다.변수 범위와 선언 위치의 의미변수는 데이터를 일시적으로 보관하는 메모리 공간이다. 그러나 어디서 선언했는가, 언제까지 살아 있는가에 따라 프로그램 동작과 디버깅 난이도가 크게 달라진다. 범위(Scope)는 변수에 접근 가능한 코드 영역을, 수명(Lifetime)은 변수 유지 시간을 의미한다.전역 변수(Global Variable)란?선언 위치 : 모듈 최상단, .. 2025. 7. 31.
Option Explicit와 변수 선언 강제 이 글은 VBA 코드 상단에 Option Explicit를 선언함으로써 변수 선언을 강제하고 실수를 방지하는 방법을 설명하여, 실무에서 발생할 수 있는 런타임 오류와 디버깅 시간을 최소화하기 위함이다.Option Explicit의 개념과 필요성Option Explicit는 모듈의 첫 줄에 선언하여 모든 변수를 명시적으로 선언하도록 강제하는 지시문이다. 선언하지 않은 변수를 사용하려 하면 컴파일 단계에서 Variable not defined 오류가 발생한다. 이는 오타·형식 오류를 조기에 발견하게 하므로 코드 안정성이 향상된다.구분Option Explicit 사용Option Explicit 미사용컴파일 시점미선언 변수 검출검출하지 못함런타임 오류감소증가디버깅 시간단축장기화코드 신뢰성높음낮음VBA에서 변수 .. 2025. 7. 30.
변수의 범위(Public, Private) 엑셀 VBA에서 변수의 범위(scope)와 수명(lifetime)을 정확히 이해하면 모듈 간 데이터 교환, 메모리 관리, 디버깅 효율이 획기적으로 향상된다. 본 글은 Public과 Private을 중심으로 각 선언 키워드가 실제 코드에서 어떻게 작동하는지를 다룬다. 실무 예제와 표를 통해 독자가 즉시 현장 적용할 수 있는 지식을 제공한다.변수 범위와 수명의 개념범위(scope)란 변수를 참조할 수 있는 코드 영역이며, 수명(lifetime)은 변수가 메모리에 존재하는 기간이다. VBA는 모듈 구조 언어이므로 프로시저 수준, 모듈 수준, 프로젝트(전역) 수준으로 구분한다.프로시저 수준(Local)Dim 또는 Static으로 선언한다.변수는 해당 프로시저 내부에서만 참조 가능하다.Dim → 프로시저 종료 시.. 2025. 7. 29.
반응형