excel-vbaexcel-vba 시작하기

비고

Microsoft Excel에는 VBA라는 포괄적 인 매크로 프로그래밍 언어가 포함되어 있습니다. 이 프로그래밍 언어는 최소한 다음 세 가지 추가 리소스를 제공합니다.

  1. 매크로를 사용하여 코드에서 Excel을 자동으로 실행합니다. 대부분 사용자 인터페이스에서 Excel을 조작하여 사용자가 수행 할 수있는 작업은 Excel VBA에 코드를 작성하여 수행 할 수 있습니다.
  2. 사용자 지정 워크 시트 함수를 새로 만듭니다.
  3. Microsoft Word, PowerPoint, Internet Explorer, 메모장 등과 같은 다른 응용 프로그램과 Excel을 상호 작용하십시오.

VBA는 Visual Basic for Applications의 약자입니다. 그것은 1990 년대 중반 이후로 Microsoft Excel의 매크로를 구동 한 훌륭한 Visual Basic 프로그래밍 언어의 사용자 지정 버전입니다.

중대한
excel-vba 태그 내에 생성 된 예제 나 항목이 Microsoft Excel에서 VBA 사용과 관련 이 있고 구체적 이어야합니다. 노력의 중복을 막기 위해 VBA 언어에 대해 일반적으로 제공되는 제안 된 주제 나 예제는 거절해야합니다.

  • 주제에 관한 예 :

    워크 시트 개체 생성 및 상호 작용
    WorksheetFunction 클래스 및 해당 메서드
    xlDirection 열거 형을 사용하여 범위 탐색

  • 주제 외의 예 :

    ''for each '루프를 만드는 법
    MsgBox 클래스 및 메시지 표시 방법
    V VBA에서 WinAPI 사용하기


버전

VB

번역 출시일
VB6 1998-10-01
VB7 2001-06-06
WIN32 1998-10-01
WIN64 2001-06-06
1998-10-01

뛰어나다

번역 출시일
16 2016-01-01
15 명 2013-01-01
14 2010-01-01
12 2007-01-01
11 2003-01-01
10 2001-01-01
9 1999-01-01
8 1997-01-01
7 1995-01-01
5 1993-01-01
2 1987-01-01

변수 선언하기

VBA에서 명시 적으로 변수를 선언하려면 Dim 문 다음에 변수 이름과 형식을 사용합니다. 변수를 선언하지 않고 사용하거나 유형을 지정하지 않으면 Variant 유형이 지정됩니다.

모든 변수를 사용하기 전에 강제로 선언하려면 모듈의 첫 번째 행에 Option Explicit 문을 사용하십시오 ( 항상 "Option Explicit"사용 참조).

오타 / 철자 오류를 방지하고 변수 / 개체가 원하는 형식을 유지할 수 있도록 항상 Option Explicit 사용하는 것이 좋습니다.

Option Explicit

Sub Example()
    Dim a As Integer
    a = 2
    Debug.Print a
    'Outputs: 2

    Dim b As Long
    b = a + 2
    Debug.Print b
    'Outputs: 4

    Dim c As String
    c = "Hello, world!"
    Debug.Print c
    'Outputs: Hello, world!
End Sub

구분 기호로 쉼표를 사용하여 한 줄로 여러 변수를 선언 할 수 있지만 각 유형은 개별적으로 선언해야하며 , 기본값은 Variant 유형입니다.

Dim Str As String, IntOne, IntTwo As Integer, Lng As Long
Debug.Print TypeName(Str)    'Output: String
Debug.Print TypeName(IntOne) 'Output: Variant <--- !!!
Debug.Print TypeName(IntTwo) 'Output: Integer
Debug.Print TypeName(Lng)    'Output: Long

