티스토리 뷰
iexceller.com의 VBA 입문강좌를 정리한 내용입니다.
Visual Basic Editor 진입 : 도구-매크로-Visual Basic Editor (Alt+F11)
a. 프로젝트 탐색기 : 보기-프로젝트 탐색기 (Ctrl + R)
b. 속성 창 : 보기-속성 창 (F4)
c. 코드 입력 창 : 보기-코드 (F7)
d. 직접 실행 창 : 보기-직접 실행 창 (Ctrl+G)
코드 작성 및 실행
a. 파일 - 새로 만들기
b. 도구 - 매크로 - Visual Basic Editor
c. 삽입 - 모듈 // Option Explicit 문장이 나타나면 주석처리(' 작은따옴표) 또는 삭제
d. 작성 ~
e. 실행 - Sub/사용자 정의 폼 실행 (F5) // 또는 도구모음에 실행 버튼
코드
Application.UserName : 사용자명
Application.Version : 엑셀 버전
Windows.Arrange xlTiled //엑셀 창들을 바둑판식 정렬
Workbooks.Add : 새로운 통합 문서 추가
Application.DefaultFilePath : 파일을 열 때 사용되는 기본 경로 = 도구-옵션>일반>기본 파일 위치
ActiveWorkbook.SaveAs Filename:=Application.DefaultFilePath & "\Temp.xls"
// 기본 경로에 Temp.xls로 저장
번수지정
Dim 변수명 As 변수타입
// 변수 타입
// String : &로 연결, vbCr (캐리지리턴), vbLf (라인피드)
// Integer
// Workbook 등의 클래스?
ReDim 재정의?
Return = MsgBox("메시지", "버튼 종류")
// 버튼 종류
상 수 | 값 | 설 명 |
---|---|---|
vbOKOnly | 0 | 확인 단추 전용(default) |
vbOKCancel | 1 | 확인, 취소 단추 |
vbAbortRetryIgnore | 2 | 중지, 다시 시도, 무시 단추 |
vbYesNoCancel | 3 | 예, 아니오, 취소 단추 |
vbYesNo | 4 | 예, 아니오 단추 |
vbRetryCancel | 5 | 다시 시도, 취소 단추 |
vbCritical | 16 | 치명적 오류 메시지 |
vbQuestion | 32 | 경고 질문 |
vbExclamation | 48 | 경고 메시지 |
vbInformation | 64 | 정보 메시지 |
vbDefaultButton1 | 0 | 첫째 단추가 기본값입니다(default) |
vbDefaultButton2 | 256 | 둘째 단추가 기본값입니다 |
vbDefaultButton3 | 512 | 셋째 단추가 기본값입니다 |
vbDefaultButton4 | 768 | 넷째 단추가 기본값입니다 |
vbApplicationModal | 0 | 응용 프로그램 모달 메시지 상자(default) |
vbSystemModal | 4096 | 시스템 모달 메시지 상자 |
vbMsgBoxHelpButton | 16384 | 메시지 상자에 도움말 단추를 추가합니다 |
vbMsgBoxSetForeground | 65536 | 메시지 상자를 전경 창으로 지정합니다 |
vbMsgBoxRight | 524288 | 텍스트가 오른쪽 맞춤 되었습니다 |
vbMsgBoxRtlReading | 1048576 | 히브리어와 아랍어 시스템의 경우 텍스트의 읽기 방향이 오른쪽에서 왼쪽으로 나타나도록 지정합니다 |
// Return 선택한 버튼
상 수 | 값 | 설 명 |
---|---|---|
vbOK | 1 | 확인 |
vbCancel | 2 | 취소 |
vbAbort | 3 | 중단 |
vbRetry | 4 | 다시 시도 |
vbIgnore | 5 | 무시 |
vbYes | 6 | 예 |
vbNo | 7 | 아니오 |
사용자 입력
Return = InputBox("질문","질문창제목")
// Return : 사용자 입력값
서브 프로시저
Sub 프로시저명()
(코드)
End Sub
조건문
If (조건부) Then
(참 실행부)
Else
(거짓 실행부)
End If
반복문
For i = 1 To 20
~
Next i
Cells(x, y).Value //x, y 셀 값
Cells(x, y).ClearContents //x, y 셀 값 지우기
■ 워크시트 오브젝트(Worksheet object)
ActiveSheet.Name : 현재 선택된 시트 명, 값을 넣으면 시트명 변경 가능, 가져오기도 가능
※ Active~ 접두어 : 작업중인~ ActiveCell, ActiveWindow, ActivePane, ActiveWorkbook, ActiveChart 등
Worksheet.Add : 삽입-워크시트
Worksheets.Add after:=Worksheets(1), Count:=2
//after 위치, Count 삽입 개수
Worksheets("Sheet2").Activate
//sheet2 선택, Activate 대신 Select 메소드도 가능
Worksheets("Sheet1").Move after:=Worksheets("Sheet3")
//sheet3 뒤쪽으로 이동, after 인자 미지정 시에는 sheet1 이 새로운 문서로 분리됨
Application.DisplayAlerts = False //삭제 대화창 끔
ActiveSheet.Delete //시트 삭제
Application.DisplayAlerts = True
■ 레인지 오브젝트(Range Object)
ActiveSheet.Rows.Count
// 현재 시트 행 수 카운트
ActiveSheet.Columns.Count
// 현재 시트 열 수 카운트
-Range 속성
Worksheets("Sheet1").Range("A1").Value = 100
Selection.ClearContents
//선택된 영역의 데이터를 지웁니다.
메서드 | 설 명 |
Clear | 내용과 서식을 모두 지웁니다. |
ClearContents | 내용만 지웁니다. |
ClearFormats | 서식만 지웁니다. |
Worksheets("Sheet1").Range("A1:A10").Value = "엑셀 VBA"
Range("A1").CurrentRegion.Select
// A1과 인접한 셀 모두 선택
-Cells 속성
Cells(5,2) = 100
//B5 셀에 100 입력
//sells 앞에 아무것도 없으면 현재 워크시트를 대상으로 함
Range(Cells(3, 2), Cells(10, 5)).Select
//range와 조합 가능
Range("B2:E9").Cells(3, 2) = 100
//range 내의 좌표로 C4 값이 100이 됨
※ Cells 속성의 장점은 인수에 숫자를 사용할 수 있다는 것!
-Rows, Columns 속성
Rows("3:7").Value = "Test"
//3~7행의 모든 값을 Test로 변경
Range("B3:E7").Select
Selection.Columns = "Test"
//선택된 B3~E7 셀 범위의 모든 열의 값을 Test로 변경
Columns("B:E").Value = "Test"
//B:E 열의 값을 모두 Test로 변경
Selection.EntireRow.Select
// 선택된 행을 전체로 확장하여 선택
Selection.EntireColumn.Select
// 선택된 열을 전체로 확장하여 선택
-CurrentRegion 속성
Range("A1").CurrentRegion.Select
//A1과 인접한 모든 셀 선택, 지정한 셀에서 상하좌우 빈셀을 만날때까지 지속 확장
Range("A1").CurrentRegion.BorderAround Weight:=xlMedium
//선 긋기
Selection.Offset(1,0).Select
// offset을 이용하여 선택된 범위를 1행 아래로 내림
Selection.Resize(Selection.Rows.Count - 1, Selection.Columns.Count).Select
// resize를 통해 범위 크기를 1행 줄임(제일 아래쪽 1행이 선택 제외됨)
Selection.Interior.ColorIndex = 44
// 색칠하기~
- UsedRange 속성
ActiveSheet.UsedRange.Select
// usedRange는 사용된 모든 영역을 선택하는 속성입니다.
// CurrentRegion은 Range 오브젝트의 속성
// UsedRange는 Worksheet 오브젝트의 속성
- Union 메서드
// 서로 떨어져 있는 여러 영역의 합집합
Set shtSheet = Sheets("Sheet6")
Set rngFirst = shtSheet.Range("A1").CurrentRegion
Set rngSecond = shtSheet.Range("G11").CurrentRegion
Set rngUnion = Application.Union(rngFirst, rngSecond)
- Intersect 메서드
// 두 개 이상의 영역 중에서 서로 겹쳐지는 영역의 주소를 알아낼 수 있다(교집합)
Set rngFirst = ActiveSheet.Range("A1:D8")
Set rngSecond = ActiveSheet.Range("C5:G12")
rngFirst.Select
rngSecond.Select
Set rngIntersect = Application.Intersect(rngFirst, rngSecond)
rngIntersect.Select
- Total
- Today
- Yesterday
- 풋볼데이 매크로
- 풋볼데이
- 풋볼 데이
- pair-wise
- pairwise tool
- 품질관리
- 풋데 오토
- QC
- pict
- 테스팅이란
- 패어와이즈
- 풋데 매크로
- pair-wise tool
- 풋볼데이 메크로
- pairwise
- software test
- 픽트
- 테스팅 정의
- 테스트 레벨
- 테스팅
- 풋볼데이 자동
- 풋볼데이 오토
- 페어와이즈
- 페어와이즈 툴
- 테스팅의 역할
- 품질보증
- 결함의 원인
- QA
- 테스트 정의
- 패어와이즈 툴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |