[ 들어가며 ]
With-End With 구문은 동일한 개체에
여러 작업을 수행할 때 사용하는 구문입니다.
예를들면,
1번방에는 목공용 공구가 있습니다.
2번방에는 컴퓨터 제품이 있습니다.
누군가에게 목공용 공구를 가져오라고 시킬 때
1번방에 가서 망치 가지고와
1번방에가서 톱 가지고와
1번방에가서 드릴 가지고와
이렇게 시키는 것과
지금부터 내가 시키는 것은 모두 1번방에 있어.
망치 가지고와
톱 가지고와
드릴 가지고와
이렇게 시키는 것은 실생활에서도 차이가 있습니다.
이렇게 지시를 하게 되면
지시를 하는 사람도 지시하는 시간이 줄어들고
지시를 받는 사람도 1번방과 2번방의 선택지 중
2번방을 배제하고 항상 1번방에 가면 된다는 것을
미리 인지하고 있으면
그만큼 작업 시간이 줄어들게 될 것입니다.
[ With-End With구문 ]
With-End 문의 기본 구문은 아래와 같습니다.
With 개체
.실행할 코드
.실행할 코드
End With
우선 [ With ]로 시작하고
[ End With ]로 끝이 납니다.
With와 End With는 시작과 끝을 알려주며
항상 같이 다녀야 합니다.
With 다음에는 [ 개체 ]가 오게 됩니다.
이 개체는 앞서 예시중에 [ 1번방 ]이 됩니다.
그 다음 [ 실행할 코드 ]가 오게 됩니다.
주의하셔야 할 점은
실행할 코드 앞에 반드시 온점[ . ]이 먼저 와야 합니다.
[ 간단한 사용 예시 ]
동일한 개체에 대해 여러가지 작업을 하는 경우
With-End With 구문을 사용하는데
간단한 예시코드를 살펴보겠습니다.
Sub With구문()
Range("a1").Value = 10000
End Sub
이 구문을 실행하면 아래 그림과 같이 [ A1 ]셀에
[ 10000 ]이 입력이 됩니다.
글씨 색을 빨간색으로 바꾸는 코드를 추가해 보겠습니다.
이런 식으로 몇 가지 코드를 더 추가하면
코드가 아래와 같이 됩니다.
Sub With구문()
Range("a1").Value = 10000
Range("a1").Font.Color = RGB(255, 0, 0)
Range("a1").Font.Bold = True
Range("a1").Interior.Color = RGB(0, 255, 0)
Range("a1").NumberFormat = "#,###"
End Sub
A1 셀에 값을 넣고,
글씨의 색과 배경색을 바꾸고
글씨를 진하게 하고, 숫자의 표시 방법을 설정했습니다.
이제 이 코드를
With-End With 구문을 사용해서 적어보겠습니다.
Sub With구문()
With Range("a1")
.Value = 10000
.Font.Color = RGB(255, 0, 0)
.Font.Bold = True
.Interior.Color = RGB(0, 255, 0)
.NumberFormat = "#,###"
End With
End Sub
두 구문을 같이 한번 놓고 비교해보시기 바랍니다.
Sub With구문()
Range("a1").Value = 10000
Range("a1").Font.Color = RGB(255, 0, 0)
Range("a1").Font.Bold = True
Range("a1").Interior.Color = RGB(0, 255, 0)
Range("a1").NumberFormat = "#,###"
End Sub
Sub With구문()
With Range("a1")
.Value = 10000
.Font.Color = RGB(255, 0, 0)
.Font.Bold = True
.Interior.Color = RGB(0, 255, 0)
.NumberFormat = "#,###"
End With
End Sub
With-End With 구문을 사용하면
코드가 더 간결해집니다.
코드를 작성하는 사람도
코드를 보는 사람도 더 편해집니다.
이는 코드의 가독성과 유지관리 측면에서도 매우 유리합니다.
뿐만아니라 프로그램의 실행속도도 빨라집니다.
여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.
'EXCEL VBA' 카테고리의 다른 글
엑셀 VBA 단어 채우기, VBA 좀 더 편리하게 사용하기 (2) | 2024.01.31 |
---|---|
엑셀 VBA 매크로 실행시간 계산하기, 매크로 실행에 걸리는 시간은?, Timer 함수 (0) | 2024.01.30 |
엑셀 VBA Instr 함수, VBA 문자열 검색의 기본과 예시 (1) | 2024.01.26 |
엑셀 VBA 번역 사용자 정의 함수 만들기, 엑셀 VBA 번역기 직접 만들어 사용하기, 엑셀 영어 번역 (1) | 2024.01.25 |
엑셀 VBA로 중복없는 무작위 숫자 생성하기, 중복없는 랜덤 숫자 생성하기 (0) | 2024.01.12 |