본문으로 바로가기

03 Excel VBA - 셀 선택하기, 셀 값 가져오기, 셀 값 바꾸기


관련 글

2012/12/10 - [Excel VBA] - 01 엄마도 따라 할 수 있는 Excel VBA - 시작

2012/12/10 - [Excel VBA] - 02 엄마도 따라 할 수 있는 Excel VBA - Range 사용하기


01셀 선택하기

엑셀은 셀 단위로 작업을 하기 때문에 '엑셀VBA'는 셀을 선택하고 선택된 셀에 내용을 추가, 수정, 삭제 하는 기능이라고 할 수 있어요.


셀 선택하고 내용 추가하기

위와 같이 화면을 배치하고 따라해 보세요.


아래 소스코드를 위와 같이 추가한 후 위에 동그라미친 '실행'버튼을 눌러보세요.

셀을 선택하는 기능(method)은 '.Select'에요.

Cells라는 요소(property)를 통해 각자 선택하고 싶은 셀을 선택합니다. 그리고 그 셀을 '선택(Select)'하라는  명령을 내려봅시다.

Sub 셀에내용추가하기()

    행 = 1

    열 = 1

    

    '셀 선택하기

    Cells(행, 열).Select

   

    '셀에 내용 추가하기

    Selection.Value = 100


End Sub


아래 A1열에 100이라고 출력 되었습니다.


그러면 2행 3열에 '2행 3열'이라는 글자를 입력하려면 어떻게 해야 할까요? VBE를 열어놓고 잠시 생각해보고 스크롤을 내려볼게요.


아래와 같이 하면 됩니다.

Sub 셀에내용추가하기()
행 = 2
열 = 3

'셀 선택하기
Cells(행, 열).Select

'셀에 내용 추가하기
Selection.Value = "2행 3열"

End Sub

위와 같이 입력하면 되요.


참 쉽죠?


소스코드 설명

소스코드 설명 'Cells(행, 열).Select' 라고 되어 있는 부분을 볼게요.

Cells() 라는 함수에요. 이 함수에 '행'과 '열'을 입력해 주면 해당하는 셀을 가지고 옵니다.

Cells(10, 9) 이렇게 쓰면 10행 9열을 가리켜요.


Cells(10, 9).Select 라고 하면 10행 9열을 '선택(Select)'하라는 거에요.
그러면 Cells(10, 9).Clear 은 무엇일까요?


맞습니다.

10행 9열을 지우라는 것이죠.


응용1

그러면 2행 3열에 있는 값을 '값을 수정하자'로 바꾸려면 어떻게 해야 할까요? 앞장에서 배운걸 응용하면 됩니다.

Cells(10, 9).Value = "값을 수정하자"



02 셀 값 가져오기

특정 셀의 값을 가져오는 것을 해볼게요.

B2셀에 있는 값을 A11셀로 가져와 볼게요.

소스코드는 아래와 같아요.

Sub 값가져오기()
'B2셀에 있는 값을 가져다가 A11셀에 입력
Range("A11").Value = Range("B2").Value

End Sub


응용2

'10행 9열'에 있는 값을 '3행 3열'로 복사 해볼게요

Cells(10, 9).Value = "값을 수정하자"

Cells(3, 3).Value = Cells(10, 9).Value




end.






댓글을 달아 주세요

  1. 엑셀초보 2013.04.07 07:19 신고

    강좌 감사합니다.

  2. BlogIcon vba 셀 2014.04.15 03:48 신고

    vba 셀

  3. 최호경 2016.10.22 00:31 신고

    하나씩 따라하고 있는데 넘 재밌어여!

  4. VBA왕초보 2016.12.06 17:38 신고

    VBA 배우려다가 항상 실패했는데... 선생님 블로그가 갑오브갑이네요

  5. 궐어 2017.01.02 20:11 신고

    좋은 블로그 감사합니다.
    궁금한 게 있어 댓글 남깁니다.
    3편을 보고 따라하는데요.
    행=1
    열=1
    가장 위에 설명하신 부분을 실행하려면 컴파일 오류, 변수가 정의되지 않았다고 나옵니다.
    변수 정의를 해야 하는 거 아닌지 해서요.
    귀찮으시겠지만, 답글 달아주시길 부탁 드려요. (_ _)

    • BlogIcon KyeongRok Kim 2017.01.02 20:14 신고

      변수를 선언해야 하는 경우는 상단에 option explicit을 선언한 경우에는 변수를 따로 선언을 해야 합니다.
      dim 행 as Integer
      dim 열 as Integer 를 상단에 추가 하시거나, option explicit을 빼주세요.

  6. 궐어 2017.01.02 20:16 신고

    선생님, 소스를 복사해서 붙여넣어도 컴파일 오류, 변수가 정의되지 않았다고 나옵니다.

    • BlogIcon KyeongRok Kim 2017.01.02 20:18 신고

      Option Explicit
      Sub 셀에내용추가하기()
      Dim 행 As Integer
      Dim 열 As Integer

      행 = 1
      열 = 1

      '셀 선택하기
      Cells(행, 열).Select


      '셀에 내용 추가하기
      Selection.Value = 100

      End Sub

      이렇게 해보세요

  7. 궐어 2017.01.02 20:25 신고

    감사합니다. 선생님.
    Option Explicit를 뺐는데 동일했고, dim as integer로 변수 선언을 하니 실행되었습니다.
    좋은 강좌 정말 감사합니다.

  8. 야야야 2017.03.09 10:13 신고

    안뇽하세용 글 보고 도움이 정말 많이되었어요^.^
    혹시 클릭한 셀값을 표시할수도있나요?