Vba For 문 | 엑셀 Vba. 반복문(For Next) 5730 투표 이 답변

당신은 주제를 찾고 있습니까 “vba for 문 – 엑셀 VBA. 반복문(For Next)“? 다음 카테고리의 웹사이트 https://you.tfvp.org 에서 귀하의 모든 질문에 답변해 드립니다: https://you.tfvp.org/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 정욱채쌤_정보처리와관리 이(가) 작성한 기사에는 조회수 1,695회 및 좋아요 15개 개의 좋아요가 있습니다.

vba for 문 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 엑셀 VBA. 반복문(For Next) – vba for 문 주제에 대한 세부정보를 참조하세요

[엑셀 VBA 가볍게 시작해서 폼나게 활용하기-06]For Next 문의 구조와 활용
중첩 For Next문으로 구구셈표 만들기

vba for 문 주제에 대한 자세한 내용은 여기를 참조하세요.

For문 사용하기 – 네이버 블로그

For문은 엑셀 프로그래밍의 반복문 중 하나입니다. 반복문은 말 그대로 실행문을 반복해서 처리해야할 때 사용하는데요.

+ 여기에 더 보기

Source: m.blog.naver.com

Date Published: 2/23/2022

View: 1072

엑셀 VBA 반복문 For Next 문 사용하기 – 녹두장군

VBA 에서 반복 구문인 For Next 의 형식은 다음과 같습니다. 지정한 횟수 만큼 명령문을 반복하기 위해 사용합니다. 증가값은 사용자가 지정할 수 …

+ 더 읽기

Source: mainia.tistory.com

Date Published: 7/6/2022

View: 9967

반복문 사용하기 (For ~ Next문) – 오피스튜터

[엑셀] 반복문 사용하기 (For ~ Next문). 오늘은 11월5일(토)에 진행하는 장미희님의 Excel 매크로 & VBA 과정 중 반복문 중의 하나인 For..Next문에 대해서 알아 …

+ 여기를 클릭

Source: www.officetutor.co.kr

Date Published: 10/7/2022

View: 2409

엑셀 vba 반복문 For 다루기 – 컴공학도

본 강의에서는 vba뿐만 아니라 모든 프로그래밍 언어에서 기본적으로 사용하는 반복문에 대해서 알아보겠습니다. 1. For Next 문. Sub Macro()

+ 자세한 내용은 여기를 클릭하십시오

Source: comgonghakdo.tistory.com

Date Published: 7/7/2021

View: 8105

반복문 For문 활용하기 (For … Next …) – 수잔의 모닝스토리

반복문 For문 활용하기 (For … Next …) 업무/Excel Macro(VBA) / 모닝수잔 / 2021. 1. 18. 01:02. 안녕하세요 모닝수잔입니다 :).

+ 더 읽기

Source: morningsusan.tistory.com

Date Published: 6/15/2022

View: 4596

03-3.2 반복문 (For) – 코딩 초보를 위한 엑셀코딩, VBA

03-3.2 반복문 (For). For문. While문은 사실 좀 복잡한 감이 있습니다. If문처럼 앞 뒤로 블럭이 시작과 끝을 알리는 문법 …

+ 여기에 자세히 보기

Source: wikidocs.net

Date Published: 5/26/2021

View: 1708

[엑셀 VBA] FOR~NEXT문(순환문) 사용법 – 윤대리 키우기

For ~ NEXT 순환문은 엑셀 VBA 사용에 있어 가장 빈번하고 가장 쉽게 사용되는 순환문 구조이다. 대부분 순차적으로 CELL이나 RANGE 값을 실행할 때 …

+ 여기에 보기

Source: separang.tistory.com

Date Published: 3/20/2021

View: 1571

[Excel VBA 기초-2] IF문 / For문 / While문 – Half Moon

[Excel VBA 기초-2] IF문 / For문 / While문. <사용된 함수>. – 셀 값 선택. Range(“C2”).Value – 메시지박스 출력 MsgBox …

+ 여기에 자세히 보기

Source: halfmoon.tistory.com

Date Published: 3/8/2022

View: 3130

기초부터 실전까지 VBA 엑셀8 – 반복문 For

VBA에는 두 가지의 반복문이 있는데 이번에는 For Next 반복문에 대해 먼저 알아보겠습니다. “반복문”이란 말 그대로 지정한 구문을 해당 횟수 만큼 …

+ 더 읽기

Source: mmol.tistory.com

Date Published: 5/20/2022

View: 854

엑셀 VBA(매크로) – For ~Next 순환문 (반복문) – Memory Store

For~Next 순환문(반복문)은 특정 변수명이 초기값부터 종료값까지 특정 수만큼 증가하면서 처리할 작업을 반복 실행합니다. for 변수명 = 초기값 to …

+ 여기를 클릭

Source: dotsnlines.tistory.com

Date Published: 11/19/2021

View: 2186

주제와 관련된 이미지 vba for 문

주제와 관련된 더 많은 사진을 참조하십시오 엑셀 VBA. 반복문(For Next). 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

엑셀 VBA. 반복문(For Next)
엑셀 VBA. 반복문(For Next)

주제에 대한 기사 평가 vba for 문

  • Author: 정욱채쌤_정보처리와관리
  • Views: 조회수 1,695회
  • Likes: 좋아요 15개
  • Date Published: 2021. 5. 13.
  • Video Url link: https://www.youtube.com/watch?v=fbCv425rivA

For문 사용하기

안녕하세요. “봄이”입니다.

지식충전에서 계속 만남이 이루어지고있어요!

저도! 여러분도! 계속해서 지식을 충전하고 있다는거죠.

지난번 포스팅에서는 Select Case문에 대해서 알아봤었죠?

