엑셀 & VBA/엑셀 VBA 강좌

엑셀 VBA 강좌(7): 엑셀 VBA 언어 기본-문법(Syntax)

ProDA 2021. 7. 24.

이 글은 새로운 블로그로 옮겼습니다. 5초후 자동으로 이동합니다.

▶ 새로운 블로그 주소: https://prodskill.com/

▶ 새로운 글 주소: https://prodskill.com/excel-vba-lecture-7-syntax/

이번 글은 엑셀 VBA언어 기본 중 문법(Syntax)에 대해 살펴본다.

 

이전 글에서 이어지는 내용이다.

엑셀 VBA 강좌(6): 엑셀 VBA 언어 기본-변수

 

엑셀 VBA 강좌(6): 엑셀 VBA 언어 기본-변수

이전 글에서 이어지는 내용이다. 엑셀 VBA 강좌(5): 엑셀 파일 확장자, VBE 엑셀 VBA 강좌(5): 엑셀 파일 확장자, VBE 이전 글에서 이어지는 내용이다. 엑셀 VBA 강좌(4): 엑셀 Object Model 다루기 엑셀 V

prodtool.tistory.com

 

 


목차


     

    3.2. 언어 문법(Syntax)

    VBA 언어 문법은 Visual Basic 문법과 동일하다. 처음에는 모든 문법을 다 알 필요가 없고, 여기에 요약한 문법만 알아도 충분하다. 전체 문법은 하단에 첨부한 Visual Basic CHM 도움말 파일을 참고한다.

    VBA 언어에 대한 온라인 도움말(영어로만 제공됨)은 아래 URL에서 확인할 수 있다.

    https://docs.microsoft.com/en-us/office/vba/api/overview/language-reference

     

    Language reference for Visual Basic for Applications (VBA)

    Conceptual overviews, programming tasks, samples, and references to guide you in developing solutions based on Visual Basic for Applications.

    docs.microsoft.com

     

    Language reference for Visual Basic for Applications (VBA)
    Language reference for Visual Basic for Applications (VBA)

     

    3.2.1. 조건문(IF)

    식의 값에 따라 문 그룹을 조건부로 실행한다.

    Single line IF 문법

    If condition Then [statements] [Else elsestatements]

    Single line IF sample code

    If Digits = 1 Then MyString = "One" Else MyString = "More than one"

     

    Multiple line IF 문법

    If condition Then
        [statements]
    [ElseIf condition -n Then
        [elseif statements]...]
    [Else
        [else statements]]
    End If

     

    Visual Basic 도움말

    구성 요소 설명
    condition 필수적인 요소. 다음과 같은 두 가지 형식 중 하나 이상의 식입니다.
    TrueFalse로 평가되는 수식이나 문자식으로 conditionNull이면 False로 처리됩니다.
    TypeOf objectname Is objecttype 형태로 된 식입니다. Objectname은 개체 참조이며, objecttype은 유효한 개체 형식입니다. Objectnameobjecttype에 의해 지정된 개체 형식이면 식은 True이며, 그렇지 않으면 False입니다.
    statements 블록 형태에서는 선택적인 요소이고, Else절이 없는 단일 행 형태에서는 필수적인 요소입니다. 둘 이상의 문은 콜론으로 구분하며 conditionTrue일 경우 실행됩니다.
    condition -n 선택적인 요소. condition 동일합니다.
    elseif statements 선택적인 요소. 연관된 condition-nTrue일 경우 실행되는 하나 이상의 문입니다.
    else statements 선택적인 요소. 이전의 condition이나 condition-n식이 True가 아닐 경우 실행되는 하나 이상의 문입니다.

    * 참고: 위 내용은 한글로 번역된 chm 도움말에서 발췌하였다. 온라인 도움말은 아래 URL을 참고한다.

    https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/ifthenelse-statement

     

    If...Then...Else statement (VBA)

    If...Then...Else statement In this article --> Conditionally executes a group of statements, depending on the value of an expression. Syntax If condition Then [ statements ] [ Else elsestatements ] Or, you can use the block form syntax: If condition Then [

    docs.microsoft.com

     

    Multiple line IF sample code

    Dim Number, Digits, MyString
    Number = 53    ' 변수를 초기화합니다.
    If Number < 10 Then
        Digits = 1
    ElseIf Number < 100 Then '조건이 True로 평가되면 다음 문이 실행됩니다.
        Digits = 2
    Else ' 조건이 False로 평가되면 다음 문이 실행됩니다.
        Digits = 3
    End If

     

     

    3.2.2. 조건함수(IIF)

    식을 평가한 결과에 따라 두 개의 값 중에서 하나를 반환한다.

    IIF는 함수(function)이고, If ~ Else ~ End If 구문을 간략하게 표현할 때 사용한다.

    IIF 문법

    IIf(expr, true part, false part)

    Visual Basic 도움말

    구성요소 설명
    expr 필수적인 요소. 평가하고자 하는 식
    true part 필수적인 요소. exprTrue인 경우 반환하는 값이나 식입니다.
    false part 필수적인 요소. exprFalse인 경우 반환하는 값이나 식입니다.

    * 참고: 위 내용은 한글로 번역된 chm 도움말에서 발췌하였다. 온라인 도움말은 아래 URL을 참고한다.

    https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/iif-function

     

    IIf function (Visual Basic for Applications)

    IIf function In this article --> Returns one of two parts, depending on the evaluation of an expression. Syntax IIf(expr, truepart, falsepart) The IIf function syntax has these named arguments: Part Description expr Required. Expression that you want to ev

    docs.microsoft.com

     

    IIF sample code

    Function CheckIt (TestMe As Integer)
        CheckIt = IIf(TestMe > 1000, "Large", "Small")
    End Function

     

     

    3.2.3. 조건문(Select Case)

    식의 값에 따라 몇 개 그룹의 문 중의 하나를 실행한다.

    Select Case 조건문 문법

    Select Case test expression
        [Case expressionlist-n
                [statements-n]] ...
        [Case Else
                [else statements]]
    End Select

     

    Visual Basic 도움말

    구성요소 설명
    test expression 필수적인 요소. 모든 수식이나 문자식입니다.
    expression list-n Case 문을 사용하는 경우에는 필수적인 요소입니다. expression, expression To expression, Is comparisonoperator expression과 같은 형식들 중 하나 이상의 구분된 목록으로 구성됩니다. To 키워드는 값의 범위를 지정합니다. To 키워드를 사용하는 경우에는 더 작은 값이 To문 앞에 와야 합니다. 값의 범위를 지정하려면 비교 연산자(Is 문과 Like문은 제외)와 함께 Is 키워드를 사용합니다. Is 키워드를 입력하지 않으면 자동으로 삽입됩니다.
    statements-n 선택적인 요소. testexpression에 대응하는 expressionlist가 있는 경우 해당되는 하나 이상의 문이 실행됩니다.
    else statements 선택적인 요소. testexpression에 대응하는 Case절이 없는 경우 해당되는 하나 이상의 문이 실행됩니다.

    * 참고: 위 내용은 한글로 번역된 chm 도움말에서 발췌하였다. 온라인 도움말은 아래 URL을 참고한다.

    https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/select-case-statement

     

    Select Case statement (VBA)

    Select Case statement In this article --> Executes one of several groups of statements, depending on the value of an expression. Syntax Select Case testexpression [ Case expressionlist-n [ statements-n ]] [ Case Else [ elsestatements ]] End Select The Sele

    docs.microsoft.com

     

    Select Case 조건문 sample code

    Function Bonus(performance, salary)
        Select Case performance
            Case 1
                Bonus = salary * 0.1
            Case 2, 3
                Bonus = salary * 0.09
            Case 4 To 6
                Bonus = salary * 0.07
            Case Is > 8
                Bonus = 100
            Case Else
                Bonus = 0
        End Select
    End Function

     

     

    3.2.4. 반복문(For)

    문의 그룹을 지정한 횟수만큼 반복한다.

    For Next 반복문 문법

    For counter= start To end [Step step]
        [statements]
        [Exit For]
        [statements]
    Next [counter]

     

    구성 요소 설명
    counter 필수적인 요소. 루프 카운터로서 사용되는 숫자 변수. 이 변수는 Boolean 또는 배열 요소가 될 수 없습니다.
    start 필수적인 요소. Counter의 시작값
    end 필수적인 요소. Counter의 최종값
    step 선택적인 요소. 루프를 한번 수행할 때마다 변화하는 counter의 양입니다. 지정하지 않으면 step의 기본값은 1입니다.
    statements 선택적인 요소. ForNext 사이의 있는 하나 이상의 문이며 지정한 횟수만큼 실행됩니다.

    * 참고: 위 내용은 한글로 번역된 chm 도움말에서 발췌하였다. 온라인 도움말은 아래 URL을 참고한다.

    https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/fornext-statement

     

    For...Next statement (VBA)

    For...Next statement In this article --> Repeats a group of statements a specified number of times. Syntax For counter = start To end [ Step step ] [ statements ] [ Exit For ] [ statements ] Next [ counter ] The For…Next statement syntax has these parts:

    docs.microsoft.com

     

    For Next 반복문 sample code

    Dim Words, Chars, MyString
    For Words = 10 To 1 Step -1     ' 10번 반복을 설정합니다.
        For Chars = 0 To 9    ' 10번 반복을 설정합니다.
            MyString = MyString & Chars    ' 숫자를 문자열에 추가합니다.
        Next Chars    ' 카운터 증가
        MyString = MyString & " "    ' 빈 칸을 추가합니다.
    Next Words

     

     

    3.2.5. 반복문(For Each)

    배열이나 컬렉션의 각 요소들에 대한 문의 그룹을 반복한다.

     

    For Each 반복문 문법

    For Each element In group
        [statements]
        [Exit For]
        [statements]
    Next [element]

     

    구성 요소 설명
    element 필수적인 요소. 컬렉션이나 배열의 요소들을 반복 실행하는 데 사용하는 변수입니다. 컬렉션에서 element는 오직 Variant 변수나 일반 개체 변수 또는 특정한 개체 변수가 될 수 있습니다. 배열에서 element는 오직 Variant 변수만 될 수 있습니다.
    group 필수적인 요소. 각 개체 컬렉션이나 배열의 이름(사용자 정의 형식 배열은 제외)입니다.
    statements 선택적인 요소. group의 각 항목에서 실행되는 하나 이상의 문입니다.

    * 참고: 위 내용은 한글로 번역된 chm 도움말에서 발췌하였다. 온라인 도움말은 아래 URL을 참고한다.

    https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/for-eachnext-statement

     

    For Each...Next statement (VBA)

    For Each...Next statement In this article --> Repeats a group of statements for each element in an array or collection. Syntax For Each element In group [ statements ] [ Exit For ] [ statements ] Next [ element ] The For...Each...Next statement syntax has

    docs.microsoft.com

     

    For Each 반복문 sample code

    Dim Found, MyObject, MyCollection
    Found = False    ' 변수를 초기화합니다.
    For Each MyObject In MyCollection    ' 각각의 요소에 대해 반복합니다.
        If MyObject.Text = "Hello" Then    ' Text가 "Hello"라면.
            Found = True    ' Found변수를 True로 설정합니다.
            Exit For    ' 루프를 종료합니다.
        End If
    Next

     

     

    3.2.6. 반복문(While)

    주어진 조건이 True인 동안은 일련의 문을 계속 실행한다.

    While 반복문 문법

    While condition
        [statements]
    Wend

     

    구성 요소 설명
    condition 필수적인 요소. TrueFalse로 평가되는 수식 또는 문자식. 만약 conditionNull인 경우 conditionFalse로 처리됩니다.
    statements 선택적인 요소. 주어진 조건이 True인 동안 하나 이상의 문을 실행합니다.

    * 참고: 위 내용은 한글로 번역된 chm 도움말에서 발췌하였다. 온라인 도움말은 아래 URL을 참고한다.

    https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/whilewend-statement

     

    While...Wend statement (VBA)

    While...Wend statement In this article --> Executes a series of statements as long as a given condition is True. Syntax While condition [ statements ] Wend The While...Wend statement syntax has these parts: Part Description condition Required. Numeric expr

    docs.microsoft.com

     

    While 반복문 sample code

    Dim Counter
    Counter = 0    ' 변수를 초기화합니다.
    While Counter < 20    ' 변수 Counter 값을 검사합니다.
        Counter = Counter + 1    ' 변수 Counter 값을 1씩 증가시킵니다.
    Wend    ' 변수 Counter의 값이 19보다 크면 While 루프를 종료합니다.
    Debug.Print Counter        ' 직접 실행 창에 20을 인쇄합니다.

     

     

    3.2.7. 반복문 제어(Exit, Continue)

    반복문 수행 중 특정 조건일 때 반복을 중단하는 구문은 Exit For를 사용하면 된다. 하지만, 반복을 skip하는 continue 구문은 VBA에서 지원하지 않는다. IF block 또는 Goto 구문으로 제어한다.

     

    If block 사용 방법

    • 특정 조건을 만족하는 경우에만 구문이 실행되도록 If block으로 감싸는 방법
    • 코드의 초기에 확정된 변수값을 기준으로 continue 처리를 하는 경우 사용할 수 있음
    • 조건이 복잡하거나 초기에 변수값이 확정되지 않는다면 사용하기 어려움
    For iSht = 1 To aBook.Worksheets.Count
        Set oSht = aBook.Sheets(iSht)
     
        If (IsColumnMappingSheet(oSht)) and (lRowOffset >= 0)
            ...
            ...
        End If
    Next iSht

     

    Goto 사용 방법

    • 코드의 중간 중간에 계산 또는 특정 조건에 의해 continue 처리를 하는 경우에 사용함
    • Loop의 가장 아래쪽(Next 바로 위)에 이동할 위치를 label로 지정하고 If 조건문에서 Goto 구문 사용
    • 시작, 중간 어느 부분에서나 사용가능함
    For iSht = 1 To aBook.Worksheets.Count
        Set oSht = aBook.Sheets(iSht)
     
        If Not IsColumnMappingSheet(oSht) Then GoTo Continue_To_Next_Sheet
        ...
        If lRowOffset < 0 Then GoTo Continue_To_Next_Sheet
        ...
    Continue_To_Next_Sheet:
    Next iSht

     

     

    3.2.8. 프로시져(Procedure)

    프로시져는 대표적으로 Sub, Function이 있다.

     

    Sub 프로시져 문법

    [Private | Public] [Static] Sub name [(arglist)]
        [statements]
        [Exit Sub]
        [statements]
    End Sub

     

    구성 요소 설명
    Public 선택적인 요소. 모듈내의 모든 프로시저에서 해당 Sub 프로시저를 호출할 수 있음을 나타냅니다. 만약 Option Private 문이 있는 모듈에서 사용한다면 그 프로시저를 프로젝트 외부에서 호출할 수 없습니다.
    Private 선택적인 요소. Sub 프로시저는 선언된 모듈 내의 다른 프로시저에서만 호출할 수 있음을 나타냅니다.
    Friend 선택적인 요소. 클래스 모듈에서만 사용됩니다. Sub 프로시저가 프로젝트 전체에서 인식되지만 개체의 인스턴스 컨트롤러에서는 인식될 수 없음을 나타냅니다.
    Static 선택적인 요소. Sub 프로시저의 지역 변수가 함수 호출마다 유지됨을 나타냅니다. 프로시저에서 사용되어도 Sub 밖에서 선언된 변수는 Static 속성을 갖지 못합니다.
    name 필수적인 요소. Sub 이름이며, 표준 변수 명명 규칙을 따릅니다.
    arglist 선택적인 요소. 호출될 때 Sub 프로시저에게 전달되는 인수를 나타내는 변수 목록입니다. 다수의 변수일 경우 콤마(,) 기호로 분리합니다.
    statements 선택적인 요소. Sub 프로시저에서 실행되는 의 집합입니다.

     

    arglist 인수는 다음과 같은 구성 요소로 되어 있습니다.

    [Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type] [= defaultvalue]

    구성 요소 설명
    Optional 선택적인 요소. 인수가 필수가 아님을 나타내는 키워드입니다. Optional을 사용하면 arglist에 사용된 인수는 모두 선택 사항이며 Optional 키워드를 사용하여 선언해야 합니다. 모든 Optional 인수는 Variant이어야 하며 OptionalParamArray와 함께 사용할 수 없습니다.
    ByVal 선택적인 요소. 인수가 값에 의한 전달임을 나타냅니다.
    ByRef 선택적인 요소. 인수가 참조에 의한 전달임을 나타냅니다. Visual Basic에서는 ByRef가 기본값입니다.
    ParamArray 선택적인 요소. arglist에서 마지막 인수로 사용되며 마지막 인수가 Variant 요소의 Optional 배열임을 나타냅니다. ParamArray 키워드를 사용하면 임의 개수의 인수들을 사용할 수 있으며, ByVal, ByRef 또는 Optional과 함께 사용할 수 없습니다.
    varname 필수적인 요소. 인수를 나타내는 변수의 이름을 말하며 표준 변수 명명 규칙을 따릅니다.
    type 선택적인 요소. 프로시저에 전달되는 인수의 데이터 형식을 말하며 다음과 같습니다. Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal(현재는 지원 안함), Date, String(가변 길이 문자열만 가능), Object, Variant매개 변수가 Optional이 아니면, 사용자 정의 형식개체 형식을 지정할 수도 있습니다.
    defaultvalue 선택적인 요소. 상수 혹은 상수 이며, Optional 매개 변수일 경우만 유효합니다. Object 형식일 경우 명시적인 기본값으로는 Nothing만 가능합니다.

    * 참고: 위 내용은 한글로 번역된 chm 도움말에서 발췌하였다. 온라인 도움말은 아래 URL을 참고한다.

    https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/sub-statement

     

    Sub statement (VBA)

    Sub statement In this article --> Declares the name, arguments, and code that form the body of a Sub procedure. Syntax [ Private | Public | Friend ] [ Static ] Sub name [ ( arglist ) ] [ statements ] [ Exit Sub ] [ statements ] End Sub The Sub statement sy

    docs.microsoft.com

     

    Sub 프로시져 sample code

    ' 하위 프로시저 정의입니다.
    ' 두개의 인수를 가진 하위 프로시저입니다.
    Sub SubComputeArea(Length, TheWidth)
        Dim Area As Double    ' 지역 변수를 선언합니다.
        If Length = 0 Or TheWidth = 0 Then
        ' 만약 두 인수가 모두 0이면,
            Exit Sub    ' Sub를 즉시 종료합니다.
        End If
        Area = Length * TheWidth    ' 사각형의 면적을 계산합니다.
        Debug.Print Area    ' 지역을 디버그 창에 인쇄합니다.
    End Sub

     

    Function 프로시져 문법

    [Public | Private | Friend] [Static] Function name [(arglist)] [As type]
        [statements]
        [name = expression]
        [Exit Function] 
        [statements]
        [name = expression]
    End Function

     

    구성 요소 설명
    Public 선택적인 요소. Function 프로시저는 모든 모듈의 모든 프로시저에 액세스할 수 있음을 나타냅니다. 프로시저가 Option Private을 갖고 있는 모듈에서 사용되면 프로젝트 밖에서는 사용할 수 없습니다.
    Private 선택적인 요소. Function 프로시저는 이 프로시저가 선언된 모듈에서만 다른 프로시저에 액세스할 수 있음을 나타냅니다.
    Friend 선택적인 요소. 클래스 모듈에서만 사용됩니다. Function 프로시저가 프로젝트 전체에서 인식되지만 개체의 인스턴스 컨트롤러에서는 인식될 수 없음을 나타냅니다.
    Static 선택적인 요소. Function 프로시저의 지역 변수가 호출 내에서 보존됨을 나타냅니다. Static 속성은 Function 밖에서 선언된 변수가 프로시저에서 사용된다 하더라도 이 변수에 영향을 미치지 않습니다.
    name 필수적인 요소. Function의 이름이며 표준 변수 명명 규칙에 따릅니다.
    arglist 선택적인 요소. 호출하면 Function 프로시저에 전달되는 인수를 나타내는 변수의 목록입니다. 변수가 여러 개인 경우에는 쉼표로 구분됩니다.
    type 선택적인 요소. Function 프로시저에 의해 반환되는 값의 데이터 형식은 다음과 같습니다. Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal(현재 지원 안됨), Date, String,(가변 길이 제외), Object, Variant, 사용자 정의 형식
    statements 선택적인 요소. Function 프로시저 내부에서 실행될 명령문의 그룹입니다.
    expression 선택적인 요소. Function 값을 반환합니다.

     

    arglist 인수는 다음과 같은 구문과 구성 요소를 가집니다.

    [Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type] [= defaultvalue]

     

    구성 요소 설명
    Optional 선택적인 요소. 인수가 필요하지 않음을 나타냅니다. 인수가 사용되려면 arglist에 있는 모든 다음 인수들을 선택적으로 사용되며 Optional 키워드를 사용하여 선언해야 합니다. 만약 ParamArray가 사용되면 Optional은 어떤 인수에 대해서도 사용될 수 없습니다.
    ByVal 선택적인 요소. 인수가 값에 의한 전달임을 나타냅니다.
    ByRef 선택적인 요소. 인수가 참조에 의한 전달임을 나타냅니다. Visual Basic에서는 ByRef가 기본값입니다.
    ParamArray 선택적인 요소. 마지막 인수가 Variant 요소의 Optional 배열임을 나타내도록 arglist에 있는 마지막 인수로서만 사용됩니다. ParamArray 키워드를 사용하면 임의 개수의 인수를 사용할 수 있으며, 이 키워드는 ByVal, ByRef, Optional과 함께 사용될 수 없습니다.
    varname 필수적인 요소. 인수를 나타내는 변수의 이름이며 표준 변수 명명 규칙에 따릅니다.
    type 선택적인 요소. 프로시저에 전달되는 인수의 데이터 형식은 Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal(현재 지원 안됨) Date, String (가변 길이의 경우), Object, Variant, 특정한 개체 형식 등이 됩니다. 매개 변수가 Optional이 아니라면 사용자 정의 형식도 지정할 수 있습니다.
    defaultvalue 선택적인 요소. 상수나 상수식이며 Optional 매개 변수에 대해서만 유효합니다. 형식이 Object면 명시적 기본값은 Nothing으로만 됩니다.

    * 참고: 위 내용은 한글로 번역된 chm 도움말에서 발췌하였다. 온라인 도움말은 아래 URL을 참고한다.

    https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/function-statement

     

    Function statement (VBA)

    Function statement In this article --> Declares the name, arguments, and code that form the body of a Function procedure. Syntax [Public | Private | Friend] [ Static ] Function name [ ( arglist ) ] [ As type ] [ statements ] [ name = expression ] [ Exit Fu

    docs.microsoft.com

     

    Function 프로시져 sample code

    ' 다음의 사용자 정의 함수는
    ' 전달된 인수의 제곱근을 반환합니다.
    Function CalculateSquareRoot(NumberArg As Double) As Double
        If NumberArg < 0 Then    ' 인수를 계산합니다.
            Exit Function    ' 프로시저 호출을 종료합니다.
        Else
            CalculateSquareRoot = Sqr(NumberArg)    ' 제곱근을 반환합니다.
        End If
    End Function

     

     

    3.2.9. 오류 처리

    Java, C#에서의 try, catch, finally 구문은 지원되지 않는다. On Error Goto 구문으로 오류를 처리한다.

    구문 설명
    On Error GoTo label 오류가 발생하면 지정한 label로 실행 위치 이동
    On Error Resume Next 발생한 오류를 무시하고 다음 명령으로 계속 실행
    On Error GoTo 0 설정된 오류 처리 방식(Goto, Resume)을 초기화

     

    오류 처리 기본 코드는 다음과 같다.

    Sub ErrorTest()
        On Error GoTo ErrHandler 'Error 처리 시작 (=try)
     
        Dim i As Integer
        i = 1 / 0
     
        On Error GoTo 0 'Error 처리 종료 (=finally)
     
        Exit Sub
        
    ErrHandler:  'Error 처리 (=catch)
        MsgBox Err.Description
    End Sub

     

    위 코드는 일부러 0으로 나누기 오류를 발생시켜서 ErrHandler 영역의 구문이 실행된다.

     

    3.2.10. VB(Visual Basic) 설명서 도움말(CHM)

    CHM(Compiled HTML Help) 파일로 작성된 한글 Visual Basic 설명서를 예전에 받아 두었는데, 출처는 알 수 없다. Visual Studio 6.0에 포함된 도움말 파일인 것으로 보인다.

    Visual Basic 설명서(한글).chm
    1.09MB
    Visual Basic 설명서(CHM)
    Visual Basic 설명서(CHM)

    바이러스등이 걱정된다면 이 파일은 다운로드 받지 않고 온라인 도움말을 이용하기 바란다.

    이 파일은 열기 전에 차단을 해제해 줘야 정상적으로 사용할 수 있다. 파일을 선택하고 마우스 오른쪽 버튼 클릭, 속성에서 우측 하단 "차단 해제"를 체크하고 확인을 누른 다음 파일을 열면 된다. (아래 이미지 참조)

    파일 속성, 차단 해제 체크

     

     

    3.2.11. Office 2013 VBA 설명서(CHM, 영어)

    Office 2013 제품(Excel, Access, OneNote, Outlook, PowerPoint, Publisher, Visio, Word)을 VBA로 다루는 방법에 대한 설명서이다.

    https://www.microsoft.com/en-us/download/details.aspx?id=40326 

     

    Office 2013 VBA Documentation

    The Office 2013 VBA Documentation download provides an offline version of the Visual Basic for Applications (VBA) developer reference for each of the Office client applications, as well as the VBA reference content shared amongst all Office client applicat

    www.microsoft.com

     

    Excel 2013 VBA documentation
    Excel 2013 VBA documentation

     

    위 URL의 하단 Install Instructions를 펼쳐보면 CHM 파일의 내용이 보이지 않을 때 조치하는 방법이 설명되어 있다. 이전에 설명한 "차단 해제"에 대한 내용이다.

    Install Instructions

     

    위 URL에서 받은 'Excel 2013 Developer Documentation.chm' 파일을 업로드 해둔다.

    Excel 2013 Developer Documentation.chm
    9.45MB

    역시나 바이러스등이 걱정된다면 이 파일은 다운로드 받지 않고 위 URL에서 직접 다운로드하거나 온라인 도움말을 이용하기 바란다.

     

    Office 2013 이후 버전에 대한 오프라인 도움말(CHM)은 찾지 못했는데, 혹시 가지고 있거나 URL을 알고 있다면 댓글로 남겨주기 바란다.


    이 글에서는 VBA 문법에 대해 살펴보았다. 가장 기본적인 내용으로만 추렸고, 이 문법만 확실하게 이해하면 대부분 VBA 코드는 읽고 쓸수 있다. 다음에는 자료형(Data type)에 대해 살펴보겠다.

     

    댓글

    💲 추천 글