Excel의 vba 란 무엇입니까? (기본에서 고급까지)

VBA란 무엇입니까?

VBA(Visual Basic for Application)는 Excel의 거의 모든 것을 자동화할 수 있는 프로그래밍 언어입니다. VBA를 사용하면 Excel 개체를 참조하고 이와 관련된 속성, 메서드 및 이벤트를 사용할 수 있습니다. 예를 들어 피벗 테이블을 만들고, 차트를 삽입하고, 매크로를 사용하여 사용자에게 메시지 상자를 표시할 수 있습니다.

미친 점은 다음과 같습니다.

몇 분 안에 수동으로 수행하는 모든 작업을 VBA에서는 한 번의 클릭으로 동일한 정밀도로 몇 초 안에 수행할 수 있습니다. 문서나 통합 문서를 열거나 특정 시간에 자동으로 실행될 수 있는 VBA 코드를 작성할 수도 있습니다.

구체적인 예를 보여드리겠습니다.

매일 아침 사무실에 출근하면 가장 먼저 해야 할 일은 월별 매출에 대한 피벗 테이블을 만들어 상사에게 발표하는 일이다. 여기에는 매일 동일한 단계가 포함됩니다. 하지만 VBA를 사용하여 피벗 테이블을 만들고 단 한 번의 클릭으로 삽입할 수 있다는 것을 깨달았을 때 하루에 5분을 절약할 수 있었습니다.

피벗 테이블을 생성하는 매크로 코드

이것이 VBA의 작동 방식입니다

VBA는 객체 지향 언어이며 객체 지향 언어로서 VBA에서는 객체를 사용하고 해당 속성을 정의하는 방식으로 코드를 구성합니다.

간단히 말해서 먼저 개체를 정의한 다음 수행하려는 활동을 정의합니다. VBA에서 코드를 작성하는 데 사용할 수 있는 개체, 컬렉션, 메서드 및 속성이 있습니다.

>이것을 놓치지 마세요<

누군가에게 상자를 열라고 말하고 싶다고 가정해 보겠습니다. 당신이 사용할 단어는 “상자를 열어라”가 될 것입니다. 평범한 영어죠, 그렇죠? 그러나 VBA 및 매크로 작성의 경우 다음과 같습니다.

 Box.Open

보시다시피, 위의 코드는 여기서 우리의 객체인 상자로 시작하고 이에 대해 “Open” 메서드를 사용했습니다. 좀 더 구체적으로 설명하자면, 빨간색으로 표시된 상자를 열고 싶다고 가정해 보겠습니다. 이를 위한 코드는 다음과 같습니다.

 Boxes(“Red”).Open

위 코드에서 상자는 컬렉션이고 open은 메서드입니다. 상자가 여러 개인 경우 여기에서 특정 상자를 정의합니다. 또 다른 방법은 다음과 같습니다.

 Box(“Red”).Unlock = True

위 코드에서 상자는 다시 컬렉션이고 Unlock은 TRUE로 설정된 속성입니다.

Excel에서 VBA는 어떤 용도로 사용되나요?

Excel에서는 VBA를 다양한 용도로 사용할 수 있습니다. 다음은 일부입니다:

  • 데이터 입력 : 셀 범위인 셀에 데이터를 입력할 수 있습니다. 한 섹션에서 다른 섹션으로 데이터를 복사하여 붙여넣을 수도 있습니다.
  • 작업 자동화 : 많은 시간을 소비하는 작업을 자동화할 수 있습니다. 제가 드릴 수 있는 가장 좋은 예는 매크로를 사용하여 피벗 테이블을 만드는 것입니다.
  • 사용자 정의 Excel 함수 만들기 : VBA를 사용하면 사용자 정의 사용자 정의 함수를 만들어 워크시트에서 사용할 수도 있습니다.
  • 추가 기능 만들기 : Excel에서 VBA 코드를 추가 기능으로 변환하고 다른 사람과 공유할 수도 있습니다.
  • 다른 Microsoft 애플리케이션과 통합 : Excel을 다른 Microsoft 애플리케이션과 통합할 수도 있습니다. 예를 들어 텍스트 파일에 데이터를 입력할 수 있습니다.

엑셀 프로그래밍 기초

1. 절차