혹시 아직 못보셨다면 여기!

Select Case문 사용하기

이번 포스팅을 보기 전에 빠르게 보고 오시면 좋습니다.

이제 시작할까요? 보시죵!!

오늘은! “For문”에 대해서 보려고 하는데요.

For문은 엑셀 프로그래밍의 반복문 중 하나입니다.

반복문은 말 그대로 실행문을 반복해서 처리해야할 때 사용하는데요.

먼저 For문의 기본 형식을 볼까요?

For문 기본 형식

For 카운터 변수 = 시작 수 To 끝 수

반복해서 실행할 내용

[Exit For]

Next

For문은 ‘For~Next’ 형태로 For문 안에 반복할 내용을 작성합니다.

반복 횟수는 ‘시작 수’와 ‘끝 수’가 결정하는데요.

처음 시작할 때 카운터 변수에 시작 수가 대입되고

Next까지 진행 한 후 다시 For문으로 돌아오는데

카운터 변수가 끝 수가 될 때까지 다시 반복이 되는 거죠.

만약 카운터 변수 값이 끝 수에 도달하지 않았는데

강제로 For문의 반복을 중단하려면

Exit For문을 사용하면 돼요.

Exit For문을 만나면 For문의 반복이 중단되고 Next절의 다음 명령문으로 이동하게 됩니다.

글로만 보기에는 ‘무슨소리지?’ 싶을 수도 있을텐데요!

백문이 불여일견이라고 하죵?

▶ 어서 빨리 예제를 보시죠!

엑셀을 준비하세요. 그리고 VBA 편집기 창을 켜시고! (‘Alt’+’F11’)

모듈을 추가해주세요.

예제를 실행했을 때의 결과와 비교하기 위해

처음 엑셀시트의 모습을 한 번 봐주세요.

그리고 VBA 편집기 창으로 가서 (‘Alt’+’F11’)

모듈을 추가해줍니다.

그리고 코드를 작성하면 되는데요.

For문만 보면 된다고 생각하지 말고!

전부를 다 봐봅시당.

처음보는 속성까지 하나하나 뜯어볼게요!

Sub For_Ex1()

Dim i As Long

1. Sub 프로시저를 이용했습니다.

For_Ex1이라는 프로시저 명으로 프로시저를 만든 후

For문에서 사용할 변수 i를 선언합니다.

데이터 형은 Long으로 지정했어요.

Range(“A1”).Select

2. 셀 A1을 선택합니다.

Range는 특정 셀이나 셀의 역역을 가리킬 수 있어요.

Select는 앞에서 지정한 범위를 선택하죠!

ActiveCell.Resize(, 10).Clear

3. ActiveCell은 현재 활성화 되어있는 셀이죠?

그리고 Resize 속성이 나오는데요.

이 속성을 사용하면 범위의 크기를 조절할 수 있어요.

여기서는 전에 선택했던 A1셀로부터 가로(열)방향으로 10개의 셀의 범위를 선택합니다.

뒤에 보이는 Clear는 vba에서 사용되는 메서드(함수)인데요.

Clear 함수를 사용하면 모든 개체의 내용을 삭제할 수 있습니다.

다시 보면!

‘A1셀로부터 가로(열) 방향으로 총 10개의 셀을 모두 지우기’ 합니다.

For i = 0 To 9

4. 오늘 봐야하는 For문이 여기 나오네요.

처음에 선언한 변수 i가 0부터 9보다 작거나 같은 동안

그 다음에 나오는 실행 문을 반복하게 됩니다.

ActiveCell.Offset(0, i) = i + 1

5. Offset을 처음 보죠?

저도 처음 봤는데요.

셀의 범위를 반환하는 함수입니다.

특정 위치(행,렬)을 검색할 때 사용하는 함수이기도 합니다.

여기서는 특정 위치를 검색하는 용도로 사용했어요.

위에 쓰인 Offset 함수는 세로(행)방향으로 0번째, 가로(열)의 방향으로 10번 째에 있는 셀을 가리키네요.

ActiveCell은 현재 활성화 되어있는 셀을 가리키죠?

‘현재의 셀을 기준으로 오른쪽 i번째 셀이 ‘i+1’의 값을 입력해라’라고 말하고 있네요.

엑셀에서! 엑셀 함수로 사용되는 Offset함수의 기본 형식을 한번 볼까요?

Offset함수의 기본 형식

=offset(reference, rows, cols, [he ight], [width])

여기서 reference는 참조 영역(시작 위치)를 가리키고

rows와 cols는 각각 행과 열,

[height]와 [width]는 생략이 가능하며 범위를 선택할 때 사용합니다.

ActiveCell.Offset(0, i).Font.Color = vbBlue

6. Font.Color 는 글꼴의 색상 속성을 가리킵니다.

현재 셀을 기준으로 오른쪽 i번째의 셀의 글꼴의 색상을 파란색으로 지정합니다.

어렵지 않죠?

Next i

End Sub

7. For문의 끝을 의미하는 Next문 이네요.

For문에 사용한 변수를 뒤에 적어줬는데

변수 없이 Next만 사용해도 돼요.

코드 작성 다 하셨나요?

그러면 넘어가겠습니다.

실행 단추를 클릭하면 (단축키 F5) 매크로 이름 설정 창이 뜨죠?

그냥 실행 누르면 됩니당!

엑셀 시트 화면으로 돌아가서 결과를 확인해주세요!

아까는 그냥 비어 있던 엑셀 시트에 뭔가가 생겼죠?

코드를 작성한 대로 파란색의 숫자가 반복하여 입력되었는데요.

0부터 9까지였기 때문에 명령문이 10번 실행된 결과입니다.

어렵지 않죠?

