엑셀 매크로 VBA 예제 - egsel maekeulo VBA yeje

이 문서의 Microsoft Excel 2000 버전은 를 213798.

이 문서의 Microsoft Excel 98 및 이전 버전의 Excel 버전은 149689.

요약

이 문서에는 여러 Visual Basic for Applications 작업하는 데 사용할 수 있는 Microsoft Visual Basic for Applications 프로시저 샘플이 포함되어 있습니다.

추가 정보

Microsoft는 표현되거나 암시적으로 보증 없이 그림에 대한 프로그래밍 예제를 제공합니다. 여기에는 특정 목적에 대한 상인성 또는 적합성의 암시적 보증이 포함되지만 이에 국한되지는 않습니다. 이 문서에서는 시연되는 프로그래밍 언어와 프로시저를 만들고 디버그하는 데 사용되는 도구에 익숙하다고 가정합니다. Microsoft 지원 엔지니어는 특정 프로시저의 기능을 설명하는 데 도움이 될 수 있지만 이러한 예제를 수정하여 추가 기능을 제공하거나 특정 요구 사항을 충족하는 프로시저를 생성하지 않습니다. 참고: Visual Basic for Applications 절차에서 apostrophe(') 다음 단어는 메모입니다.

배열을 채우고 워크시트에 복사

  1. 새 통합 문서 를 열고 Visual Basic 삽입합니다.

  2. 모듈 시트에 다음 코드를 입력합니다.

    Sub Sheet_Fill_Array()
    Dim myarray As Variant
    myarray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    Range("a1:a10").Value = Application.Transpose(myarray)
    End Sub
  3. Sheet1을 선택합니다.

  4. 도구 메뉴에서 매크로를 지적한 다음 매크로를 클릭합니다.

  5. 매크로 대화 상자에서 Sheet_Fill_Array 클릭한 다음 실행을 클릭합니다.

워크시트에서 값을 취하고 배열을 채우기

  1. 셀 A1:A10에 Sheet1에 값을 입력합니다.

  2. 모듈 Visual Basic 시트에 다음 코드를 입력합니다.

    Sub from_sheet_make_array()
    Dim thisarray As Variant
    thisarray = Range("a1:a10").Value

    counter = 1 'looping structure to look at array
    While counter <= UBound(thisarray)
    MsgBox thisarray(counter, 1)
    counter = counter + 1
    Wend
    End Sub

  3. Sheet1을 선택합니다.

  4. 도구 메뉴에서 매크로를 지적한 다음 매크로를 클릭합니다.

  5. 매크로 대화 상자에서 from_sheet_make_array 클릭한 다음 실행을 클릭합니다.

배열을 전달하고 받으면

  1. 모듈 시트에 다음 코드를 입력합니다.

    Sub pass_array()
    Dim thisarray As Variant
    thisarray = Selection.Value
    receive_array (thisarray)
    End Sub

    Sub receive_array(thisarray)
    counter = 1
    While counter <= UBound(thisarray)
    MsgBox thisarray(counter, 1)
    counter = counter + 1
    Wend
    End Sub

  2. Sheet1을 선택하고 A1:A10 범위를 강조 표시합니다.

  3. 도구 메뉴에서 매크로를 지적한 다음 매크로를 클릭합니다.

  4. 매크로 대화 상자에서 pass_array 클릭한 다음 실행을 클릭합니다.

두 배열을 비교하기 위해

  1. Sheet1에서 두 개의 명명된 범위를 생성합니다. 하나의 범위1 및 다른 범위2의 이름을 지정합니다.

    예를 들어 A1:A10 셀 범위를 강조 표시하고 range1의 이름을 지정합니다. 셀 범위를 강조 표시하고 범위2의 이름을 지정합니다.

  2. 모듈 시트에 다음 코드를 입력합니다.

    Sub compare_two_array()
    Dim thisarray As Variant
    Dim thatarray As Variant

    thisarray = Range("range1").Value
    thatarray = Range("range2").Value
    counter = 1
    While counter <= UBound(thisarray)
    x = thisarray(counter, 1)
    y = thatarray(counter, 1)
    If x = y Then
    MsgBox "yes"
    Else MsgBox "no"
    End If
    counter = counter + 1
    Wend
    End Sub

  3. Sheet2를 선택합니다.

  4. 도구 메뉴에서 매크로를 지적한 다음 매크로를 클릭합니다.

  5. 매크로 대화 상자에서 compare_two_array 클릭한 다음 실행을 클릭합니다.

    모든 비교에 대해 하나의 메시지 상자가 표시됩니다.

동적 배열을 채우기

  1. 모듈 시트에 다음 코드를 입력합니다.

    Sub fill_array()

    Dim thisarray As Variant
    number_of_elements = 3 'number of elements in the array

    'must redim below to set size
    ReDim thisarray(1 To number_of_elements) As Integer
    'resizes this size of the array
    counter = 1
    fillmeup = 7
    For counter = 1 To number_of_elements
    thisarray(counter) = fillmeup
    Next counter

    counter = 1 'this loop shows what was filled in
    While counter <= UBound(thisarray)
    MsgBox thisarray(counter)
    counter = counter + 1
    Wend

    End Sub

  2. 도구 메뉴에서 매크로를 지적한 다음 매크로를 클릭합니다.

  3. 매크로 대화 상자에서 fill_array 클릭한 다음 실행을 클릭합니다.

참고: "number_of_elements"를 변경하면 배열의 크기가 결정됩니다.

추가 도움이 필요하신가요?

엑셀 매크로 VBA 예제 - egsel maekeulo VBA yeje

우리나라의 사무업무에 필수인 엑셀을 300% 활용하기 위한 방법은 무엇이 있을까요?

바로! VBA 입니다.

해외에서는 VBA만 전문으로 하는 프로그래머도 있을 정도로 많이 사용되는 언어입니다.

그래서 오늘은 엑셀의 꽃이라고 불리는 VBA에 대해서 배워보도록 하겠습니다.

그전에 VBA이 무엇인지에 대해 간단하게 알아봅시다.


VBA 이란?

VBA는 VisualBasic for Applications의 약자로 Microsoft Office에 내장되어 있는 프로그래밍 언어입니다. 

엑셀 매크로 VBA 예제 - egsel maekeulo VBA yeje

엑셀에서 많이 사용되기 때문에 엑셀 전용으로 오해를 많이 받습니다. 하지만 주 용도는 매크로 및 사용자 정의 함수를 사용하는 것이며 액세스, 워드 등의 응용 프로그램에서도 사용할 수 있습니다.

VBA의 최대 장점으로는 매크로 기능 (반복 작업 자동화)으로 생산성 향상에 큰 도움이 되며 별도의 개발도구를 설치할 필요가 없어 개발과 배포가 매우 단순합니다.

그렇기 때문에 해당 작업이 2번 이상 반복될 것이 확실하다면 VBA를 사용을 적극 추천드립니다.


기본 환경 설정

VBA을  사용하기 앞서 개발도구 탭을 보이게 설정해야 합니다.

요약 : 파일 > 옵션 > 리본 사용자 지정 > 개발 도구 체크 > 확인

1. 왼쪽 상단 [파일] 버튼을 클릭합니다.

엑셀 매크로 VBA 예제 - egsel maekeulo VBA yeje

2. [옵션] 버튼을 클릭합니다.

엑셀 매크로 VBA 예제 - egsel maekeulo VBA yeje

3. [리본 사용자 지정] > [개발 도구 체크] > [확인] 버튼을 순차적으로 클릭합니다.

엑셀 매크로 VBA 예제 - egsel maekeulo VBA yeje

4. 마지막으로 [개발 도구] 메뉴가 생성되었는지 확인하시면 됩니다.

엑셀 매크로 VBA 예제 - egsel maekeulo VBA yeje

손 풀이용 간단한 예제

프로그래밍을 좀 다뤄본 사람이 아닌 분들은 처음부터 이론을 배우게 되면 너무 어렵습니다.

간단한 예제들을 통해 VBA가 이런 거구나 라는 느낌으로 무작정 따라 해 봅시다.


A. "Hello, World!" 출력하기

처음에는 가장 기본적인 메시지 출력 코드를 알아보겠습니다.

1. 먼저 [개발도구] > [Viual Basic] 클릭 또는 단축키 [Alt + F11] 을 눌러줍니다.

엑셀 매크로 VBA 예제 - egsel maekeulo VBA yeje

2.  나타난 VBE(Visual Basic Editor) 창에서 [보기 > 직접 실행 창] 을 클릭합니다.

엑셀 매크로 VBA 예제 - egsel maekeulo VBA yeje

3. 다음과 같이 직접 실행 창이 나타납니다.

엑셀 매크로 VBA 예제 - egsel maekeulo VBA yeje

4. 직접 실행 창에 아래와 같은 코드를 작성합니다.

MsgBox "Hello, World!"

5. 엔터를 누르면 다음과 같은 창이 나타납니다.

엑셀 매크로 VBA 예제 - egsel maekeulo VBA yeje

B. 셀에 값 입력하기

두 번째로는 시트의 특정 셀에 값을 입력하는 코드에 대해 알아보겠습니다.

1. 직접 실행 창에 아래와 코드를 작성하고 엔터키를 눌러줍니다.

Range("C2") = "Hello, World!"

2. 아래와 같이 C2 셀에 "Hello, World!" 값이 입력된 것을 확인할 수 있습니다.

엑셀 매크로 VBA 예제 - egsel maekeulo VBA yeje

C. 새 엑셀 창 열기

마지막으로 엑셀 창을 새로 여는 코드에 대해 알아보겠습니다.

1. 직접 실행 창에 아래와 코드를 작성하고 엔터키를 눌러줍니다.

Workbooks.Add

2. 아래와 같이 새로운 엑셀 창이 열린 것을 확인할 수 있습니다.

엑셀 매크로 VBA 예제 - egsel maekeulo VBA yeje

지금까지 VBA 소개 및 기초 예제들을 풀어보았습니다.
어떤 프로그래밍 언어든 눈으로만 보지 마시고 직접 코딩을 해보면 좀 더 빠르게 이해가 되실 겁니다.

  그리고 궁금하신 내용이나 막히는 부분이 있으시면 댓글 부탁드립니다.
최대한 빠른 시일 내에 답변해드리겠습니다.

이상입니다. 도움이 되셨다면 공감♡ 부탁드립니다!