VBA의 프로시저는 특정 작업을 수행하는 코드 집합 또는 코드 한 줄입니다.

  1. SUB : Sub 프로시저는 작업을 수행할 수 있지만 값을 반환하지 않습니다(그러나 개체를 사용하여 해당 값을 가져올 수 있음).
  2. 함수 : Function 프로시저를 사용하여 스프레드시트나 기타 SUB 및 FUNCTION 프로시저에서 사용할 수 있는 함수를 만듭니다(참조: VBA 함수 ).

2. 변수와 상수

코드에서 값을 여러 번 사용하려면 변수와 상수가 필요합니다.

  • 변수 : 변수는 값을 저장할 수 있고, 이름이 있으며, 데이터 유형을 정의해야 하며 저장되는 값을 수정할 수 있습니다. 이름에서 알 수 있듯이 “VARIABLE”에는 고정된 값이 없습니다. 시스템에 저장되는 보관 상자와 같습니다.
  • 상수 : 상수는 값을 저장할 수도 있지만 코드를 실행하는 동안 값을 변경할 수는 없습니다.

3. 데이터 유형

VARIABLES 및 CONSTANTS에 대한 데이터 유형을 선언해야 합니다.

define data type

변수나 상수의 데이터 유형을 지정하면 데이터의 유효성이 보장됩니다. 데이터 유형을 생략하면 VBA는 Variant 데이터 유형을 변수에 적용합니다(이것이 가장 유연함). VBA는 데이터 유형이 무엇인지 추측하지 않습니다.

팁: 명시적 VBA 옵션

4. 객체, 속성 및 메소드

Visual Basic for Application은 개체 지향 언어이며 이를 최대한 활용합니다. Excel 개체를 이해해야 합니다.

Excel에서 사용하는 통합 문서에는 다양한 개체가 포함되어 있으며 이러한 모든 개체에는 액세스할 수 있는 여러 속성과 사용할 수 있는 메서드가 있습니다.

5. 이벤트

Excel에서 작업을 수행할 때마다 이벤트가 발생합니다. 즉, 셀에 값을 입력하거나, 새 워크시트를 삽입하거나, 차트를 삽입하는 것입니다. 다음은 객체에 따른 이벤트 분류입니다.

  1. 응용 프로그램 이벤트: 이러한 이벤트는 Excel 응용 프로그램 자체와 연결됩니다.
  2. 통합 문서 이벤트: 이러한 이벤트는 통합 문서에서 발생하는 작업과 연결됩니다.
  3. 워크시트 이벤트: 이러한 이벤트는 워크시트에서 발생하는 작업과 연결됩니다.
  4. 차트 이벤트: 이 이벤트는 차트 시트(워크시트와 다름)와 연결됩니다.
  5. 사용자 양식 이벤트: 이 이벤트는 사용자 양식에서 발생하는 작업과 연결됩니다.
  6. OnTime 이벤트: OnTime 이벤트는 특정 시간에 코드를 트리거할 수 있는 이벤트입니다.
  7. OnKey 이벤트: OnKey 이벤트는 특정 키를 누를 때 코드를 트리거할 수 있는 이벤트입니다.

6.범위

범위 개체는 VBA 코드에서 범위를 참조하는 가장 일반적이고 널리 사용되는 방법입니다. 셀 주소를 참조해야 하는데 구문을 알려드리겠습니다.

 Worksheets(“Sheet1”).Range(“A1”)

7.조건

다른 프로그래밍 언어와 마찬가지로 VBA에서 조건을 테스트하는 코드를 작성할 수도 있습니다. 이를 통해 두 가지 다른 방법으로 이 작업을 수행할 수 있습니다.

  • IF THEN‌ ELSE‌ : 조건을 테스트한 후 해당 조건이 TRUE인 경우 코드 줄을 실행하는 데 사용할 수 있는 IF 문입니다. 다음을 사용하여 중첩 조건을 작성할 수도 있습니다.
  • SELECT‌T‌ CASE : 선택 케이스에서는 조건을 지정한 다음 다른 테스트 결과 케이스를 지정하여 실행할 코드 라인을 다르게 실행할 수 있습니다. IF문보다 좀 더 구조적입니다.

8. VBA 루프

VBA에서는 작업을 반복하고 반복할 수 있는 코드를 작성할 수 있으며, 이와 같은 코드를 작성하는 방법에는 여러 가지가 있습니다.

  • For Next : For Next를 사용하는 데 가장 적합한 것은 일련의 작업을 고정된 횟수만큼 반복하려는 경우입니다.
  • For Each Next : 개체 컬렉션에서 개체 그룹을 반복하려는 경우 사용하기에 적합합니다.
  • Do While 루프: Do While 루프의 기본 아이디어는 조건이 true인 동안 활동을 수행하는 것입니다.
  • Do Until 루프: Do Until 루프에서 VBA는 루프를 실행하고 조건이 FALSE이면 계속 실행합니다.