하나 더 해봅시당!

▶ 증감값을 사용하는 For문 예제를 보겠어요!

방금 전의 예제에서 편집기 창으로 돌아가 주세용!

그리고 코드를 추가해줍니다.

아까는 그냥 For i = 0 To 9 였는데

그 뒤에다가 Step 2를 추가했어요.

여기서 Step 2는 ‘증감값 2’를 의미하는데요.

증감값은 시작값, 끝값과 함께 For문의 반복 횟수를 결정합니다.

방금 전 예제와 어떤 차이가 있을까요?

이 코드를 실행해볼까요?

F5를 눌러주세요!

아시겠나요?

Step 2를 적어줬기 때문에 이번에는 2씩 증가하면서 반복이 되었어요.

0부터 9까지지만 2라는 증감값 때문에 명령문이 5번 실행되었어요.

그리고 눈치 채셨는지 모르겠지만

아까와 다르게 vbBlue 대신 vbRed를 적어줘서

글꼴의 색상도 빨간색으로 입력되어있네요!

다 해보셨나요?

어렵지 않았습니다!

예제 꼭 같이 해봐야 하는거 아시죵??

그래야 이해가 빠르게 된다는 사실!!

(급하게 봐야한다! 하신다면 예제를 첨부파일로 올려드렸으니 참고하세요!)

다음 포스팅에서는 For Each문에 대해서 보려고 하는데요.

원래는 이번 포스팅에서 For문과 For Each문을 같이 보려고 했어요!

생각보다 길어지는 바람에 나눴는데,

저는 바로 갈테니까 여러분도 바로 오세용!!

읽어 주셔서 감사합니당.

<이미지 출처>

