기초부터 실전까지 VBA 엑셀10 - 마지막 행 얻기(End)

IT 관련 지식/VBA 공부|2019. 10. 25. 09:51
반응형
728x170

< VBA 엑셀10 - 마지막 행 얻기(End)>

 

데이터의 마지막 셀로 갈 수 있는 방법중 하나인 End에 대해서 알아보겠습니다.

 

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

 

먼저 프로그래밍을 하기 전에 다음과 같은 엑셀 시트를 준비해야합니다.

 

A열에서는 첫 번째 줄부터 10번째 줄까지 연속적으로 숫자가 입력되어 있습니다.

 

B열에서는 첫 번째 줄부터 숫자가 이어지다가 5번째 줄에서 한번 끊기게 됩니다.

 

이번에는 "A1"셀을 선택한 후에 Ctrl+↓(방향키 아래)를 눌러보시기 바랍니다.

그럼 아래와 같은 그림처럼 "A10" 셀이 선택되어져 있는 모습일거라 생각합니다.

이번에는 "B1"를 선택한 후 똑같이 Ctrl+↓(방향키 아래)을 눌러보시기 바랍니다.

"A1"와 다르게 네 번째 행에서 선택이 멈춥니다.

Ctrl+"방향키"의 기능은 연속적인 데이터가 있을 때 그 방향의 마지막 데이터로 커서를 이동시켜줍니다.

 

이번에는 이것을 코딩으로 표현할 수 있는 방법에 대해 이야기 해보겠습니다.

 

(위에서 만든 데이터는 그대로 사용할 예정이니 놔두시면됩니다.)

 

또한 가능한한 이제부터 VBA에서 셀을 선택할 때는 Cells를 사용하겠습니다.

300x250

 


1. End 사용하기

 

Cells (1, 1) .End (xlDown)

 

위에서 했던 Ctrl+↓(방향키 아래)와 같은 기능을 가진 코드입니다.

 

밑으로 향하는 xlDown 이외에도 다음과 같은 기능을 사용할 수 있습니다.

 

xlUp : ↑ 위로
xlDown : ↓ 아래로
xlToLeft : ← 왼쪽
xlToRight : → 오른쪽

 

다음과 같이 코딩을 하면 위에서 했던 것이랑 똑같은 결과를 얻을 수 있습니다.

Sub row1() 

    Dim a As String, b As String 
     
    a = Cells(1, 1).End(xlDown) 
     
    Cells(11, 1) = a 
     
    b = Cells(1, 2).End(xlDown) 
     
    Cells(11, 2) = b 
     
End Sub

약간 해석을 하자면 

① 문자열을 받을 수 있는 변수 a, b를 만듭니다

② "A1"의 마지막 행에 있는 데이터를 a에 저장합니다.

③ "A11"에 저장한 a 데이터를 입력합니다.

④ "B1" 또한 같은 내용을 반복합니다.

 

 

 

 

 

<결과>

 

위에서 했던거 처럼 같은 결과를 얻을 수 있습니다.

 


2. 마지막 행의 수 얻기 - .Row

 

마지막으로 그 행의 숫자를 얻을 수 있는 코드를 알려주고 끝내겠습니다.

 

위에서 배웠던

 

Cells (1, 1) .End (xlDown)

 

이거에 .Row를 붙여서 

 

Cells (1, 1) .End (xlDown).Row

 

라고 하면 끝입니다.

 

아래와 같이 프로그래밍을 할 경우 결과는 위와 동일하지만

Sub row2()

    Dim a As String, b As String
    
    a = Cells(1, 1).End(xlDown).Row
    
    Cells(11, 1) = a
    
End Sub

여기서 "A11"에 출력되는 "10은 "A10" 셀에 있는 "10"이 아닙니다.

 

A"10"을 의미하는 10입니다.

 

즉, 행의 숫자를 얻을 수 있는게 

 

Cells (1, 1) .End (xlDown).Row

 

입니다.

 


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

오늘은 여기까지 하겠습니다!

반응형

댓글()

기초부터 실전까지 VBA 엑셀9 - 반복문 Do ~ Loop

IT 관련 지식/VBA 공부|2019. 10. 24. 09:29
반응형
728x170

<VBA 엑셀9 - 반복문 Do ~ Loop>

 

이번에는 또 다른 반복문인 Loop에 대해 알아보겠습니다.

 

For 반복문과 Do 반복문의 차이점을 설명하자면

 

For 반복문 : 지정 횟수만큼 반복한다.

 

Do 반복문 : 주어진 조건만큼 반복한다.

 

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

 


1. Do 반복문의 기본 형태

 