9. 입력 상자 및 메시지 상자

  • 입력 상자(Input Box) : 입력 상자는 사용자에게 입력 상자를 표시하고 응답을 수집하는 기능입니다.
  • 메시지 상자 : 메시지 상자는 사용자에게 메시지를 표시하는 데 도움이 되지만 사용자로부터 응답을 받기 위해 메시지 상자에 버튼을 추가할 수 있는 옵션도 있습니다.

10. 오류

Excel에서는 프로그래밍 오류가 발생하면 운이 좋지 않으며 어떤 경우에도 오류를 처리해야 합니다.

  1. 구문 오류 : 이는 코드를 작성하는 동안 발생하는 오타와 유사하지만 VBA는 이러한 오류를 보고하여 도움을 줄 수 있습니다.
  2. 컴파일 오류: 활동을 수행하기 위해 코드를 작성했지만 해당 활동이 유효하지 않을 때 발생합니다.
  3. 런타임 오류 : 코드 실행 중에 RUNTIME 오류가 발생합니다. 코드를 중지하고 오류 대화 상자를 표시합니다.
  4. 논리적 오류 : 오류가 아니라 코드를 작성할 때 발생하는 오류로, 찾아 수정하는 데 문제가 발생할 수 있는 경우가 있습니다.

Excel에서 매크로(VBA 프로그램) 작성

나는 처음에 누군가가 Excel로 프로그래밍을 시작하면 HE/SHE가 처음부터 점점 더 많은 코드를 작성해야 한다는 강한 믿음을 가지고 있습니다. 처음부터 더 많은 코드를 작성할수록 VBA 작동 방식을 더 잘 이해할 수 있습니다.

하지만 복잡한 코드로 뛰어들기보다는 간단한 코드를 작성하는 것부터 시작해야 합니다. 이것이 바로 지금 여러분이 복잡한 것에 대해 생각하지 않기를 바라는 이유입니다.

매크로 코드를 작성하여 피벗 테이블을 만들 수도 있지만 지금은 그렇게까지 생각하지 않기를 바랍니다. 스프레드시트에서 수행하려는 활동에 대해 생각해 보고 이에 대한 코드를 작성할 수 있습니다.

  1. 개발자 탭 으로 이동하여 “Visual Basic” 버튼에서 Visual Basic Editor를 엽니다.
    visual-basic-button
  2. 그런 다음 “프로젝트 창”에서 새 모듈을 삽입합니다(마우스 오른쪽 버튼 클릭 ≥ 삽입 ► 모듈).
    insert-a-new-module
  3. 그런 다음 코드 창으로 이동하여 아래와 같이 “Enter Done”이라는 이름의 매크로를 만듭니다(SUB 프로시저를 만듭니다).
    code-window
  4. 여기에서 위에서 방금 설명한 일부 코드를 작성해야 합니다. 잠시 기다렸다가 다음과 같이 생각해보세요. 값을 삽입하려는 셀을 지정한 다음 입력하려는 값을 지정해야 합니다.
  5. 셀 참조를 입력하려면 RANGE 개체를 사용하고 아래와 같이 셀 주소를 지정해야 합니다.
    cell-reference-range-object
  6. 그 후 포인트를 입력하고, 포인트를 추가하는 순간 설정할 수 있는 속성 목록과 해당 범위에서 할 수 있는 활동 목록이 나타납니다.
    enter-a-dot
  7. 여기에서 “값” 속성을 선택하고 “A1” 셀에 삽입할 텍스트를 설정해야 합니다. 그러면 코드는 아래와 같습니다.
    select-value
  8. 마지막으로 코드 줄 위에 텍스트를 입력합니다(“이 코드는 셀 A5에 “완료” 값을 입력합니다). 이는 작성한 코드 줄을 정의하기 위해 삽입할 수 있는 VBA 주석 입니다.
    enter-the-text-above-line-code
 Sub Enter_Done() 'this code enters the value “Done” in the cell A5 Range("A1").Value = "Done" End Sub

이것을 이해하자…

