가끔 하나의 함수가 길어지는 경우가 발생한다.
너무 길어지면 가로 스크롤이 생기고 가독성이 떨어지게 된다.
_(언더바)를 이용해서 코드를 여러 줄로 작성해보자.
1. 테스트
1
2
3
4
5
6
|
Sub 연습()
Debug.Print ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row '1번
Debug.Print ActiveSheet.Cells(Rows.Count, "A"). _
End(xlUp).Row '2번
End Sub
|
cs |
A열의 마지막 데이터를 찾아주는 함수로 테스트하였다. 1번의 경우 한 줄로 작성했고, 2번은 두 줄로 만들어봤다.
실행결과야 둘 다 똑같은 1의 값을 출력했다.
함수를 두 줄로 작성하려면 _(언더바)만 넣어주면 끝이다. 어디에 넣어야 되는 그런 규칙은 없고 본인이 보기 편한 곳에넣으면 된다. 적절한 곳에 '_'만 넣어준다면 몇 줄이든 상관없다.
1
2
3
4
5
|
Sub 연습()
MsgBox "Hello", _
vbDefaultButton1, _
"Title"
End Sub
|
cs |
메세지 박스를 띄우는 함수를 세 줄에 걸쳐 작성해봤다. 파라미터 하나당 한 줄씩 사용하여 아주 비효율적인 공간활용을 보여주고 있다. 나중에 엄청나게 길어지는 함수가 있다면 _(언더바)를 이용해서 보기 쉽게 만들면 좋을 듯 하다.
2. 문자열 여러줄 쓰기
1
2
3
4
5
6
|
Sub 연습()
Debug.Print "Hi Man"
Debug.Print "Hi " & _
"Man"
End Sub
|
cs |
함수 여러줄 쓰는것과 비슷하지만 문자열의 경우 특수문자 하나가 더 들어간다. 바로 &(앰퍼센트)이다. 위 코드를 보면 바로 이해 할 수 있을거라 본다.
함수와 문자열을 여러줄에 걸쳐 쓰는걸 알게되었다. 나중에 쓸 일있으면 써봐야겠다.
3. IF문 한 줄로 작성하기
1
2
3
4
5
6
7
8
9
10
11
12
|
Sub 연습()
i = 1
If i = 1 Then
MsgBox "i=1"
Else
MsgBox "i=2"
MsgBox "good"
End If
End Sub
|
cs |
앞에서는 한 줄을 여러줄로 작성했다면, 이번엔 여러줄을 한 줄로 작성해보자.
위 코드는 i의 값에 따라 메세지 박스를 띄우는 프로시져이다. if문은 총 여섯줄로 되어있는데 요녀석을 한 줄로 줄여보겠다.
1
2
3
4
5
6
7
|
Sub 연습()
i = 2
If i = 1 Then: MsgBox "i=1": Else: MsgBox "i=2": MsgBox "good"
End Sub
|
cs |
:(콜론)을 이용하면 위와 같이 한 줄로 나타낼 수 있다.
콜론을 이용해 한 줄로 작성하면 End if를 생략해도 오류가 발생하지 않는다.
그리고 콜론과 함께라면 변수 선언과 동시에 초기화 할 수도 있다.
Dim a as Integer
a = 1
이런식으로 사용했다면,
Dim a as Integer: a=1
요렇게 바꿔 쓸 수 있다.
'컴퓨터 공부 > 엑셀 & VBA' 카테고리의 다른 글
[엑셀vba] 사용자 정의 폼을 써보자 (0) | 2021.01.28 |
---|---|
[엑셀vba] 정수인지 소수(0.24, 0.1)인지 구분해보자 (0) | 2021.01.12 |
[엑셀vba] 숨겨진 시트들 한꺼번에 숨기기 취소하기 (0) | 2020.12.09 |
[엑셀vba] 편집기 도킹 기능 해제하기 (0) | 2020.12.08 |
[엑셀vba] 시트의 마지막 데이터 위치를 알아내보자 (0) | 2020.12.02 |