최고의 VBA 가이드 (초보자를위한)


거의 모든 Microsoft Office 제품에서 실행되는 VBA 프로그래밍 플랫폼은 해당 제품의 사용을 향상시키기 위해 누구나 사용할 수있는 가장 강력한 도구 중 하나입니다.

이 VBA 가이드 초보자는 Excel, Word, Powerpoint, Outlook 및 OneNote에서 VBA를 사용할 수 있도록 Office 응용 프로그램에 개발자 메뉴를 추가하는 방법, VBA 편집기 창을 입력하는 방법 및 기본 VBA 문 및 루프 작동 방법을 보여줍니다.

This VBA 가이드는 최신 버전의 Microsoft Office 제품을 사용합니다. 이전 버전을 사용하는 경우 스크린 샷과 약간의 차이가있을 수 있습니다.

VBA 편집기 사용 및 사용 방법

사무실에서 이 안내서에 사용 된 제품의 경우 참조 개발자 메뉴가없는 것을 알 수 있습니다. 개발자 메뉴는 Excel, Word, Outlook 및 Powerpoint에서만 사용할 수 있습니다. OneNote는 응용 프로그램 내부에서 VBA 코드를 편집하는 도구를 제공하지 않지만 OneNote API를 참조하여 다른 Office 프로그램에서 OneNote와 상호 작용할 수 있습니다.