이 코드를 두 부분으로 나눌 수 있습니다.

  • 첫 번째 부분에서는 RANGE 개체를 사용하여 셀 주소를 지정했습니다 . 그리고 범위 개체를 사용하여 셀을 참조하려면 셀 주소를 큰따옴표로 묶어야 합니다(대괄호를 사용할 수도 있음).
  • SECOND 부분에서는 셀에 입력할 값을 지정했습니다. 수행한 작업은 “.Value”를 사용하여 셀 A5의 값 속성을 설정한 것입니다. 그 후, 다음으로 지정한 것은 value 속성에 상대적인 값 입니다. 값을 정의할 때마다(텍스트인 경우) 해당 값을 큰따옴표로 묶어야 합니다.

VBA를 배우는 가장 좋은 방법

여기에는 VBA를 즉시 배우는 데 도움이 될 수 있는 가장 놀라운 튜토리얼(특정 순서는 아님)이 나열되어 있습니다.

  • 유용한 Excel [VBA] 매크로 코드 예제 100개
  • VBA를 사용하여 Excel에서 사용자 정의 함수(UDF)를 만드는 방법
  • VBA 면접 질문

1. VBA 시작하기

  • 개발자 탭 추가
  • 비주얼 베이직 편집기
  • VBA에 주석 추가
  • VBA 코드에 줄 바꿈 추가
  • 새 줄 추가(캐리지 리턴)
  • Excel에서 매크로 실행
  • 개인용 매크로 통합 문서(personal.xlsb)
  • Excel에서 매크로 기록
  • VBA 출력 하위 설명
  • VBA 직접 실행 창(Debug.Print)
  • VBA 모듈
  • VBA 메시지 상자(MsgBox)
  • VBA 개체
  • 선언이 있는 VBA

2. VBA에서 통합 문서 작업

  • VBA 통합 문서 개체 이해
  • VBA를 사용하여 Excel 파일(통합 문서) 복사
  • 통합 문서 활성화(Excel 파일)
  • 통합 문서(Excel 파일)를 닫습니다.
  • 통합 문서 결합(Excel 파일)
  • 새 통합 문서(Excel 파일) 만들기
  • 통합 문서(Excel 파일) 삭제
  • 통합 문서 열기(Excel 파일)
  • 통합 문서 보호/보호 해제(Excel 파일)
  • 통합 문서 이름 바꾸기(Excel 파일)
  • 통합 문서(Excel 파일) 저장
  • ThisWorkbook(현재 Excel 파일)

3. 스프레드시트로 작업하기

  • VBA에서 Excel 스프레드시트 작업
  • Excel에서 VBA를 사용하여 전체 시트를 지우는 방법
  • VBA를 사용하여 Excel에서 시트를 복사하고 이동하는 방법
  • Excel에서 VBA를 사용하여 시트 수를 계산하는 방법
  • Excel에서 VBA를 사용하여 시트를 삭제하는 방법
  • Excel에서 VBA를 사용하여 시트를 숨기고 표시하는 방법
  • Excel에서 VBA를 사용하여 시트를 보호 및 보호 해제하는 방법
  • Excel에서 VBA를 사용하여 시트 이름을 바꾸는 방법
  • Excel에서 새 시트를 만들기 위해 VBA 코드를 작성하는 방법(매크로)
  • VBA를 사용하여 시트를 활성화하는 방법

