-
엑셀 VBA 기초 : Offset, Resize, Interior(영역값지정, 영역선택, 영역변경, 셀색변경)coding \ Visual_Basic \ [Excel] 2021. 6. 28. 14:52728x90
1. 개념
1) Offset
- 선언(Dim, Set)한 하나의 영역(Cell,Rows,Columns)을 가지고 여러 셀을 선택하거나 범위를 선택하기 위해 사용됨.
- 응용하면 한 줄의 코드로 여러 출력값이 가능하다.
- 상대참조의 개념으로 생각하면 된다.
- Worksheets(1).Cells(2,1).Offset(-1,1) : 첫번째 워크시트의 "B1"셀의
2) Resize
- 선언(Dim, Set)한 하나의 영역(Cell)을 복수의 범위로 선택하기 위해 사용됨.
- 엑셀에서 한 영역을 잡고 드래그하는 것과 같은 효과를 준다.
3) Interior
- 특정영역의 바탕색(Color, Colorindex)을 변경할 때 주로 사용된다.
- Worksheets(1).Cells(1,1).interior : 첫번째 워크시트의 "A1"셀의 셀색을 칭한다.
- Worksheets(1).Cells(1,1).interior.ColorIndex = 1~56 : 1부터 56까지의 색 가능
<Interior ColorIndex표> 2. 예시
<예시 : Offset, Resize, Interior 활용> 3. 코드리뷰
Sub Color_Make() <- 값 비교 후, 해당내역 셀 색 변경 프로시저
Dim rngR As Range <- rngR : For each문에 사용할 변수
Dim rngD As Range <- rngD : 표에서 조건대상(반)범위
Dim lngEnd As Long
Dim Ave As Integer
lngEnd = Worksheets(1).Range("M100000").End(Xlup).row <- 범위의 끝행 값 찾기
Set rngD = Range("M13:M" & lngEnd)
Range("A1:Z60").Interior.ColorIndex = 0 '인테리어칼라 초기화
For Each rngR In rngD <- rngD의 각 셀을 rngR에 하나씩 대입
If rngR = Range("B3") And Range("B6") <= rngR.Offset(0, 5).Value Then*rngR.Offset(0, 5) : 0행5열 이동한 셀값
rngR.Offset(0, -1).Resize(1, 7).Interior.ColorIndex = 6*rngR에서 좌로1열로 기준점이동. 기준점에서 7열까지의 값의 Interior 색상을 노랑색으로 변경
End If
Next rngR
End Sub반응형'coding \ Visual_Basic \ [Excel]' 카테고리의 다른 글
엑셀 VBA 기초 : 데이터 자동 채우기(AutoFill) (0) 2021.06.29 엑셀 VBA 기초 : 엑셀 단축키 모음 (0) 2021.06.29 엑셀 VBA 기초 : Function과 Sub의 차이(Function, Sub, 프로시져, 모듈) (0) 2021.06.27 엑셀 VBA 기초 : 지우기 (Delete, Clear, ClearContents, ClearFormats) (0) 2021.06.27 엑셀 VBA 기초 : 영역(Range)복사, 붙여넣기, Resize(Copy, Pastespecial, Resize) (0) 2021.06.27