본문 바로가기

Excel VBA/VBA 배우기

03 엄마도 따라 할 수 있는 Excel VBA - 셀 선택하기, 값 가져오기, 바꾸기

728x90

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

 

관련 글

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

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

 

01셀 선택하기

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

 

셀 선택하고 내용 추가하기

위와 같이 화면을 반반씩 배치하고 따라해 보시기바랍니다. 왼쪽에 편집한 소스코드가 실제 엑셀 시트에 어떤 영향을 미치는지 바로 확인할 수 있습니다.

 

아래 소스코드를 위와 같이 추가한 후 위에 '실행'버튼을 눌러보세요. 아니면 F5버튼을 눌러도 됩니다.

셀을 선택하는 기능(method)은 '.Select'입니다.

 

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

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

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

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

End Sub

위 코드는 1행 1열을 선택한 후 100이라는 값을 입력하라는 코드 입니다.

 

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

 

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

 

728x90

아래와 같이 하시면 됩니다.

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행 3열'에 있는 값을 '3행 3열'로 복사 해볼게요

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

 

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

 

 

 

 

end.

 

 

 

 

728x90
  • 엑셀초보 2013.04.07 07:19

    강좌 감사합니다.

  • vba 셀 2014.04.15 03:48

    vba 셀

  • 최호경 2016.10.22 00:31

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

  • VBA왕초보 2016.12.06 17:38

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

  • 궐어 2017.01.02 20:11

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

    • KyeongRok Kim 2017.01.02 20:14 신고

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

  • 궐어 2017.01.02 20:16

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

    • 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

      이렇게 해보세요

  • 궐어 2017.01.02 20:25

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

  • 야야야 2017.03.09 10:13

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

  • 유진희 2019.11.27 03:16

    쌤 너무 감사해요! 하나씩 예제 따라하면서 배우니 참 재밌네요!!

  • 질문빌런 2020.12.23 10:00

    안녕하세요? 2편을 보고 질문이 생겨서 여쭤봅니다.

    2편에서 range에 값을 넣을때는

    [sheets(1).range("a3").select]
    [range("a3").value = "값"]

    이렇게 .select가 있어도 [range().value]로 값을 넣어주잖습니까

    그런데 이번편에서는

    [Cells(행, 열).Select]
    [Selection.Value = "2행 3열"]

    이렇게 [selection.value]라고 [selection.]이 새로 나왔는데요.

    서로간의 차이가 cells랑 range 에서 나오는 것인가요?
    아니면 행, 열에 변수를 받는 것 때문에 나오는 것일까요?

    • 2021.05.11 01:08

      저도 공부중인데,
      Selection은 선택적인 요소로 보여집니다.
      Select안쓰고 그냥 바로 cells(행,열).value해도 되서요

  • 훈쓰라 2021.07.06 09:08

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

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

    응용1 인데요 Cells(2,3).Value = "값을 수정하자" 이렇게 생각이 되는데요

  • HONG 2022.03.27 16:17

    감사합니다 공부에 도움이 됐어요

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