픽사베이 (https://pixabay.com/)

<참고 도서>

이동숙, “엑셀 2013 매크로 & VBA 무작정 따라하기 “, 길벗

엑셀 VBA 반복문 For Next 문 사용하기

특정 소스를 반복해서 처리하고 싶을 때 For 반복문을 사용합니다. For 문은 시작값과 증가값 종료값으로 구성되어 있습니다. 시작값은 설정한 증가값을 계속 더해서 종료값보다 커지는 순간 끝나는 구조입니다.

◎ 1. For Next 반복문 형식

▼ VBA 에서 반복 구문인 For Next 의 형식은 다음과 같습니다. 지정한 횟수 만큼 명령문을 반복하기 위해 사용합니다. 증가값은 사용자가 지정할 수 있으며, 음수(-) 값으로 감소시키는 것도 가능합니다.

For 계산변수 = 시작값 To 종료값 [Step 증가값] [명령문] [Exit For] [명령문] Next [계산변수]

◎ 2. 초기값 , 종료값으로 반복문 사용하기

▼ For Next 반복문에서 증가값인 Step 을 지정하지 않으면 1 을 적용합니다. 아래 샘플은 1 씩 증가시킨 값을 출력하고 합계를 구해서 마지막 셀에 추가하는 소스입니다.

Sub Input_Click_1() Dim i As Integer Dim total As Integer Dim sumdata As Integer total = 10 ” 1 만큼 증가 For i = 1 To total Cells(i, 1) = i sumdata = sumdata + i Next Debug.Print sumdata Cells(total + 1, 1) = “SUM = ” & sumdata End Sub

그림에 버튼을 누르는 순간 셀 값을 읽어서 합계를 표시합니다.

◎ 3. 반복문 증가값 지정하기

▼ 다음은 증가값을 사용자가 지정한 경우입니다. Step 다음에 입력한 숫자만큼 i 값이 증가하므로 위의 샘플소스와 달리 한칸씩 건너 뛰면서 읽습니다.

Sub Input_Click_2() Dim i As Integer Dim total As Integer Dim sumdata As Integer total = 10 ” 2 만큼 증가 For i = 1 To total Step 2 Cells(i, 1) = i sumdata = sumdata + i Next Debug.Print sumdata Cells(total + 1, 1) = “SUM = ” & sumdata End Sub

◎ 4. 증가값 음수지정 하기

▼ 초기값이 종료값보다 큰 경우 증가값을 음수로 지정해서 반복하는 샘플입니다. 시작값을 줄이면서 반복하고 싶을 때 사용하는 방법입니다.

Sub Input_Click_3() Dim i As Integer Dim total As Integer Dim sumdata As Integer total = 10 ” 증감 -1 For i = total To 1 Step -1 Cells(i, 1) = i sumdata = sumdata + i Next Debug.Print sumdata Cells(total + 1, 1) = “SUM = ” & sumdata End Sub

◎ 5. 반복문 중첩 지정하기

▼ For Next 문에서 Next 뒤에는 반복 변수값이 들어갑니다. 하지만 보통 생략합니다. 만약 중복해서 For Next 를 지정하고 싶다면 해당 영역에 반복 변수값은 구분을 위해서 Next 뒤에 지정해야 합니다.

Sub Input_Click_4() Dim i As Integer Dim co As Integer Dim sumdata As Integer ” 중복 For Next 문 For i = 1 To 3 For j = 1 To 5 co = co + 1 Cells(co, 1) = co sumdata = sumdata + co Next j Next i Cells(co + 1, 1) = “SUM = ” & sumdata End Sub

◎ 6. Exit for 문으로 반복문 빠져나가기

▼ For Next 반복문을 끝나지 진행하지 않고 특정 조건이 되었을 때 빠져나오는 방법은 Exit For 구분을 사용하는 것입니다. 아래 샘플에서는 특정 조건이 되었을 때 For Next 를 종료하기 위해 If 함수를 사용했습니다.

Sub Input_Click_5() Dim i As Integer Dim total As Integer Dim sumdata As Integer total = 10 ” 함수 빠져 나가기 For i = 1 To total If sumdata > 30 Then Exit For End If Cells(i, 1) = i sumdata = sumdata + i Next i Cells(total + 1, 1) = “SUM = ” & sumdata End Sub

▼ 그림에서 보듯이 합계값이 30 이상인 9 가 되기 전 8까지 반복하고 종료한 결과입니다.

반복문 사용하기 (For ~ Next문)

[엑셀] 반복문 사용하기 (For ~ Next문) 오늘은 11월5일(토)에 진행하는 장미희님의 Excel 매크로 & VBA 과정 중 반복문 중의 하나인 For..Next문에 대해서 알아보도록 하겠습니다. (사용버전: 엑셀 2003) 제어문에서 자주 사용되는 구문이 If…Then…Else 문인 것처럼 반복문에서도 주로 사용하는 구조가 있는데 바로 For…Next 문입니다. For…Next 문을 사용하면 한 블럭의 명령문을 지정된 횟수만큼 반복 실행할 수 있습니다. 몇 번 반복 수행해야 한다는 것이 계산으로 명확하게 계산되는 경우에 주로 사용합니다. For…Next 문은 한번 반복될 때마다 증가하거나 감소하는 반복횟수를 계산하는 변수를 사용합니다. [For…Next 문의 형식] For 계산횟수 변수 =시작값 To 종료값 [Step 증가값] [명령문] [Exit For] [명령문]

Next [계산횟수변수] 1. 초기값과 종료값만 있는 예제 증가값은 지정되지 않으면 기본값이 1입니다. 셀에 데이터를 입력하는 예제로 1열(A열)에는 1에서 10까지, 2열(B열)에는 11에서 20가지, 3열(C열)에는 21에서 30까지를 입력하고 그 과정에서 모든 데이터의 합계를 계산합니다. Cells 속성은 Cells(행, 열)의 형식을 갖는데 예제 프로시저에서 Cells(K,1)은 Cells(1,1)에서 Cells(10,1)까지로 결국 A1 셀에서 A10 셀까지를 의미하고, Cells(K,2)는 당연히 B열을 의미합니다. For…Next문 예제를 실행하면 A, B, C 열에 데이터가 입력되고 합계인 465를 표시하는 메시지 상자가 표시됩니다. 2. 증가값이 2인 예제 다음 예제에서 루프가 반복될 때마다 계산횟수 변수 K가 2 단위로 증가합니다. 루프 동작이 종료되면 1, 3, 5, 7, 9 행에 데이터가 입력되고 1, 3, 5, 7, 9 행의 합계가 계산됩니다. 프로시저를 실행하면 A, B, C열의 1, 3, 5, 7, 9행에만 데이터가 입력되고 데이터도 홀수만 입력이 되어 표시됩니다. 프로시저를 실행하면 1에서 30까지의 홀수들의 합계인 225를 표시하는 메시지 상자가 표시됩니다. 3. 증감값이 음수 For…Next문에서 초기값이 종료값보다 작은 형식이 일반적으로 사용되는데 초기값이 종료값보다 큰 경우가 있습니다. 이 때는 반드시 증가값이 음수가 되어야 합니다. 증가값이 양수로 지정되면 루프가 아예 실행되지 않습니다. 다음은 증가값이 음수인 경우입니다. 계산횟수 변수를 감소시키려면 증가값에 음수를 사용하는데 종료값이 시작값보다 작게 지정되어야 한다는 점에 주의합니다. 증가값이 감소하는 경우의 프로시저를 실행하면 K값이 10, 8, 6, 4, 2의 순서로 진행되는 것을 확인할 수 있고, 데이터가 입력되는 셀의 주소도 10, 8, 6, 4, 2행에 짝수가 입력됩니다. 프로시저를 실행하면 합계는 240이 메시지 상자에 표시됩니다. 4. 중첩 For…Next 문 For…Next문은 여러 개 중복해서 사용할 수 있습니다. 이런 형식을 내포 또는 중첩이라고 표현합니다. 다음 예제는 바로 For…Next문이 2개 사용되는 경우입니다. For…Next 문에서 Next 키워드는 For 키워드와 짝을 이루어야 하는데 나중에 선언된 For 키워드에 Next 키워드가 먼저 짝을 이루는데 Next 뒤의 변수명은 생략해도 됩니다. 2개의 For…Next문을 사용하여서 작성한 프로시저를 실행하면 30에서 1까지 데이터가 A1 셀에서 C10 셀까지 입력되고 데이터의 합계인 465가 메시지 상자에 표시됩니다. 5. Exit For 문을 사용하여 루프 빠져나가기 Do…Loop문을 학습할 때 반복문에서는 루프가 반복되는 중간에 반복상태를 벗어나는 경우가 있다고 했습니다. For…Next 문에서도 Exit For 문을 사용하여 루프를 빠져나갈 수 있는데 Exit For 문을 사용하면 계산횟수 값이 종료값에 도달하기 전에 For…Next 문을 빠져 나갈 수 있습니다. 일반적으로 오류가 발생할 때와 같은 특수한 상황에서만 빠져나가므로 If…Then…Else 문이나 Select Case 문의 True 문 블럭에 Exit For 문을 사용해야 합니다. 조건이 False이면 루프는 계속 실행됩니다. 여러 개의 For…Next문을 사용하면 Exit For 문도 작성하려는 프로시저의 의도에 따라서 여러 번 사용할 수도 있습니다. Exit For문을 사용하여서 루프를 벗어나는 프로시저를 실행하면 실행결과가 C10 셀에서 데이터가 입력되기 시작하여서 B7까지 1에서 14까지의 데이터가 표시되고 1에서 14까지의 합계인 105가 메시지 상자에 표시됩니다.

엑셀 vba 반복문 For 다루기

본 강의에서는 vba뿐만 아니라 모든 프로그래밍 언어에서 기본적으로 사용하는 반복문에 대해서 알아보겠습니다.

1. For Next 문

Sub Macro()

For i=1 To 10

Cells(i,1).value = i

Next i

End Sub

*반복문의 과정을 보기 위해 시간지연을 적용하였습니다.

변수 i는 1부터 시작하여 1씩 증가해 10을 넘을 때까지 반복합니다.

Cells(1,1)에는 1, Cells(2,1)에는 2 ….. Cells(10,1)에는 10이 들어가고 반복문이 끝나게 됩니다.

추가로 Step을 이용하여 변수 i의 증가폭도 임의로 정할 수 있습니다.

Sub Macro()

For i=1 To 20 Step 2

Cells(i,1).value = i

Next i

End Sub

*반복문의 과정을 보기 위해 시간지연을 적용하였습니다.

위의 예제에서는 i가 1부터 2씩 증가해 20을 넘기면 반복문이 종료하게 됩니다.

2. For Each Next 문

Sub Macro()

Dim rng As Range

Dim sum As Integer

Set rng = Range(“A1:A10”)

sum = 0

For Each i In rng

sum = sum + i.value

Cells(12,1).value = sum

Next i

End Sub

*반복문의 과정을 보기 위해 시간지연을 적용하였습니다.

For 문에서 사용된 변수 i에 rng의 구성요소 하나하나가 들어가게 됩니다.

첫번째 반복에서는 i = Range(“A1”)이 되고

두번째 반복에서는 i = Range(“A2”)이 되면서 rng의 마지막 구성요소인 Range(“A10”)에 도달할 때까지 반복문이 실행됩니다.

위의 예제 코드에서는 범위 A1:A10의 각 셀에 있는 숫자들을 반복문을 통해 모두 더한 것입니다.

For Each Next 구문에서 In 뒤에 오는 변수는 Range뿐만이 아닌 Array형식도 올 수 있습니다.

반복문 For문 활용하기 (For … Next …)

안녕하세요 모닝수잔입니다 🙂

코딩 공부를 하면서 가장 기본으로 배웠던 구문은 반복적인 행동을 할 때 필요한 For문이었는데요, 매크로에서도 어김없이 만나게 되었습니다. 지난 포스팅에서 변수의 선언 Dim과 변수의 할당 Set을 통해 하나의 특정 제품 “수량”과 “단가” 변수를 만들고 값을 할당해준 뒤 2개의 변수를 곱한 “총액”을 구하는 매크로를 만들어봤다면, 오늘은 좀 더 나아가 For문을 활용하여 하나의 제품이 아닌 여러 제품의 “총액”을 구하는 매크로를 만들어보겠습니다.

For 변수(i) = 시작 To 끝

명령

Next 변수(i)

※ 여기에서 변수는 보통 i로 사용합니다.

본격적으로 시작하기에 앞서 간단하게 For문을 정리해봤는데요, 쉽게 말해 For문은 변수 i를 만들어서 “시작”과 “끝” 값을 부여해주고, 해당 범위 안에서 동일한 명령을 계속 반복하게 해주는 반복 구문입니다. 예제 표를 함께 보실까요? 우리가 구하려는 부분은 바로 아래 화면의 빨간칸에 있는 E3, E4, E5셀의 “총액” 부분입니다.

이전 포스팅에서는 아래와 같이 “수량”이라는 변수를 선언한 뒤 C3 셀의 값을 부여해주고, “단가”라는 변수를 선언한 뒤 D3 셀의 값을 부여해주고, 마지막에는 E3 셀의 값에 “수량” * “단가” 의 값을 넣어 A1 프린터의 “총액”을 구하는 매크로를 만들어봤습니다.

2020/12/27 – [코딩/Excel Macro(VBA)] – 변수의 선언 Dim과 변수의 할당 Set

하/지/만,

이렇게 매크로를 만들게 되면 B1 프린터와 C1 프린터의 총액을 구하기 위해서 C4, D4, C5, D5 셀까지 모두 변수를 선언하고 값을 부여하는 복잡한 과정을 거쳐야 하는데요, 이때 필요한 것이 바로 For문입니다.

1) 먼저 엑셀의 개발도구 – Visual Basic – 삽입 – 모듈에서 새로운 모듈을 만들고 Sub 프로시저를 열어줍니다.

2) Dim을 사용해서 “수량”과 “단가”를 Range 형식의 변수로 선언합니다.

여기까지는 이전에 만들었던 매크로와 동일합니다. 다만, 이제 “수량”과 “단가” 변수에는 각각 C3셀과 D3셀의 정해진 값만 부여해주는게 아니라, A1 프린터에 대해서는 C3셀과 D3셀을 ▶ B1 프린터에 대해서는 C4셀과 D4셀을 ▶ C1 프린터에 대해서는 C5셀과 D5셀을 부여해줘야 하는데요.

3) For문을 사용해서 i라는 변수에 3에서 5의 값을 할당해줍니다.

이제 For문 공식에 해당 내용을 대입해보겠습니다.

For 변수 = 시작 To 끝 ▶ For i = 3 To 5

명령

Next 변수

For문의 첫번째 줄인 “For 변수 = 시작 To 끝”은 특정 행동(명령)을 몇번이나 반복할지 시작과 끝을 지정하고 변수에 할당함으로써 “반복구간”을 정한다고 생각하시면 됩니다. 우리가 필요한 값은 C와 D열의 3, 4, 5행에 있는 A1, B1, C1 프린터의 “수량”과 “단가”입니다. 그럼 이 “수량”과 “단가”는 행(row)과 열(column)의 조합에서 어떤 부분이 변할까요? 맞습니다. C와 D열은 고정이고 3, 4, 5행만 변하기때문에, i라는 변수를 만들고 3에서 5까지 3 To 5라는 반복구간 범위를 지정해줍니다.

4) Set과 3)에서 선언한 변수i를 사용해서 “수량”과 “단가”에 값을 할당해주고, “수량”과 “단가”를 곱해서 “총액”을 구해줍니다.

For 변수 = 시작 To 끝

명령 ▶ Set 수량 = Range(“C” & i) / Set 단가 = Range(“D” & i) / Range(“E” & i) = 수량 * 단가

Next 변수

A1 프린터의 “수량”과 “단가”는 C3과 D3에, B1 프린터의 “수량”과 “단가”는 C4와 D4에, C1 프린터의 “수량”과 “단가”는 C5, D5에 있기 때문에 변수 i를 활용해서 셀(Cell)의 이름을 다시 만들어줘야 합니다. 즉, 셀의 이름을 Ci와 Di로 표현하면 첫번째 For문에서는 i에 3이 부여되면서 C3, D3이 되고 두번째 For문에서는 i에 4가 부여되면서 C4, D4가 되고 마지막 세번째 For문에서는 i에 5가 부여되면서 C5, D5이 됩니다. 이를 Range로 표현하면 Range(“C” & i)와 Range(“D” & i)로 표현할 수 있습니다.

마찬가지로 이제 “수량”과 “단가”의 곱으로 “총액”을 구할 수 있는데요, Range(“E” & i)의 범위에 수량 * 단가의 값을 부여하면 총액을 구할 수 있습니다.

※ Range(“C” & i) = Cells(i, “C”)

Range(“C” & i)는 C열의 i행 범위라는 뜻이고 Cells(i, “C”)는 Ci셀이라는 의미로 두 개의 값은 동일한 값입니다. 다만, 매크로를 만들 때 Range로 표현했다면 모두 Range로, Cells로 표현했다면 모두 Cells로 표현해줘야 동일한 형식으로 오류가 발생하지 않습니다 🙂

5) 마지막으로 Next i로 For문을 닫고, End Sub으로 프로시저를 닫아줍니다.

For 변수 = 시작 To 끝

명령

Next 변수 ▶ Next i

For문은 “Next 변수”라는 구문으로 끝이납니다. 첫번째 줄 “For 변수 = 시작 To 끝”에서 범위을 정해줬기 때문에 첫번째 For문에서 명령을 실행하고 Next 변수를 통해 다음 변수 값으로 넘어가서 명령을 반복실행 할 수 있기 때문이랍니다. 예를 들어, 우리가 위에서 정한 For i = 3 To 5에서 Next i가 6이라면 For문은 더이상 실행되지 않습니다. 마지막 끝 변수값인 5를 넘어서 더이상 반복 구간이 아니기 때문입니다.

아래는 최종 프로시저입니다. For문은 매크로를 사용할 때 굉장히 유용하게 활용할 수 있는 구문인데요, 다음 포스팅에서는 For문과 마찬가지로 유용하게 활용할 수 있는 if문을 가지고 돌아오겠습니다. 그럼 오늘도 좋은 하루 되세요 🙂

03-3.2 반복문 (For)

For문

While문은 사실 좀 복잡한 감이 있습니다. If문처럼 앞 뒤로 블럭이 시작과 끝을 알리는 문법이 있고, 안쪽에는 명령문만 깔끔하게 있으면 읽기도 쉽고 좋을 것 같은데 말이에요. 그래서 좀 더 깔끔하게 줄여본 문법이 For문입니다.

For i = 0 To 10 명령문 Next i

While문보다 훨씬 짧고 깔끔하죠?

앞의 안녕을 10번 말하기를 For문으로 써보겠습니다.

For i = 0 To 9 Debug.print(“안녕”) Next i

워후 깔끔!!

For문에서는 반복을 하면서 i라는 변수가 자동으로 올라가기 때문에 i를 이용할 수도 있습니다.

For i = 1 To 10 Debug.print(“안녕 ” & i & “번”) Next i

i가 1부터 10으로 바꼈다는 것도 눈여겨볼만 하네요.

이중 For문

조건문에서 If안에 If를 또 넣어줬던 게 기억 나시나요?

반복문 안에도 역시 반복문을 넣어줄 수 있습니다. 반복중에 조건을 줄수도, 조건 안에서만 반복을 할 수도 있구요. 코드의 흐름을 뒤바꾸는 건 코딩을 하는 사람 마음입니다!

그 중 반복을 해야할 요소가 두가지일 때 주로 써주는 기술이 이중 for문(따로 문법이 있는게 아니고 그냥 for문 안에서 for문을 한 번 더 써준 겁니다. 외우지 마세요! )인데, 코딩 초보분들이 처음 접했을 때 어려워 하실 수 있기 때문에 한 번 소개해 드립니다.

For i = 1 To 10 For j = 1 To 5 Debug.print(” i = ” & i & “j=” & j) Next j Next i

위 코드를 한번 실행해 보세요. 이해가 가신다면 바로 넘어가시고 안가신다면 “좀 더 천재인 척 하기” 에서 알려드린 F8 과 지역창을 이용해서 코드 실행 순서가 어떻게 되는지 꼭꼭 살펴보고 가세요.

살펴봐야 할 포인트입니다.

1. i 의 반복 안(For i ~ Next i)에 j의 반복(For j ~ Next j)이 들어가있다. 2. 안쪽에서 j의 반복이 다 끝난 다음에야 i 가 하나 올라간다.( 반복의 사이클을 이미지화해보세요) 3. “i=” 처럼 따옴표 안에 있는 i는 글자(스트링)고 따옴표 밖에 있는 i 가 변한다 (변수라서)