곧 출시 될 고급 VBA 안내서에서이 작업을 수행하는 방법을 배우게됩니다.

  • 사무용품에서 개발자 메뉴를 활성화하려면 파일메뉴를 열고 왼쪽 탐색 메뉴에서 옵션을 선택하십시오.
  • 옵션 메뉴 팝업이 표시됩니다. 왼쪽 탐색 메뉴에서 리본 사용자 정의를 선택합니다.
  • 왼쪽 목록에는 해당 Office 응용 프로그램에서 사용 가능한 모든 메뉴와 메뉴 명령이 포함됩니다. 오른쪽 목록은 현재 사용 가능하거나 활성화 된 목록입니다.

    In_content_1 all : [300x250] / dfp : [640x360]->
    • 오른쪽 목록에 개발자가 표시되지만 활성화되지는 않습니다. 확인란을 선택하면 개발자 메뉴가 활성화됩니다.
      • 오른쪽에 개발자가 표시되지 않으면 왼쪽 명령 선택을 드롭 다운에서 모든 명령. 목록에서 개발자를 찾은 다음 가운데에서 추가 >>를 선택하여 해당 메뉴를 리본에 추가합니다.
      • 확인완료되면
      • 개발자 메뉴가 활성화되면 기본 애플리케이션 창으로 돌아가서 상단 메뉴에서 개발자를 선택할 수 있습니다.
      • 그런 다음 리본 메뉴의 컨트롤 그룹에서 코드보기를 선택하여 VBA 편집기 창을 엽니 다.
        • 다음 섹션에서 배울 코드를 입력 할 수있는 VBA 편집기 창이 열립니다.
          • 매일 사용하는 일부 Office 응용 프로그램에 개발자 메뉴를 추가해보십시오 . VBA 편집기 창을 열면 편안하게이 가이드의 다음 섹션으로 진행하십시오.
          • 초보자를위한 일반 VBA 프로그래밍 팁

            VBA 편집기가 열리면 왼쪽 패널의 탐색 옵션이 Office 응용 프로그램마다 다릅니다.

            VBA 코드를 배치 할 수있는 사용 가능한 개체는 응용 프로그램에있는 개체에 따라 달라지기 때문입니다. 예를 들어 Excel에서 통합 문서 또는 시트 개체에 VBA 코드를 추가 할 수 있습니다. Word에서 VBA 코드를 문서에 추가 할 수 있습니다. Powerpoint에서는 모듈에만 해당됩니다.

            따라서 다른 메뉴에 놀라지 마십시오. VBA 코드의 구조와 구문은 모든 응용 프로그램에서 동일합니다. 유일한 차이점은 참조 할 수있는 개체와 VBA 코드를 통해 해당 개체에 대해 수행 할 수있는 작업입니다.

            VBA 코드를 통해 다른 개체와 작업을 수행하기 전에 먼저 살펴 보겠습니다. VBA 코드를 작성할 때 사용할 수있는 가장 일반적인 VBA 구조와 구문을 살펴보십시오.

            VBA 코드를 넣을 위치

            VBA 편집기를 사용하려면 편집 창 상단에있는 두 개의 드롭 다운 상자를 사용하여 코드를 첨부 할 개체와 코드를 실행할시기를 선택해야합니다.

            워크 시트활성화를 선택하면 워크 시트를 열 때마다 코드가 실행됩니다.

            기타 워크 시트 VBA 코드를 트리거하는 데 사용할 수있는 작업에는 워크 시트가 변경 될 때, 닫히거나 (비활성화), 워크 시트 계산이 실행될 때 등이 포함됩니다.

            편집기에 VBA 코드를 추가 할 때는 항상 VBA 코드를 객체에 배치하고 해당 코드를 트리거하기 위해 사용하려는 올바른 조치를 사용하십시오.

            VBA IF 문

            IF statement는 다른 프로그래밍 언어에서와 마찬가지로 VBA에서 작동합니다.

            IF 문의 첫 번째 부분은 조건 또는 조건 집합이 참인지 확인합니다. 이러한 조건은 AND 또는 OR 연산자로 연결하여 서로 연결할 수 있습니다.

            예를 들어 스프레드 시트의 성적이 "합격"등급보다 높거나 낮은 지 확인하고 합격 또는 다른 셀에 대한 상태 실패.

            셀 (2, 2)>75 인 경우 셀 (2, 3) = "통과"다른 셀 (2, 3) = "실패"

            한 줄에 전체 문장을 원하지 않으면 줄 끝에 "_"기호를 추가하여 여러 줄로 나눌 수 있습니다.

            셀 (2, 2)>75 인 경우 _
            Cells (2, 3) = "Pass"그렇지 않으면 _
            셀 (2, 3) = "실패"

            이 기술을 사용하면 코드를 훨씬 쉽게 읽고 디버깅 할 수 있습니다.

            다음 루프의 VBA

            IF 문은 단일 셀을 보는 위의 예와 같이 단일 비교에 유용합니다. 그러나 전체 셀 범위를 반복하고 각각에 대해 동일한 IF 문을 수행하려면 어떻게해야합니까?

            이 경우 FOR 루프가 필요합니다.

            이 작업을 수행하려면 범위의 길이를 사용하고 데이터를 포함하는 행 수만큼 해당 길이를 반복해야합니다.

            이 작업을 수행하려면 범위와 셀 변수를 정의하고 반복합니다. 결과를 적절한 행에 출력 할 수 있도록 카운터를 정의해야합니다. VBA 코드에는 먼저이 줄이 있습니다.

            범위로 셀 범위, 범위로 셀
            Dim rowCounter Integer

            범위 크기를 다음과 같이 정의하십시오.

            설정 rng = 범위 (“B2 : B7”)
            rowCounter = 2

            마지막으로 만들 수 있습니다 FOR 루프는 해당 범위의 모든 셀을 단계별로 실행하고 비교를 수행합니다.

            For Each cell In rng
            If cell.Value > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Next cell

            VBA 스크립트 이 실행되면 실제 스프레드 시트로 표시됩니다.

            VBA While 루프

            A while 루프는 FOR 루프와 마찬가지로 일련의 명령문을 반복하지만 루프 조건은 계속되는 조건입니다. 예를 들어, 다음과 같이 rowCounter 변수를 사용하여 위의 동일한 FOR 루프를 WHILE 루프와 같이 작성할 수 있습니다.

            While rowCounter < rng.Count + 2
            If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Wend

            참고 : rng.Count + 2종료 제한은 행 카운터가 2에서 시작하고 데이터가 끝나는 7 행에서 끝나야하기 때문에 필요합니다. 그러나 범위 (B2 : B7)의 개수는 6 개이며 While 루프는 카운터가 카운터보다 큰 경우에만 종료되므로 마지막 rowCounter 값은 8 (또는 rng.Count + 2)이어야합니다.

            다음과 같이 While 루프를 설정할 수도 있습니다 :

            rowCounter <= rng.Count + 1

            rowCounter 변수가 데이터의 끝에 도달하면 (7 행) 루프가 완료 될 수 있으므로 범위 카운트 (6)는 1 씩만 증가시킵니다.

            VBA Do While and Do Until Loops

            Do While 및 Do Until 루프는 While 루프와 거의 동일하지만 약간 다르게 작동합니다.

            • While Loop는 루프 시작시 조건이 참입니다.
            • Do-While 루프는 루프에서 명령문을 실행 한 후 조건이 참인지 확인합니다.
            • Do-Until 루프는 루프를 실행 한 후 조건이 여전히 거짓인지 확인합니다.
            • 이 경우 t를 다시 작성합니다 he-While 루프처럼 위의 루프를 반복합니다.

              Do
              If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Loop While rowCounter < rng.Count + 2

              이 경우 논리는 크게 변하지 않지만 논리를 확인하려면 모든 명령문이 실행 된 후 비교가 수행됩니다 (적어도 한 번이라도 모든 명령문이 실행될 수 있음). Do-While 또는 Do-Until 루프가 올바른 옵션입니다.

              VBA 선택 사례 설명

              VBA 코드 구성을 시작하기 위해 이해해야 할 논리 설명의 최종 유형은 Select Case 문입니다.

              위의 예를 들어, 실패가 아닌 등급 지정 방법을 원한다고 가정 해 봅시다. 대신 A에서 F까지의 문자 등급을 지정하려고합니다.

              다음 Select Case 문을 사용하여이 작업을 수행 할 수 있습니다.

              For Each cell In rng
              Select Case cell Case 95 To 100 Cells(rowCounter, 3) = "A" Case 85 To 94 Cells(rowCounter, 3) = "B" Case 75 To 84 Cells(rowCounter, 3) = "C" Case 65 To 74 Cells(rowCounter, 3) = "D" Case 0 To 64 Cells(rowCounter, 3) = "F" End Select rowCounter = rowCounter + 1 Next cell

              결과 스프레드 시트 이 VBA 스크립트가 실행 된 후 아래와 같습니다.

              이제 Microsoft Office 애플리케이션에서 VBA를 사용하기 위해 알아야 할 모든 것을 알고 있습니다.

              여러분이 사용하고 있지 않은 놀라운 단축기 15가지

              관련 게시물:


              29.01.2020