자료실

부자는 돈을 써서 시간을 아끼지만 가난한 사람은 시간을 써서 돈을 아낀다

vb6.0/vba

IT HUB를 찾아주셔서 감사합니다.

vba [vba] 아는것이 힘이다 - 2중 및 다중 중첩 For문의 활용

페이지 정보

profile_image
작성자 하나를하더라도최선을
댓글 0건 조회 8,183회 작성일 20-10-02 10:00

본문

보통 2중 중첩 For문의 경우 아래와 같이 사용합니다.

Sub program1472_com()

Dim i As Integer, n As Integer

Dim T As String

T = "i * n = ?" & vbCrLf

For i = 1 To 5

For n = 1 To 5

If Len(T) Then T = T & vbCrLf

T = T & i & " * " & n & " = " & i * n

Next n

Next i

MsgBox T

End Sub

아래는 출력 결과 입니다.

이정도는 초보 분들도 다 아실 내용입니다.

다음으로 소개해 드릴 방법은 상상도 못할 고급 프로만이 사용하는 기술 입니다.

Sub program1472_com()

Dim i As Integer, n As Integer

Dim T As String

T = "i * n = ?" & vbCrLf

For i = 1 To 5

For n = 1 To 5

If Len(T) Then T = T & vbCrLf

T = T & i & " * " & n & " = " & i * n

Next n, i

MsgBox T

End Sub

이걸 좀더 변형하면

Sub program1472_com()

Dim i As Integer, n As Integer

Dim T As String

T = "i * n = ?" & vbCrLf

For i = 1 To 5: For n = 1 To 5

If Len(T) Then T = T & vbCrLf

T = T & i & " * " & n & " = " & i * n

Next n, i

MsgBox T

End Sub

이렇게 사용할 수 있습니다.

이 3가지 모두 똑같은 결과값을 도출합니다.

주의 할점으로 "Next n, i" 여기서 "선입후출" 이라고 해야 하나요?

마지막 For문이 맨 앞으로 오고 시작하는 For문이 맨 끝으로 가야 합니다.

3중 For문의 경우 응용한다면 아래와 같이 사용할 수 있겠지요

Sub program1472_com()

Dim i As Integer, n As Integer, x As Integer

Dim T As String

T = "i * n * x = ?" & vbCrLf

For i = 1 To 5

For n = 1 To 5

For x = 1 To 5

If Len(T) Then T = T & vbCrLf

T = T & i & " * " & n & " * " & x & " = " & i * n * x

Next x, n, i

MsgBox T

End Sub

출력 결과는 아래와 같습니다.(MsgBox로 출력해서 잘린겁니다.)

댓글목록

등록된 댓글이 없습니다.