4. 범위 및 셀 작업

  • VBA에서 범위 및 셀 작업
  • Excel에서 VBA를 사용하여 행 개수 계산
  • Excel VBA 글꼴(색상, 크기, 유형 및 굵게)
  • Excel VBA 열 또는 행 숨기기 및 표시
  • Excel에서 VBA를 사용하여 셀에 테두리를 적용하는 방법
  • Excel에서 VBA를 사용하여 마지막 행, 열 및 셀을 찾는 방법
  • Excel에서 VBA를 사용하여 행을 삽입하는 방법
  • VBA 코드를 사용하여 Excel에서 셀을 병합하는 방법
  • Excel에서 VBA를 사용하여 범위/셀을 선택하는 방법
  • VBA를 사용하여 워크시트의 모든 셀을 선택하는 방법
  • Excel의 VBA에서 ActiveCell을 사용하는 방법
  • Excel의 VBA에서 특수 셀 방법을 사용하는 방법
  • Excel의 VBA에서 UsedRange 속성을 사용하는 방법
  • VBA 자동 맞춤(행, 열 또는 전체 워크시트)
  • VBA ClearContents(셀, 범위 또는 전체 워크시트에서)
  • VBA 복사 범위를 다른 시트 + 통합 문서로
  • VBA 셀에 값 입력(설정, 가져오기 및 변경)
  • VBA 삽입 열(단일 및 다중)
  • VBA라는 범위 | (정적 + 선택 + 동적)
  • VBA 범위 오프셋
  • VBA 정렬 범위 | (내림차순, 다중 열, 정렬 방향
  • VBA 줄 바꿈 텍스트(셀, 범위 및 전체 워크시트)
  • VBA 코드를 사용하여 Excel에서 중복 값을 강조 표시하는 방법
  • VBA UDF를 사용하여 Excel에서 하이퍼링크 주소(URL)를 추출하는 방법

5. 변수와 상수

  • VBA 변수(선언, 데이터 유형 및 범위)
  • 상수 VBA
  • VBA에서 전역(공용) 변수 선언
  • VBA에서 범위나 셀을 변수로 사용하는 방법
  • VBA에서 명시적 옵션 문을 사용하는 방법
  • 메시지 상자의 변수
  • 희미한 VBA 지침

6. 컬

  • VBA 루프
  • Excel VBA Do While 루프 및 (Do Loop While) – 가이드
  • Excel에서 VBA를 사용하여 모든 시트를 순환하는 방법
  • VBA(열, 행 및 UsedRange)를 사용하여 범위를 반복합니다.
  • VBA FOR LOOP(For Next, For Each) – 가이드 + 예제
  • GoTo VBA 선언

7.조건

  • VBA IF – IF Then Else 문
  • Excel에서 VBA를 사용하여 시트가 있는지 확인하는 방법
  • VBA 셀이 비어 있고 여러 셀이 있는지 확인하십시오.
  • VBA 폴더(Excel 파일)에 통합 문서가 있는지 확인
  • VBA 통합 문서가 열려 있는지 확인(Excel 파일)
  • VBA 종료 IF
  • VBA IF And(다중 조건 테스트)
  • 아니요인 경우 VBA
  • VBA IF OR(다중 테스트 조건)
  • VBA 중첩 IF
  • VBA SELECT CASE 문(여러 조건 테스트)

8. 계산

  • VBA를 사용하여 Excel에서 값의 평균을 구하는 방법
  • VBA를 사용하여 오늘 날짜와 현재 시간을 얻는 방법
  • VBA를 사용하여 Excel에 값을 추가하는 방법
  • VBA에서 일치 기능을 사용하는 방법
  • VBA에서 MOD를 사용하는 방법
  • 난수
  • VBA 계산(셀, 범위, 행 및 통합 문서)
  • VBA 연결
  • VBA 워크시트 기능(매크로에서 Excel 함수 사용)

9. 테이블

  • VBA 테이블
  • VBA 배열에 새 값 추가
  • VBA 배열 길이(크기)
  • 문자열이 포함된 VBA 배열
  • VBA 지우기 배열
  • 동적 테이블 VBA
  • 배열의 VBA 루프
  • 다차원 배열 VBA
  • VBA 범위를 배열로
  • VBA에서 배열의 값 검색
  • VBA 출력 테이블

10. 오류

  • VBA 오류 처리
  • VBA 자동화 오류(오류 440)
  • VBA 오류 400
  • 잘못된 VBA 프로시저 호출 또는 인수 오류(오류 5)
  • VBA 개체는 이 속성 또는 메서드 오류를 지원하지 않습니다(오류 438).
  • VBA 개체 필수 오류(오류 424)
  • VBA 메모리 부족 오류(오류 7)
  • VBA 오버플로 오류(오류 6)
  • VBA 런타임 오류(오류 1004)
  • VBA 인덱스 실행 오류가 범위를 벗어났습니다(오류 9).
  • VBA 유형 비호환 오류(오류 13)

11. 기능

12.기타

  • VBA에서 입력 상자를 사용하는 방법
  • VBA 생성 및 텍스트 파일 쓰기
  • VBA 화면 업데이트 | 활성화 및 비활성화 방법
  • VBA 상태 표시줄(숨기기, 표시 및 진행)
  • 일시 중단 및 지연을 위한 VBA 대기 및 절전 명령
  • VBA를 사용하여 Excel에서 피벗 테이블을 만드는 단계별 가이드 – 매크로 코드
  • VBA 코드를 사용하여 Google에서 검색하는 방법
  • Excel에서 확인란을 삽입하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다