반응형
VBA를 활용해 셀에 Comment를 삽입할 수 있습니다.
Sub Add_Comment()
Dim sht As Worksheet
Set sht = Sheet6
sht.Range("A1").AddComment ("This is Comment")
End Sub
참고로 이미 셀 내에 Comment가 존재하는 경우 AddComment를 실행하면 오류가 발생하게 됩니다. 이미 Comment가 존재하는지를 확인한 뒤, 존재하는 Comment가 없을 경우에만 Comment를 작성하고 싶다면 아래와 같이 코드를 작성해주면 됩니다.
Sub Add_Comment()
Dim sht As Worksheet
Set sht = Sheet6
If sht.Range("A1").comment Is Nothing Then
sht.Range("A1").AddComment ("This is Comment")
End If
End Sub
위와 같이 코드를 작성하면 자신이 지정한 Sheet의 셀에 다음과 같이 Comment가 작성됩니다.
Comment Object는 다음과 같은 6개의 Property를 가집니다.
Property | Read_Only | Description |
Application | Yes | Comment를 생성한 응용 프로그램 (Excel) |
Author | Yes | Comment를 생성한 작성자 |
Creator | Yes | Comment를 생성한 응용 프로그램을 나타내는 정수 값 |
Parent | Yes | Comment의 상위 객체 (Range Object) |
Shape | Yes | Comment에 첨부된 Shape Object |
Visible | No | Comment가 보이는 경우 Visible = true |
예시로 다음과 같은 코드로 Comment의 작성자를 확인할 수 있습니다.
Sub Who_Make_Comment()
Dim sht As Worksheet
Set sht = Sheet6
MsgBox sht.Range("A1").comment.Author
End Sub
또한, 다음의 Method들을 통해 Comment Object를 사용할 수 있습니다.
Method | Description |
Delete | Comment를 삭제 |
Next | 해당 Worksheet의 다음 Comment를 반환 |
Previous | 해당 Worksheet의 이전 Comment 를 반환 |
Text | Comment를 반환하거나 설정 |
예시를 들어보겠습니다.
3개의 Comment를 작성해주고, 2번 Comment를 기준으로 Previous 와 Next, Text Method를 통해 각 Comment들의 내용을 MsgBox로 출력하는 예시 코드입니다.
Sub Comment_Example()
Dim sht As Worksheet
Set sht = Sheet6
sht.Range("A1").AddComment ("This is first Comment")
sht.Range("A2").AddComment ("This is second Comment")
sht.Range("A3").AddComment ("This is third Comment")
MsgBox sht.Comments(2).Text
MsgBox sht.Comments(2).Previous.Text
MsgBox sht.Comments(2).Next.Text
End Sub
다음으로, Comment를 삭제하는 예시입니다.
Sub Delete_Comment()
Dim sht As Worksheet
Set sht = Sheet6
Dim comm As comment
For Each comm In sht.Comments
comm.Delete
Next
End Sub
For Each 문 내에 조건문을 삽입하여 원하는 조건을 충족하는 Comment만 삭제하도록 응용하여 사용하시면 됩니다.
마지막으로 Comment의 배경색을 변경하는 코드입니다.
Sub Change_Comment_ForeColor()
Dim sht As Worksheet
Set sht = Sheet6
sht.Comments(1).Shape.Fill.ForeColor.RGB = RGB(180, 180, 180)
End Sub
위 코드를 실행하면 아래 사진과 같이 메모의 배경색이 변경됩니다.
Reference: Excel 2010 Power Programming With VBA / John Walkenbach
반응형
'프로젝트 및 실습 > VBA' 카테고리의 다른 글
[VBA] User-Defined Data Types (사용자 정의 데이터 타입) (0) | 2022.08.02 |
---|---|
[VBA] 배열(Array) 사용하기 (0) | 2022.08.02 |
[VBA] Access DB 내 모든 테이블 List 출력 (0) | 2022.07.14 |
[VBA] Access DB 연결 및 Select 실행 (0) | 2022.07.14 |
[VBA] Worksheet_change 이벤트 (Sheet 내 값 수정 감지) (0) | 2022.07.08 |