EXCEL VBA

VBA With-End With 구문에 대한 기초 설명, With-End With 사용 방법

카루루1007 2024. 1. 30. 14:38
728x90
반응형

[ 들어가며 ]

 

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 구문을 사용하면

코드가 더 간결해집니다.

코드를 작성하는 사람도

코드를 보는 사람도 더 편해집니다.

 

이는 코드의 가독성과 유지관리 측면에서도 매우 유리합니다.

 

뿐만아니라 프로그램의 실행속도도 빨라집니다.

 

여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.

엑셀 공부하기
VBA 공부하기

728x90
반응형