엑셀(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 함수를 사용해야 합니다.
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 개체, 속성, 함수, 이벤트 사용법과 사례 검색해서 참고하기 (0) | 2022.04.26 |
---|---|
엑셀 VBA 콤보박스 ComboBox 의존 관계 데이터 선택 기능 만드는 방법 (1) | 2019.02.28 |
엑셀 VBA Application.GoTo 함수로 시트에 커서 강제 이동시키는 방법 (0) | 2019.01.05 |
엑셀 VBA, UCase 와 LCase 함수를 사용해서 대문자, 소문자 변경하는 방법 (0) | 2018.09.09 |
엑셀(Excel) VBA – 다른 시트의 값을 가져와서 데이터를 추가하는 방법 (4) | 2018.04.18 |
엑셀 VBA 동일한 셀의 배경색을 구분하여 값을 합산하는 방법 (7) | 2018.02.01 |
엑셀 Excel UserForm 에 멀티 페이지 구현을 위해 탭 추가하는 방법 (0) | 2017.09.26 |
엑셀(Excel) VBA – Application.Version 개체로 엑셀 버전과 사용언어 알아보기 (0) | 2014.12.29 |