문제

반복을 통해 2중 for문까지 이해가 되셨다면 다음 결과를 출력하도록 코드를 짜보세요! 구구단 출력하기 프로그램입니다.

.#1. 그냥 외우기

2X1=2 2X2=4 2X3=6 . . 3X1=3 3X2=6 . . 9X9=81

.#2 단 구분해서 외우기

2단 2X1=2 2X2=4 2X3=6 . . 2X9=18 3단 3X1=3 3X2=6 . . 3X9=27 9단 9X1=9 . . 9X9=81

하루 이상이 걸려도 좋습니다.

스스로 고민하는 시간이 코딩 이해력을 높여줄 거에요.

특히 엑셀은 가로X세로로 2중으로 반복할 일이 많기 때문에 익숙해지는 것이 좋습니다.

문제를 푸셨다면 축하드립니다! 이제 웬만한 코드는 다 짜실 수 있게 되셨습니다.

이 다음부터는 단순 문자 출력이 아니라 엑셀에서 직접 와닿도록 코딩해보겠습니다.

[엑셀 VBA] FOR~NEXT문(순환문) 사용법

For ~ NEXT 순환문은 엑셀 VBA 사용에 있어 가장 빈번하고 가장 쉽게 사용되는 순환문 구조이다.

대부분 순차적으로 CELL이나 RANGE 값을 실행할 때 사용하며 기본 형식은 위 코드 과 같다.

1. 카운터로 사용할 문자를 선언해준다. 대부분 i 또는 j를 사용하며 DATA 형식은 Integer 또는 Long을 사용한다.

2. “FOR i = 시작숫자 TO 끝숫자”를 지정해준다.

3. 각 i값에 실행 될 명령 코드를 작성한다.

4. NEXT 즉 다음 i 값으로 넘어간다.

FOR 순환문을 사용한 예시를 하나 들어보자, 예시는 판매하고자 하는 어떤 항목의 수량이 “0”개 일때, 그 옆 Column에

“품절”을 표시하는 매크로이다.

위 코드를 실행 해주면 수량이 0인 항목의 “품절여부” Column에 “품절”을 표기하게 된다.

[Excel VBA 기초-2] IF문 / For문 / While문

반응형

[Excel VBA 기초-2] IF문 / For문 / While문

<사용된 함수>

– 셀 값 선택

Range(“C2”).Value

– 메시지박스 출력

MsgBox (“안녕”)

– 알파벳+변수명(숫자)로 셀 만들고 그 셀 선택

Range(“F” & num).Select

– 선택된 셀에 값 넣기

Selection.Value = “안녕!”

1. IF문

비교연산자 의미 논리연산자 의미 = 같다 A AND B A B 모두 만족 <> 같지않다 A OR B A B 중 하나라도 만족 > 크다 NOT A A가 TRUE면 FALSE < 작다 A XOR B A B 모두 불만족 >= 크거나 같다 <= 작거나 같다 1-1. 김경록만 찾기 Sub if문배우기() 사원명 = Range("b2").Value 부서 = Range("c2").Value If 사원명 = "김경록" Then MsgBox ("해당 사원명은 김경록이 맞습니다.") End If End Sub 1-2. 김경록 / 그외 사람 찾기 Sub if문배우기() 사원명 = Range("b2").Value 부서 = Range("c2").Value If 사원명 = "김경록" Then MsgBox ("해당 사원명은 김경록이 맞습니다.") Else MsgBox ("해당 사원명은 김경록이 아닙니다.") End If End Sub 1-3. 김경록 / 조세호 / 그외 사람 찾기 Sub if문배우기() 사원명 = Range("b2").Value 부서 = Range("c2").Value If 사원명 = "김경록" Then MsgBox ("해당 사원명은 김경록이 맞습니다.") ElseIf 사원명 = "조세호" Then MsgBox ("해당 사원명은 조세호가 맞습니다.") Else MsgBox ("해당 사원명은 김경록/조세호가 아닙니다.") End If End Sub 2. For문 - n번 반복하고 싶을때 사용 Sub For문배우기() For 반복범위 = 1 To 1000 Range("F" & 반복범위).Select Selection.Value = "반복" & 반복범위 Next End Sub ◆ 코드 설명 1) Range("F1"&반복범위).Select : F1 셀을 선택함 2) Selection.Value = "A" : 선택된 셀에 A를 입력함 3. While문 - 조건에 맞을때까지 반복하고 싶을때 사용 i =0 Do While(i<5) Debug.print("안녕!") i = i + 1 Loop ◆ 코드 설명 1) Debug.print("안녕!") : 개발용 실행창(Ctrl+G)에서 "안녕!" 출력 반응형

기초부터 실전까지 VBA 엑셀8

반응형

VBA에는 두 가지의 반복문이 있는데 이번에는 For Next 반복문에 대해 먼저 알아보겠습니다.

“반복문”이란 말 그대로 지정한 구문을 해당 횟수 만큼 반복한다는 의미입니다.

“변수 선언”과 “반복문”만 배워도 몇 가지 프로그램을 만들 수 있습니다.

더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

1. For Next 문 사용하기

기본적인 양식은 다음과 같습니다.

For counter = start To end [Step step] [statements] [Exit For] [statements]

Next [counter]

다음은 각 항목의 의미를 알려드리겠습니다.

counter(숫자) 반드시 지정합니다.

카운터에 사용할 변수(숫자)를 지정합니다.

배열 변수 및 부울 (Boolean)에 포함 된 변수는 지정할 수 없습니다. start(숫자) 반드시 지정합니다.

