2024년 7월 19일 금요일

With ~ End With 구조

하나의 오브젝트에 대해 여러 가지 조작을 할 때 코드 자체를 매우 간결하게 표현할 수 있도록 해준다.


Sub ChangeFont()

    Range("b24").ClearContents

    Range("b24").Value = "Visual Basic"

    Range("b24").Select

    Selection.Font.Name = "Arial"

    Selection.Font.FontStyle = "Bold Italic"

    Selection.Font.Size = 12

    Selection.Font.ColorIndex = Rnd() * 56 + 1

    Selection.Font.Underline = xlSingle

End Sub

해설)

b24 셀 삭제,

b24셀에 "Visual Basic" 문자열 삽입

b24셀 선택,

폰트 이름을 "Arial"로

폰트 스타일을 "굵은 이탤릭체"로

폰트 크기를 12포인트로 지정

글자의 색을 임의의 색으로 지정

글자에 밑줄을 지정


위의 프로시저는 range 오브젝트에 대해 3개의 프로퍼티를 font 오브젝트에 대해 5개의 프로퍼티를 사용해서 작업을 하고 있는데 매번 오브젝트명을 다 불러서 작업을 함

수행속도 저하..

Sub ChangeFont2()

    With Range("b50")

        .ClearContents

        .Value = "Visual Basic"

        .Select

    End With

    With Selection.Font

        .Name = "Arial"

        .FontStyle = "Bold Italic"

        .Size = 12

        .ColorIndex = Rnd() * 56 + 1

        .Underline = xlSingle

    End With

End Sub





















댓글 없음:

댓글 쓰기