1. Range속성을 이용하여 범위 참조하기(WorkSheet객체.Range속성) Range("A1") : 단일셀 Range("A1:E10") = Range("A1", "E10") :영역 Range("이름") : 이름정의 이용 Range("C1:C10" ∨ "A6:E6") : 논리연산 이용 Range("A1 , A3 , A7 , B5") : 비연속셀 참조 2. Cells속성을 이용하여 범위 참조하기(WorkSheet객체.Cells속성) Cells(rowIndex, columnIndex) Cells(Index) : 가로방향의 인덱스 => Cells(16385) = [A2] Cells : 전체 셀 3. 상대 참조 개념 Range객체.Range속성 Range객체.Cells속성 ActiveCell.Range("..
■ VBA 코드의 종류 - Sub 프로시저 : 어떤 동작을 수행하는 명령문의 집합 - Function 프로시저 : 하나의 값이나 배열을 반환하는 명령문의 집합 - Property 프로시저 : 클래스 모듈에서 사용하는 특수한 형태의 프로시저 - Declaration : VBA에게 사용하려는 변수에 대한 정보를 알려 줌 ( Data Type 선언 가능) ※ 주석처리 : 작은 따옴표( ' ) 이용 ※ 줄 연속 문자 : 빈칸 + 언더바( _ ) + Enter ※ :(콜론)을 이용하여 한줄에 여러 명령문 입력 x=1: y = 2: z=3 ※ 직접실행창에 코드 테스트 - 코드 반환값이 있는 경우 : Print 코드 ? 코드 예) ?Range("A1").Value 11 - 코드 반환값이 없는경우 : 코드 예) Msg..
■ 오류 종류 구문 오류 : 문법 오류 런타임 오류 : 프로시저 구동 중 발생하는 오류 ※ 오류처리프로시져를 작성하여 에러를 처리하고자 한다면 VBE 옵션에서 [오류발생 시 무조건 중단] 해제 -> [ 처리되지 않은 오류 발생 시 중단 ] 선택 ■ 오류처리 개념 VBA는 기본적으로 프로시저 구동 중 발생하는 런타임 오류에 대해서 VBA오류메시지 대화상자를 뛰운다. -------------------------------≫ 일반 Excel사용자가 이런 에러 메시지창을 대하면 대처가 불가할 수 있으니 배포자가 에러를 내부적으로 처리할 필요가 있다 ( 배포자가 작성한 메시지를 뛰우거나 에러처리 코드 실행 ) ▶ VBA는 에러발생 시 발생에러를 Err 개체의 Number 속성에 저장 ▶ Error함수를 이용하여..
참조 대상(RefersTo)은 = 대상 으로 표현 ■ 셀/범위에 이름 정의하기 ActiveWorkbook.Names.Add _ Name:="수입", _ RefersTo:="=Sheet1!$A$1" ■ 행/열에 이름 정의하기 ActiveWorkbook.Names.Add _ Name:="참조영역", _ RefersTo:="=Sheet1!$G:$G" ■ 상수에 이름 정의하기 ActiveWorkbook.Names.Add _ Name:="참조", _ RefersToR1C1:="=25" ■ 개체에 이름 정의하기 : 피벗 테이블, 도형과 같은 개체에도 이름정의 가능 ※ 이미 참조되고 있는 셀/범위에 이름 적용하기 A1, B1에 수입, 지출 이름을 지정하더라도 C1에 적용된 수식이 자동을 이름이 적용된 수식으로 변경되..
Switch 알고리즘을 이용한 중복데이터 추출 CODE Function Switch_Algorism(arr) ' 중복데이터 제거 -> 단일 데이터 Dim i, j, k, cnt As Integer Dim NewArray() As Variant k = 0 For i = LBound(arr) To UBound(arr) - 1 cnt = 0 For j = i + 1 To UBound(arr) If arr(i) = arr(j) Then cnt = cnt + 1 Exit For End If Next j If cnt = 0 Then ReDim Preserve NewArray(k) NewArray(k) = arr(i) Debug.Print NewArray(k) k = k + 1 End If Next i ReDim P..
DATA배열을 만들기 위해서는 반드시 String형 자료형 선언 필요 # variant자료형으로 선언시 split하여 대입된 DATA의 모양 => DATA(0)(0), DATA(0)(1)........ 형식임 (차후 정리 필요) - Trim을 이용하여 양끝 공백 제거 - Split을 이용하여 space bar 단위로 문자열 split - 문자열을 정수화하여 직접실행창에 출력 Dim i As Integer Dim a, DATA() As String a = InputBox("데이터 입력 [ space bar로 구분 ]") DATA = Split(Trim(a)) For i = LBound(DATA) To UBound(DATA) Debug.Print (Int(DATA(i))) Next i
출처 : 프리렉 / 엑셀 VBA 바이블 / 이현곤 구미숙 저 WIELY / Excel 2016 Power Programming with VBA / John Walkenbach 7.7 VBE 환경 사용자 지정 이것만은 꼭 확인하자!!! ■ 도구>옵션 ▶ 변수 선언 요구 이 옵션을 선택하면 Option Explict 이 코드창 상단에 자동 생성 변수에 대하여 반드시 정의하고 사용해야 한다. ▶ 처리되지 않은 오류 발생 시 중단 이 옵션을 선택해야 개발자가 만든 오류처리 코드가 실행된다. 7.8 매크로를 개인용 매크로 통합문서에 저장하기 ▶ 이곳에 저장된 매크로는 모든 통합 문서에서 사용가능 ▶ 매크로 저장위치 : 개인용 매크로 통합 문서 ▶ 파일위치: C:\Users\TaeIk\AppData\Roaming\..
출처 : 프리렉 / 엑셀 VBA 바이블 / 이현곤 구미숙 저 WIELY / Excel 2016 Power Programming with VBA / John Walkenbach 숫자가 아닌 셀의 데이터는 0으로 처리하고 기존 데이터는 메모장에 저장 보관 Private Sub comment_Click() Dim r, rng As Range '영역 이름지정으로 설정 가능 => Set rng = Range("판매") Set rng = Range("b4:d15") For Each r In rng '셀의 값이 숫자인지 판단 If IsNumeric(r) True Then '메모 추가 r.AddComment ("[기존데이터]") With r.comment .Visible = False '셀의 값을 메모에 추가 .Tex..
- Total
- Today
- Yesterday
- Application.InputBox
- 원본 데이터
- 함수 재계산
- 참조
- Option Compare Text
- Screenupdating
- comment.text
- function함수 예외
- 차트 레이블 추가
- 강제 재계산
- 프로시저 호출
- 사용자 정의 함수 사용 예
- 사용자 정의 함수 재계산
- Function Procesure
- 프로시저 작성 실전
- bubble sort
- 차트 서식변경
- 사용자 정의 함수
- 배열
- Excel
- EnableCancelKey
- ProtectStructure
- 함수 프로시저
- 적용 범위
- inputbox
- WorkSheet Sort
- for each
- vba
- 개체
- 워크시트 함수 재계산
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |