엑셀(Excel) VBA 강좌 - 메모값 알아오는 방법 |
환경: Microsoft Excel 2013 |
VBA 는 엑셀 시트에 있는 데이터를 참조할 수 있도록 개체를 제공합니다. 메모 데이터를 다루기 위해서는 Comment 가 필요합니다. 이번 예제는 A열의 셀에 있는 메모 내용을 가져와서 바로 옆에 B 셀로 복사해 보겠습니다.
▼ 그림처럼 A 열의 각 셀에 메모가 추가 되어 있습니다. 매크로 버튼을 하나 만들어서 클릭을 하면 함수가 실행되고 A열의 메모값을 가져와서 바로 옆 셀에 집어 넣을 것입니다.
▼ 함수의 시작은 Range 함수로 A 열의 영역을 리턴 받습니다. Set rngArea = Range("A2:A10") 부분입니다. 영역의 값을 하나씩 꺼내기 위해 For Each 문을 이용합니다. 반복 중에 셀에 추가 되어 있지 않은 메모가 있을 수 있으므로 If rng.Comment Is Nothing Then 사용해서 분기합니다. 이렇게 추출한 셀 영역인 rng 에서 rng.Comment.Text 메모값을 가져옵니다. 메모 개체는 Comment 입니다. 가져온 메모값을 Offset(, 1) 코드를 사용해서 한 칸 옆으로 이동합니다. B 열이 되는 것이죠. 그곳에 메모값을 입력합니다.
Option Explicit
Sub 메모_Click()
Dim rng As Range, rngArea As Range Set rngArea = Range("A2:A10")
rngArea.Offset(, 1).ClearComments
For Each rng In rngArea If rng.Comment Is Nothing Then ' 메모가 없을때 'no comment Else rng.Comment.Visible = False rng.Offset(, 1).Value = rng.Comment.Text End If Next rng
End Sub |
▼ 매크로 버튼을 만들어서 함수와 연결합니다. 결과는 다음과 같습니다. 메모의 내용을 바로 옆 셀에 표시하였습니다. 그런데 메모는 삭제하지 않고 보이지 않게 표시하였습니다. 기존 메모를 삭제하고 싶다면 어떻게 해야 할까요? 셀 옆에 메모 내용을 표시하고 rng.Comment.Delete 와 같이 Delete 함수를 사용해야 합니다.
댓글을 달아 주세요