Do [{While | Until} condition]
  [statements]
  [Exit Do]
  [statements]

Loop

 

각 구문의 뜻을 설명하면 아래와 같습니다.

 

condition 선택 사항입니다.
참 (True) 또는 거짓 (False)을 평가하는 수식 또는 문자열 식을 지정합니다.
인수 condition 값이 Null 인 경우, 인수 condition은 거짓 (False)로 간주됩니다.
statements 인수 condition이 참 (True) 인 동안 또는 인수 condition이 참 (True)로 될 때까지 반복 실행되는
여러 행의 문을 작성합니다.

 

condition에서 사용할 수 있는 조건의 경우 아래와 같습니다.

 

비교 연산자 의미
= 같음
<> 같지 않음
> 초과
> = 이상
< 미만
<= 이하
논리 연산자 의미
And 논리적
Or 논리합

 

다음 예문을 통해 좀 더 상세히 알아보겠습니다.

 

참고로 기초 레벨의 코딩의 경우 코드를 올리지 않겠습니다.

 

왜냐하면 직접 코딩을 하면서 익히는게 더 빨리 외워지고 프로그래밍을 하는 맛이 있거든요 ㅎㅎ


2. Do 조건문의 예시

 

Sub Loop1()
    Dim i
    i = 1
    Do While i <= 10
        Cells(i, 1) = 1
        i = i + 1
    Loop
End Sub

 

위의 VBA 코딩을 실행시켜보면 아래와 같은 결과가 나옵니다.

위에서 While의 의미를 설명하자면

 

300x250

 

<"i"가 10이하일 "동안" 계속 반복해라> 라는 의미입니다.

 

결과는 같지만 조금 다른 예를 한번 더 보겠습니다.


Sub Loop2()

    Dim i
    i = 1
    Do Until i > 10
        Cells(i, 1) = 1
        i = i + 1
    Loop
End Sub

 

이를 실행해보면 위와 똑같은 결과가 나오게 됩니다.

 

여기서 Until의 뜻은

 

<"i"가 10을 넘을 때"까지" 계속해라>라는 의미입니다.

 

뭔가 차이점이 느껴지시나요? ㅎㅎ

 

사실 직접 VBA 프로그래밍을 할 여러분들은 While이나 Until 중 하나만 중점적으로 사용해도 무방합니다.

 


3. Exti Do

 

마지막으로 Loop 반복문을 탈출하는 코딩에 대해 알아보고 마치겠습니다.

 

For 반복문과 마찬가지로 Loop 반복문 또한 탈출하는 코딩이 있습니다.

 

이번 에는 아래와 같이 VBA 코딩을 해봅니다.

 

Sub Loop3()

    Dim i
    i = 1
    Do Until i > 10
        Cells(i, 1) = 1
        i = i + 1

        Exit Do
    Loop
End Sub

 

이를 실행하면 그 결과는 아래와 같이 됩니다.

 

한번만 실행하고 Do ~ Loop 반복문을 끝내는 모습입니다.

 


이것으로 반복문에 대한 설명은 모두 끝났습니다.

 

다음에는 또 다른 수업으로 찾아 뵙겠습니다.

 

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

반응형

댓글()

기초부터 실전까지 VBA 엑셀4 - Range 사용법 및 특징

IT 관련 지식/VBA 공부|2019. 10. 21. 09:07
반응형
728x170

<VBA 엑셀4 - Range 사용법 및 특징>

 

Range를 어떻게 활용하고 사용하는지에 대해 자세히 알아보겠습니다.

 

먼저 Range는 셀을 지정 or 선택하는 하나의 방법입니다.

 

기본적인 형태("셀 주소"에 "문자"를 넣어라)는 아래와 같은데 

 

Range ( "셀 주소").value = "들어가는 문자"

 

사실을 .Value라는 것이 숨어있습니다.

 

하지만 .value가 디폴트(Default)값 이기 때문에 생략을 해도 엑셀이 이를 자동으로 인식합니다.

 

.value 이외에 다른 값을 지정할 수 있지만 이것의 사용법은 나중에 따로 포스팅을 하겠습니다.

 


1. 여러 셀을 지정

 

Range ( "A1 : C5")


이와 같이 : (콜론)으로 구분하여 시작점과 끝점을 지정 합니다.

 

다음과 같이 지정해도 동일합니다.
Range ( "A1", "C5")
따라서, (쉼표)로 구분하여 시작점과 끝점을 지정 합니다.
이제 A1 셀에서 C5 셀 사각형 셀 범위 (15 개 셀) 을 지정할 수 있습니다.

 

즉,

 