counter 인자의 초기 값을 지정합니다. end(숫자) 반드시 지정합니다.

counter 인자의 최종 값을 지정합니다. step(숫자) 선택 사항입니다.

루프를 반복마다 인수 counter에 가산되는 값을 지정합니다.

step 매개 변수를 생략하면 루프를 반복마다 counter 인자는 1이 가산됩니다. statements 선택 사항입니다.

루프에서 실행되는 일련의 명령문에서 For와 Next 사이에 기술합니다.

여기에 기술 한 루프는 For … Next 문에서 지정한 횟수만큼 실행됩니다.

간단히 풀어서 해석하면

“statements = 구문”을 start(시작) ~ end(종료)만큼 반복한다.

이렇게 됩니다.

2. 예문

다음과 같이 코드를 VBA에 입력해보겠습니다.

Sub For1()

Dim i

For i = 1 To 10

Cells(i, 1) = 1

Next i

End Sub

위의 예문을 VBA로 실행하면

아래와 같이 적어진 것을 확인할 수 있습니다.

즉, “A1” ~ “A10″까지 “1”이라는 숫자를 반복해서 1개씩 넣은 것이 됩니다.

3. Exit For 사용해보기

이번에는 For 반복문을 탈출할 수 있는 Exit For 이라는 구문을 사용해보겠습니다.

위에서 사용했던 코드의 중간에 Exit For를 넣어보겠습니다.

Sub For1()

Dim i

For i = 1 To 10

Cells(i, 1) = 1

Exit For

Next i

End Sub

위의 결과와 달리 “A1” 하나밖에 “1”이 들어있지 않습니다.

그 이유는 도중에 Exit For로 인해 반복문을 취소했기 때문입니다.

이렇게 Exit For와 나중에 배울 “조건문”을 배우면 여러가지 프로그램을 만들 수 있습니다.

4. Step 사용해보기

이번에는 For 반복문에서 “Step”이라는 것을 활용해 보겠습니다.

아래와 같이 예문을 입력합니다.

Sub For1()

Dim i

For i = 1 To 10 Step 2

Cells(i, 1) = 1

Next i

End Sub

그리고 이를 실행해보면 다음과 같은 결과가 나옵니다.

Step의 의미는 해당 숫자만큼 건너뛴다는 것을 의미합니다.

즉, 위에서 Step 2 라고 했으니

A1 -> A3 -> A5 -> A7 ->A 9

이렇게 해당 셀(Cell)에 숫자 “1”이 들어가게 됩니다.

5. For 반복문의 중첩

For은 중첩하여 몇번이든 사용할 수 있습니다.

다음과 같이 코딩을 해봅시다.

Sub For2()

Dim i, j

For i = 1 To 10

For j = 1 To 10

Cells(i, j) = 1

Next j

Next i

End Sub

그리고 실행을 해보면 아래와 같은 결과가 나옵니다.

이처럼 반복문에 반복문을 넣어서 여러가지 프로그램을 만들 수 도 있습니다.

하지만, 반복을 3번 이상하면 코딩을 이해하기 어렵게 되므로 2번까지만 추천합니다.

오늘 포스팅은 여기까지 입니다.

다음에는 다른 반복문인 Loop에 대해 배워보겠습니다.

더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

반응형

엑셀 VBA(매크로) – For ~Next 순환문 (반복문)

728×90

For~Next 순환문(반복문)은 특정 변수명이 초기값부터 종료값까지 특정 수만큼 증가하면서 처리할 작업을 반복 실행합니다.

for 변수명 = 초기값 to 종료값 step 증가수

처리

next 변수명

step은 생략을 해도되며, 생략하면 1씩 증가 합니다.

예제를 한번 다뤄보도록 하겠습니다.

개발도구 메뉴에서 Visual Basic 메뉴로 들어갑니다.

VBA 창에서 ‘삽입’ 메뉴에서 ‘모듈(M)’을 눌러서 모듈을 추가합니다.

위와 같이 코드를 입력합니다.

Cell의 1행 2열부터 1000행까지 3숫자를 입력해 보는 코드입니다.

“F5″를 눌러서 실행해 봅니다.

제대로 실행 된 것을 확인해 볼 수 있습니다.

개인적으로 For ~ Next 문은 VBA에서 가장 자주 사용되는 구문으로 생각이 됩니다.

대부분 엑셀 업무 중 자동화 할 수 있는 부분은 반복적인 부분이고, 이 반복적인 부분을 For ~ Next 문을 써서 대신 실행하도록 할 수 있기 때문입니다.

숫자값 대신에 sheet 나 다른 엑셀파일을 불러올 때도 For 문을 사용할 수 있습니다.

sheet는 “Sheets(i)” 이런식으로 for문을 이용하시면 됩니다.

for i = 1 to 10

Sheets(i).Cells(1,1) = “Test”

next i

sheet별로 Cells(1,1)에 “Test”를 반복적으로 입력하는 구문 예시입니다.

여러개의 엑셀 파일의 데이터를 순차적으로 가져올 때는 아래 포스트를 참고하시기 바랍니다.

2020/11/20 – [IT와 친해지기/엑셀 VBA 자료실] – 엑셀 VBA(매크로) – 여러파일 데이터 자동으로 가져오기

키워드에 대한 정보 vba for 문

다음은 Bing에서 vba for 문 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 엑셀 VBA. 반복문(For Next)

  • #인덕과학기술
  • #엑셀 VBA
  • #가볍게 시작해서
  • #폼나게 활용하기
  • #For Next
  • yt:cc=on
  • #매크로

엑셀 #VBA. #반복문(For #Next)


YouTube에서 vba for 문 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 엑셀 VBA. 반복문(For Next) | vba for 문, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Comment