티스토리 뷰

VBA

[Excel][VBA] VBA 기초 다지기

어린왕자1234 2021. 11. 20. 16:12

■ VBA 코드의 종류

- Sub 프로시저 : 어떤 동작을 수행하는 명령문의 집합

- Function 프로시저 : 하나의 값이나 배열을 반환하는 명령문의 집합

- Property 프로시저 : 클래스 모듈에서 사용하는 특수한 형태의 프로시저

- Declaration : VBA에게 사용하려는 변수에 대한 정보를 알려 줌 ( Data Type 선언 가능)

 

※ 주석처리  : 작은 따옴표( ' ) 이용

※ 줄 연속 문자 : 빈칸 + 언더바( _ ) + Enter

※ :(콜론)을 이용하여 한줄에 여러 명령문 입력        x=1: y = 2: z=3

※ 직접실행창에 코드 테스트

    - 코드 반환값이 있는 경우 : Print 코드

                                        ? 코드

                                        예) ?Range("A1").Value
                                             11 

    - 코드 반환값이 없는경우 : 코드

                                       예) MsgBox("에러가 발생했습니다.")                                           

■ 개체는 계층적이다. / 개체의 모임이 컬렉션이다(컬렉션 자체도 객체다)

Application 
Workbooks   - Workbook
WorkSheets  - WorkSheet
Range         
기타 개체
Windows
Addins
Chars
Names
PageSetup
PivotTables

※ 개체 참조하기 : 계층적으로 상위개체.하위개체 형식으로 대상 한정

    In1 = Workbooks("통합 문서1").Worksheets("Sheet1").Range("A1").Value  

            => Range("A1") 도 가능 : 현재 활성화된 문서, 시트에 적용 시 

※ 개체 존재 여부 확인  => ?개체 is Nothing  

 

■ 개체 속성 / 메소드

    ※ 인수 지정 방식

       - positional 인수

             쉼표( , )로 구분하여 누락시 공백처리

              Workbooks("통합 문서1").Protect "abcde", True, False
              Workbooks("통합 문서1").Protect , True, False    

       - Keyword 인수 

             인수명 : = 값

              A = Range("A1").Address(rowabsolute:=False)

       -☞ 값을 반환하는 속성/메소드의 인수는 ( ) 로 묶어 표시

 

■ 유용한 Application 개체의 속성들

-  엑셀 작업 시 workbook, worksheet, cell 하나만 활성화 된다.

ActiveWindow 현재 활성화된 창  
ThisWorkbook VBA 프로시저 포함 통합문서  
ActiveWorkbook 현재 활성화된 통합문서 ActiveWorkBook.FullName
ActiveSheet 현재 활성화된 시트(WorkSheet, ChartSheet) ActiveSheet.Name
ActiveChart WorkSheet에 있는 Chart, ChartSheet  
ActiveCell 현재 활성화된 셀 ActiveCell.ClearContents
Selection 현재 선택된 객체(Range, Shape, Chart등) Selection.Value = 12

 

■ 개체에 대한 개념과 배우는 방법

 

[Excel][VBA] 개체에 대한 개념과 배우는 방법

1. 개체에 대해서 기억해야 할 필수 개념 - 개체에는 고유한 속성과 메소드가 있다. 그러나 공통된 요소도 있다.( Name, Delete ) - 개체를 선택하지 않고서도 개체에 작업 수행 가능(Select꼭 필요하지

office-automation.tistory.com

 

'VBA' 카테고리의 다른 글

[Excel][VBA] 병합된 셀 처리  (0) 2021.11.20
[Excel][VBA] Range개체 참조하기  (0) 2021.11.20
[Excel][VBA] 오류 처리 방법  (0) 2021.11.20
[Excel][VBA] 이름 정의  (0) 2021.11.20
[Excel][VBA] 중복데이터 추출  (0) 2021.11.17