상세 컨텐츠

본문 제목

누구나 하는 엑셀 VBA로 여러 셀 내용 합치기

이것저것/Tip

by jaws99 2020. 4. 19. 16:50

본문

반응형

대학교에서 근로 장학생을 하는 중인데 조교님들이 엑셀로 단순 작업하는 걸 찾고 계셔서 쉽게 따라 할 수 있게 소스를 만들어 보려고 합니다.

 

 

CONCATENATE라는 셀 내용을 합쳐주는 함수가 있습니다. 5개 정도면 어떻게 어떻게 할 수는 있지만 셀이 100줄 200줄 넘어가면.. 어느 세월에 저거 하나하나 적고 있어요ㅜㅜ 저런 반복적인 작업을 보면 컴퓨터를 시켜야 합니다!

 

 

Excel 개발 도구에서 매크로를 눌러줍니다!

 

 

원하는 이름을 주고 만들기를 눌러줍니다.

 

 

그러면 이 무슨 해괴망측한 창이 생기는데 당황하지 말고 아래처럼 따라서 쳐보겠습니다!

 

 


    Dim I As Integer

    Dim TotalMessage As String

    For I = 2 To 11

        TotalMessage = TotalMessage + Cells(I, 3) + ", "

    Next

    Cells(4, 5).Value = TotalMessage

 

복사하세요


더 좋은 방법이 많겠지만 저는 이렇게 해봤습니다.

 

Dim I As Integer라는 말은 몇 번째 행까지 추가할지 도와주는 숫자라고 생각하시면 됩니다. 1,2,3,4,5...

Dim TotalMessage As String은 숫자가 아니라 문자입니다. abcdefg.. 이메일을 저장할 문자라고 생각하시면 됩니다.

 

I나 TotalMessage는 제가 임의로 지어준 "이름" 입니다. 주고 싶은 이름이 있으면 다른 이름을 주셔도 됩니다.

 

For I = 2 To 11

TotalMessage = TotalMessage + Cells(I, 3) + ", "

Next

 

For, Next는 그 사이에 내용을 반복하겠다는 의미입니다. 2 To 11은 I를 2부터 11까지 하나씩 올리겠다는 뜻입니다.

저는 2행부터 11행까지 이메일을 가져올 거라 2 To 11을 적어줬습니다.

 

TotalMessage = TotalMessage + Cells(I, 3) + ", "

 

가장 중요한 부분입니다!

저희가 원하는 건 이메일을 ,으로 구분하면서 계속 합치고 싶은 건데 그걸 여기서는 내용을 계속 더해간다고 생각하세요!

 

Cells(행, 열)은 해당 행,열에 있는 내용을 가져옵니다.

저희는 3열에 2행부터 11행까지 가져 오는데 3열은 고정이고 행이 2부터 11까지 변해갑니다.

그래서 행 부분을 I라고 적었습니다.

 

맨 처음에는 2,3에 있는 내용 그다음에는 3,3에 있는 내용...

TotalMessage = TotalMessage + ... 이런 식으로 있는데

내가 지금 알고 있는 내용에다가 다음 내용을 이어서 붙일 거야!라고 생각하세요!

 

그리고 위에 초록색 시작 버튼(F5)을 누르면

 

제가 원하던 모양이 나왔습니다!

 

저도 엑셀 VBA는 처음이라 서툴지엑셀 셀 내용 합치기만 일하다가 다른 일 있으면 또 적어보겠습니다.

반응형

관련글 더보기