이 글에서는 엑셀 VBA에서 자주 사용하는 문자열 처리에 대한 함수의 사용법을 알아보고자 합니다. 엑셀의 특성상 숫자형과 문자열에 대한 자료형이 엑셀 작성시 가장 많이 사용되고 있습니다. 따라서 VBA에서 문자열을 효과적으로 처리하기 위해서는 문자열에 대한 처리를 원활하고 효율적으로 할 줄 알아야 합니다. 이 포스팅에서는 문자열을 잘라내는 Left, Right, Mid 함수와 문자열 길이를 파악하는 Len 함수 그리고 문자열에서 특정 문자열의 시작 인덱스를 파악하는 InStr함수를 알아보도록 하겠습니다. 위의 기능을 파악하기 위해서 사용하는 테스트 환경은 아래와 같습니다. 엑셀에서 A1에 아래와 같이 텍스트를 입력합니다. 그리고 Alt + F11을 눌러 Microsoft Visual Basic 창을 열어..
프로그래밍을 하다보면 Call By Reference(참조에 의한 호출), Call By Value(값에 의한 호출)라는 말을 많이 듣게 됩니다. 이는 함수에 값을 전달할 때 값을 복사하여 전달할 것인지, 자신의 값을 가진 메모리를 기반으로 전달할 것인지에 대한 차이입니다. (이해하기 어렵죠...) 프로그래밍을 할 때 어떠한 값을 임시적으로 저장하거나 그 값을 가져 올 때 PC는 메모리에서 그 값을 가져오게 됩니다. 실질적으로 변수를 하나 만들어서 변수에 값을 넣게 되면 변수는 메모리에 할당되어 할당된 메모리에 값을 저장하거나, 저장된 값을 할당된 메모리로 부터 가져오는 것이지요. 변수에 대해서 잘 모르시겠다면, 아래의 링크를 참조하세요 2014/11/21 - [프로그래밍 팁s/Excel(Macro, V..
엑셀의 워크시트에는 다양한 데이터형을 지원하기 위한 데이터 타입이 있습니다. 이러한 데이터 타입 사이에서 데이터를 변환하는 방법에 대해서 오늘은 알아보도록 하겠습니다. VBA의 대표적인 데이터 변환 함수는 C + 데이터형 이름을 가진 함수들입니다. VBA에서 지원하는 C함수들의 목록은 아래와 같습니다. 함수 이름 기능 설명 CBool 전달된 식 혹은 값을 불리언 형으로 변경합니다. CByte 전달된 식 혹은 값을 바이트 형으로 변경합니다. CInt 전달된 식 혹은 값을 정수 형으로 변경합니다. CLng 전달된 식 혹은 값을 Long 형으로 변경합니다. CSng 전달된 식 혹은 값을 Single 형으로 변경합니다. CDbl 전달된 식 혹은 값을 Double 형으로 변경합니다. CDec 전달된 식 혹은 값을..
Option Explicit는 명시적 선언을 통해서 변수를 선언할 때 사용하는 구문입니다. 그럼 명시적 선언이란 무엇일까요? 명시적 선언이란 변수를 이용하기 전에 반드시 변수를 Dim을 통해서 선언을 해야 한다는 의미입니다. 명시적 선언의 반대의 의미는 암시적 선언입니다. 즉 VBA 코드의 가장 상위단에 Option Explicit이 있다면 명시적 선언을, Option Explicit이 없다면 암시적 선언을 사용하게 되는것 입니다. 명시적 선언과 암시적 선언의 MSDN의 자료는 아래와 같이 나와 있습니다. 명시적 선언기본적으로 Visual Basic 컴파일러에서는 명시적 선언을 사용합니다. 따라서 모든 변수를 사용하기 전에 선언해야 합니다. 이 요구 사항을 무시하고 암시적 선언을 허용할 수 있습니다. O..
엑셀 워크시트에서 계산을 편리하게 처리하기 위해서 함수를 사용할 수 있습니다. 오늘은 이 함수 중 IF 함수에 대해서 알아보고, 이를 VBA에서 적용할 수 있는 방법을 추가적으로 설명드리도록 하겠습니다. 엑셀 IF 함수 IF 함수는 조건에 따라서 특정 셀에 특정 값을 대입하기 위해서 사용되는 함수입니다. IF 함수는 지정한 조건이 TRUE이면 특정 값을 반환하고 FALSE이면 다른 값을 반환합니다. 구문은 아래와 같습니다. IF(logical_test, value_if_true, value_if_false) logical_test : TRUE나 FALSE로 평가될 수 있는 임의의 값 또는 식입니다. 예를 들어 A10=100은 A10 셀의 값이 100이면 True가 아니면 False의 결과가 됩니다.val..