본문 바로가기

Excel VBA/VBA 배우기

02 엄마도 따라 할 수 있는 Excel VBA - Range 사용하기, 버튼추가

728x90
이전 글

https://krksap.tistory.com/13

 

개요

이번 포스트에서는 Range에 대해 알아보겠습니다.
Range는 Excel VBA에서 가장 많이 사용하는 기능중 하나입니다.
이번 강좌에서는 Range를 이용한 셀에 글 쓰기와, 셀 선택하기를 해보겠습니다.

 

예제파일

사용 방법은 Alt+f11 을 눌러서 VBE를 여신 후 Module1을 열어보세요.

 

vba_range.xlsm
0.02MB

 

사용 방법

Range("a1").Value = "hello Wolrd"

위와 같이 사용합니다. a1셀에 'hello World'라고 출력하는 기능 입니다. a2셀에 하고 싶다면 Range("a2")로 바꾸고 사용 하시면 됩니다.

 

한번 따라해보기로 하겠습니다.

'alt + f11'을 눌러 코드 편집기를 실행 하신 후

아래 코드를 붙혀넣기 하고 실행 해보시면 됩니다.

Sub test()
    'a1에 hello World라는 문구 출력
    Range("a1").Value = "hello Wolrd"
    
    '"1번 시트"라는 제목을 가진 시트의 a2에 "1번시트 A2"라고 입력
    Sheets(1).Range("a2").Value = "1번시트 A2"
End Sub

 

버튼 추가하고 클릭하면 값이 나오게 하기

버튼을 눌렀을 때 위 로직이 실행 되도록 한번 해보겠습니다.

이렇게 버튼을 누르면 특정 기능이 실행 되는 것입니다.

 

먼저 버튼을 하나 추가 해보겠습니다.

'도움말'옆에 '개발자 도구'를 누릅니다. 그런데 버튼이 안보이지요?

파일 - 옵션 으로 갑니다. 

여기에서 오른쪽 아래쯤에 '개발 도구' 보이시나요? 

이렇게 체크 해주고 '확인'누릅니다. 

 

'개발 도구'가 보입니다. '삽입'을 누르면 선택창이 나오는데 맨 왼쪽 위에 

이 버튼을 눌러줍니다. 그리고 사이즈에 맞게 그려줍니다.

그러면 이런 화면이 나옵니다. 'del'이 안나오시는 분들이 있는데요 아래 내용에 나오니까 일단 test를 선택하고 '확인'을 누릅니다.

'단추 1'이라고 버튼이 생깁니다. 

A1, A2에 내용이 있으면 지우고 누릅니다.

 

그러면 위와 같이 메세지가 입력됩니다.

 

 

Range사용 예제

Sub test()
    'a1에 hello World라는 문구 출력
    Range("a1").Value = "hello Wolrd"
    
    '"1번 시트"라는 제목을 가진 시트의 a2에 "1번시트 A2"라고 입력
    Sheets(1).Range("a2").Value = "1번시트 A2"
End Sub

 

값 지우기

특정 위치에 있는 값을 지우는 것도 한번 해보겠습니다.

Sub del()
    Range("a1").Value = ""
End Sub

위 코드는 a1의 내용을 지우는 코드 입니다.

 

del이라는 버튼을 추가 해주시고 위 코드에서 만들 del()을 버튼에 연결 해줍니다.

del버튼에 del매크로를 지정 해줍니다.

 

지정을 하신 후 del버튼을 눌러보세요. 셀 a1의 값이 빈 값으로 바꾸면 제대로 작동한 것입니다.

 

 

 

 

 

 

728x90
  • J 2014.11.19 10:21

    2번째 test
    Sub rangeExercise2()

    '"1번 시트"의 A3를 선택하고
    '"1번시트 A3"라고 입력
    Sheets("1번 시트").Range("a3").Select
    Range("a3").Value = "1번시트 A3"


    End Sub
    로 수정해야하지않을까요?

  • 코번 2016.12.22 14:30

    range와 cells 는 어떻게 다를까요? 저는 cells를 더 자주쓰게 되더라고요

    • 징징 2017.01.31 11:34

      range는 말그래도 범위에요!
      예제에서는 값 하나만 사용하고있지만,
      범위 전체에 값을 넣는것도 가능해요
      Sheets(1).Range("a2:d16").Value = "AA"
      이런식으로?
      반면에 cell은 그 한칸이구요

  • bluewhale 2017.05.18 13:59

    배우고 갑니다! 감사합니다!!

  • hello 2017.06.06 12:08

    A3선택하고 글쓰기 예제에 Sheets(1).Range("a2").Select 내용중 a2를 a3으로 변경하는게 맞는것 같습니다!

  • Emma 2018.12.14 15:10

    요렇게 차근차근 하니까 너무 좋아요~
    매크로에 대한 개념이 아예 없어서
    인터넷에서 매크로 자료가 있어도 활용을 못하겠더라구요~
    ㅎㅎ 감사합니다

  • mincda 2018.12.18 14:36

    잠시 멘붕에 빠졌지만 정신차리고 수행했어요 ㅋㅋ

  • 엑린이 2020.08.11 23:00

    꿀 강좌 감사합니다.

  • 슬미아빠 2020.09.07 14:30

    오래동안 관심분야로 책 사두고 본다 본다가 긴세월인데 간단하고 이해하기 쉽게 기술하여 흥미롭게 강의 수강 중입니다.
    감사합니다.

  • 궁금이 2020.09.11 12:18

    Sub test()
    Range("a1").Value = "hello world"
    Sheets(1).Range("a2").Value = "1번시트 A2"
    Sheets(1).Range("D5").Select
    ActiveCell.Value = "1번시트 D5"
    Sheets(2).Range("D5").Select
    ActiveCell.Value = "2번시트 D5"
    End Sub

    위와 같이 짜넣으면 두번에 select 과정에서 오류가 납니다. 해결책은 없을까요?

  • KyeongRok Kim 2020.09.12 06:58 신고

    Sheets("시트명").Range("D5").Select
    이런식으로 해보세요.
    아니면 Select ActiveCell하지 마시고

    Sheets("시트명").Range("D5").Value = "2번시트 D5" 이렇게 바로 해보시는것도 좋겠네요

  • 웅이 2021.06.10 10:49

    포스팅 잘 보고 있습니다. 감사합니다 :)

블로그 주인장입니다. 원하시는 정보는 얻으셨나요? 이 포스트에서 추가로 필요한 정보가 있으시면 여기에 남겨주세요.