변수는 데이터 유형 문자 접미사 ($ % &! # @)를 사용하여 선언 할 수도 있지만 사용 방법은 권장하지 않습니다.

 Dim this$  'String
 Dim this%  'Integer
 Dim this&  'Long
 Dim this!  'Single
 Dim this#  'Double
 Dim this@  'Currency

변수를 선언하는 다른 방법은 다음과 같습니다.

  • Static 처럼 : Static CounterVariable as Integer

Dim 문 대신 Static 문을 사용하면 선언 된 변수는 호출간에 값을 유지합니다.

  • Public like : Public CounterVariable as Integer

공용 변수는 프로젝트의 모든 프로 시저에서 사용할 수 있습니다. 공용 변수가 표준 모듈 또는 클래스 모듈에서 선언 된 경우 공용 변수가 선언 된 프로젝트를 참조하는 모든 프로젝트에서 공용 변수를 사용할 수도 있습니다.

  • Private : Private CounterVariable as Integer

전용 변수는 동일한 모듈의 프로 시저에서만 사용할 수 있습니다.

출처 및 추가 정보 :

MSDN 선언 변수

형식 문자 (Visual Basic)

Visual Basic Editor (VBE) 열기


1 단계 : 통합 문서 열기

여기에 이미지 설명을 입력하십시오.


2 단계 옵션 A : Alt + F11을 누릅니다.

이것은 VBE를 여는 표준 바로 가기입니다.

2 단계 옵션 B : 개발자 탭 -> 코드보기

먼저 개발자 탭을 리본에 추가해야합니다. 파일 -> 옵션 -> 리본 사용자 정의로 이동 한 다음 개발자 상자를 선택하십시오.

여기에 이미지 설명을 입력하십시오.

그런 다음 개발자 탭으로 이동하여 "코드보기"또는 "Visual Basic"

여기에 이미지 설명을 입력하십시오.

2 단계 옵션 C :보기 탭> 매크로> 편집 버튼을 클릭하여 기존 매크로를 엽니 다.

세 가지 옵션 모두 VBE (Visual Basic Editor)가 열립니다.

여기에 이미지 설명을 입력하십시오.

새로운 Object Library Reference 추가하기

이 절차에서는 Object 라이브러리 참조를 추가하는 방법과 나중에 새 라이브러리 클래스 객체를 참조하여 새 변수를 선언하는 방법에 대해 설명합니다.

아래 예제는 기존 VB 프로젝트에 PowerPoint 라이브러리를 추가하는 방법을 보여줍니다. 보시다시피 현재 PowerPoint 개체 라이브러리를 사용할 수 없습니다.

여기에 이미지 설명을 입력하십시오.

1 단계 : 메뉴 도구 -> 참조 선택 ... 여기에 이미지 설명을 입력하십시오.

2 단계 : 추가 할 참조를 선택하십시오. 이 예제에서는 아래로 스크롤하여 " Microsoft PowerPoint 14.0 Object Library "를 찾은 다음 " 확인 "을 누릅니다. 여기에 이미지 설명을 입력하십시오.

참고 : PowerPoint 14.0은 Office 2010 버전이 PC에 설치되어 있음을 의미합니다.

3 단계 : VB 편집기에서 Ctrl + Space 를 누르면 PowerPoint의 자동 완성 옵션이 나타납니다. 여기에 이미지 설명을 입력하십시오.

PowerPoint 선택하고를 누르십시오 . PowerPoint 개체 라이브러리와 관련된 모든 개체 옵션이있는 다른 메뉴가 나타납니다. 이 예제에서는 PowerPoint의 개체 Application 을 선택하는 방법을 보여줍니다. 여기에 이미지 설명을 입력하십시오.

4 단계 : 이제 사용자는 PowerPoint 개체 라이브러리를 사용하여 더 많은 변수를 선언 할 수 있습니다.

PowerPoint 개체 라이브러리의 Presentation 개체를 참조하는 변수를 선언하십시오. 여기에 이미지 설명을 입력하십시오.

PowerPoint 개체 라이브러리의 Slide 개체를 참조하는 다른 변수를 선언하십시오. 여기에 이미지 설명을 입력하십시오.

이제 변수 선언 섹션은 아래 스크린 샷과 유사하며 사용자는 코드에서 이러한 변수를 사용할 수 있습니다. 여기에 이미지 설명을 입력하십시오.

이 자습서의 코드 버전 :

Option Explicit

Sub Export_toPPT()

Dim ppApp As PowerPoint.Application
Dim ppPres As PowerPoint.Presentation
Dim ppSlide As PowerPoint.Slide

' here write down everything you want to do with the PowerPoint Class and objects


End Sub

안녕하세요 세계

  1. Visual Basic Editor를 엽니 다 (Visual Basic Editor 열기 참조).
  2. 삽입 -> 모듈을 클릭하여 새 모듈을 추가하십시오.

여기에 이미지 설명을 입력하십시오.

  1. 다음 코드를 복사하여 새 모듈에 붙여 넣습니다.
  Sub hello()
    MsgBox "Hello World !"
  End Sub

획득 방법 :

여기에 이미지 설명을 입력하십시오.

  1. Visual Basic 도구 모음에서 녹색 "재생"화살표 (또는 F5 키를 누름)를 클릭하여 프로그램을 실행하십시오. 여기에 이미지 설명을 입력하십시오.

  2. 새로 생성 된 하위 "hello"를 선택하고 Run 클릭 Run : 여기에 이미지 설명을 입력하십시오.

  3. 완료하면 다음 창이 표시됩니다.

여기에 이미지 설명을 입력하십시오.

Excel 개체 모델 시작하기

이 예제 는 초보자를위한 Excel Object Model에 대한 소개입니다.


  1. VBE (Visual Basic Editor)를 엽니 다.
  2. 보기 -> 직접 실행 창을 클릭하여 직접 실행 창 (또는 ctrl + G )을 엽니 다.

여기에 이미지 설명을 입력하십시오.

  1. VBE의 아래쪽에 다음과 같은 직접 실행 창이 표시됩니다.

여기에 이미지 설명을 입력하십시오.

이 창에서 일부 VBA 코드를 직접 테스트 할 수 있습니다. 시작하자.이 콘솔에 다음을 입력하자.

?Worksheets. 

VBE는 인텔리 센스가 있으며 다음 그림과 같이 툴팁을 열어야합니다.

여기에 이미지 설명을 입력하십시오.

목록에서 .Cout 를 선택하거나 .Cout 을 직접 입력하여 얻을 수 있습니다.

?Worksheets.Count
  1. 그런 다음 Enter 키를 누릅니다. 표현식이 평가되고 1을 반환해야합니다. 이는 현재 통합 문서에있는 워크 시트 수를 나타냅니다. 물음표 ( ? )는 Debug.Print의 별칭입니다.

워크 시트는 Object 이고 Count는 메서드 입니다. Excel에는 여러 개체 ( Workbook , Worksheet , Range , Chart ..)가 있으며 각 개체에는 특정 메서드와 속성이 포함되어 있습니다. Excel VBA 참조 에서 전체 개체 목록을 찾을 수 있습니다. 워크 시트 개체가 여기 에 표시 됩니다 .

이 Excel VBA 참조는 Excel 개체 모델과 관련된 주요 정보 소스가되어야합니다.

  1. 이제 또 다른 표현식을 시도해 봅시다 ( ? 문자없이) :
Worksheets.Add().Name = "StackOveflow"
  1. 엔터 키를 치시오. StackOverflow. 라는 새로운 워크 시트를 만들어야합니다 StackOverflow. :

여기에 이미지 설명을 입력하십시오.

이 표현식을 이해하려면 앞서 언급 한 Excel 참조에서 Add 함수를 읽어야합니다. 다음을 찾을 수 있습니다.

Add:  Creates a new worksheet, chart, or macro sheet. 
The new worksheet becomes the active sheet. 
Return Value: An Object value that represents the new worksheet, chart,
 or macro sheet.

따라서 Worksheets.Add() 는 새 워크 시트를 만들어 반환합니다. 워크 시트 ( 없는 )는 문서 자체에서 찾을 수 있는 Object이며 Name 은 해당 속성 중 하나입니다 ( 여기 참조). 그것은 다음과 같이 정의됩니다 :

Worksheet.Name Property:  Returns or sets a String value that 
 represents the object name.

따라서 다양한 객체 정의를 조사 Worksheets.Add().Name = "StackOveflow" 코드 Worksheets.Add().Name = "StackOveflow" 를 이해할 수 있습니다.

Add() 는 새 워크 시트를 만들고 추가 한 다음 그에 대한 참조 를 반환 한 다음 Name 속성 을 "StackOverflow"로 설정합니다.


이제 더 공식적으로 보겠습니다. Excel에는 여러 개체가 포함되어 있습니다. 이러한 개체는 동일한 클래스의 하나 이상의 Excel 개체 컬렉션으로 구성 될 수 있습니다. Worksheet 객체의 모음 인 WorkSheets 의 경우입니다. 각 Object에는 프로그래머가 상호 작용할 수있는 몇 가지 속성과 메서드가 있습니다.

Excel 개체 모델은 Excel 개체 계층을 참조합니다.

모든 개체의 맨 위에는 Application 개체가 있으며 Excel 인스턴스 자체를 나타냅니다. VBA 프로그래밍에서는이 계층을 잘 이해해야합니다. 메서드를 호출하거나 속성을 설정 / 가져 오기 위해 개체에 대한 참조가 항상 필요하기 때문입니다.

(매우 단순화 된) Excel Object Model은 다음과 같이 표현 될 수 있습니다.

                            Application
                             Workbooks
                             Workbook
                            Worksheets
                             Worksheet
                              Range

Excel 2007에서와 같이 워크 시트 개체에 대한 자세한 버전은 아래에 나와 있으며,

여기에 이미지 설명을 입력하십시오.

전체 Excel 개체 모델은 여기 에서 찾을 수 있습니다 .

마지막으로 일부 개체에는 Excel 개체 모델의 일부인 events (예 : Workbook.WindowActivate )가있을 수 있습니다.