Range ("시작 셀, 종점 셀")
이되도록 지정합니다.

 


2. 열 전체를 지정

 

Range ( "A : A")
이제 열 A 전체 합니다.

 

Range ( "A : C") 또는 Range ( "A : A", "C : C")
이렇게 하면, A 열에서 열 C까지의 3 열 지정 합니다.

300x250

3. 전체 행 지정

 

Range ( "1 : 1")
이제 1 번째 줄 전체 지정 됩니다.

 

Range ( "1 : 5") 또는 Range ( "1 : 1", "5 : 5")
이렇게 하면, 1 행부터 5 행까지의 5 행의 지정 됩니다.

 


4. 특정 셀만 지정

 

Range ( "A1, C5")


이 지정은 셀 A1과 C5 셀 (2 개의 셀)에만 적용됩니다.


"(큰 따옴표)에서 , (쉼표)로 구분 합니다.


이 경우 셀의 개수는 얼마든지 지정할 수 있습니다. 그러나 제한이 있습니다.

 


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

 

오늘 포스팅은 여기까지 하겠습니다.

반응형

댓글()

기초부터 실전까지 VBA 엑셀6 - Dim 변수선언

IT 관련 지식/VBA 공부|2019. 10. 20. 11:08
반응형
728x170

<VBA 엑셀6 - Dim 변수선언>

 

Dim 함수를 이용하여 변수를 선언하는 방법과 변수의 종류에는 무엇이 있는지 살펴보겠습니다.

기본적으로 이 VBA 카테고리에서는 제가 알고 있는 대부분의 기능에 대해 조금씩 다뤄나갈 예정입니다.

 

먼저 아래의 표를 보시면 변수의 종류와 이름이 정리되어 있습니다.

 

주로 사용하는 것은

 

Integer / Long / Double / String / Boolean / Variant입니다.

 

데이터 형 이름 저장할 수있는 범위
Integer 정수형 -32,768 32,767
Long 정수 -2,147,483,648 ~ 2,147,483,647
Single 단정도 부동 소수 형 -3.402823E38 ~ -1.401298E-45 (음수)
1.401298E-45 ~ 3.402823E38 (양수)
Double 배정 밀도 부동 소수점 형 -1.79769313486232E308 ~ -4.94065645841247E-324 (음수)
4.94065645841247E-324 ~ 1.79769313486232E308 (양수)
Currency 통화 형 -922,337,203,685,477.5808 ~ 922,337,203,685,477.00
String 문자열 최대 약 20 억 문자까지
Date 날짜 형 서기 100 년 1 월 1 일 ~ 서기 9999 년 12 월 31 일까지의 날짜와 시간
Byte 바이트 형 0 ~ 255의 범위 단정 양수. 8 비트 (1 바이트)
Boolean 부울 참 (True) 또는 거짓 (False)
Object 객체 형 객체
Variant 변형 모든 데이터

 

변수를 선언할 때에는 따로 변수형을 지정할 수 도 있고 생략할 수 도있습니다.

 

생략할 경우에는 자동으로 Variant로 선언되게 됩니다.

 

그럼 이제 변수를 선언하는 방법에 대해서 이야기 해보겠습니다.

 


변수 선언의 기본적인 형태는 아래와 같습니다.

 

Dim 변수 이름 As [데이터 형]

 

위에서 말했듯이 [데이터 형]의 경우 위의 표에서 하나를 지정할 수 있고 생략할 수 도 있습니다.

 

(대부분의 프로그래밍에서는 생략하지 않고 변수형을 지정해줍니다.)

 

또한 아래와 같이 Dim을 한번만 사용하여 한번에 여러 개의 변수를 지정할 수 도 있습니다.

 

Dim 변수 이름 As [데이터 형], 변수이름 As [데이터형] ....

 

또한 변수를 지정할 수 있는 변수 이름의 "특징"을 살펴보면 다음과 같습니다.

300x250

 

· 기호는 밑줄 만 사용 가능 (마침표 나 공백은 사용할 수 없다


· 첫 번째 문자는, 밑줄, 기호를 사용할 수 없다


· VBA가 의미를 갖게하는 단어는 사용할 수 없습니다


· 대문자, 소문자의 구별 가없이 동일하게 취급된다.

 


변수의 이름의 경우 자신이 알기 쉽게 표기하는 것이 가장 좋습니다.

 

변수의 목적과 이름을 적절히 합쳐놓는게 다른 프로그래머가 봤을 때도 쉽게 이해되기 때문입니다.

 

다음 장에서는 변수가 아닌 상수(Const) 선언에 대해 알아보겠습니다.

 

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

 

감사합니다.

반응형

댓글()