• 최초 작성일: 2003-04-02
  • 최종 수정일: 2026-09-30
  • 조회수: 16 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: 수식이 입력된 셀에 수식을 메모로 달기

들어가기 전에

오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.

To teach is to learn twice over. 가르치는 것은 곧 두 번 이상을 배우는 것이다.

무엇을 배우는 가장 좋은 방법은 남을 가르쳐 보는 것이랍니다. 답변신공 흠...

권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

필자는 Excel 컨설턴트, 작가, 그리고 크리에이터입니다. 현재 Microsoft Excel MVP이며, 『챗GPT+엑셀 업무자동화 정석』을 비롯한 10여 권의 도서를 집필했습니다. Excel 자동화 및 생산성 향상 분야에서 25년 넘는 경력을 보유하고 있습니다.

권현욱(엑셀러) 님의 최신 포스트:
  • 최신 글을 불러오는 중...


26년 경력 Microsoft MVP 권현욱(엑셀러) 대표 직강 1강 무료

🎁 파워툴스 마스터클래스 · 엑셀 바이브 코딩

AI에게 말로 지시해서 '나만의 엑셀 도구'를 만들고 리본에 장착합니다.

  • 코딩 지식 없이 시작 · 코드는 AI가 작성
  • 엑셀 리본에 내 탭과 버튼을 만들고 XLAM으로 공유
  • 1강 무료 수강 가능
수강 신청하기 강의 소개 보기

수식이 입력된 셀에 수식을 메모로 달기

핵심 요약: 수식을 메모로 삽입하기

HasFormula로 수식이 있는 셀을 찾아 AddComment로 수식 문자열을 메모에 넣는 방법입니다. 시트의 계산 구조를 문서화할 때 유용합니다.

  • 1단계: Application.InputBox(Type:=8)로 대상 영역을 지정받습니다.
  • 2단계: DelComments로 기존 메모를 삭제합니다.
  • 3단계: HasFormula가 True인 셀에 AddComment로 Formula를 삽입합니다.

Step 1: 무엇을 만들까요?

사업본부별, 월별 매출을 정리한 표가 있습니다. 이 표에서 분기계, 지점계 부분에는 수식이 입력되어 있습니다. 수식이 입력된 셀의 수식을 메모(주석)로 삽입해 보겠습니다.

버튼을 누르고 대상 영역을 지정하면, 영역 안에서 수식이 들어 있는 모든 셀에 메모가 삽입되면서 수식이 그대로 옮겨집니다.

Step 2: 코드 살펴보기

Sub AddFomulaToComment()

    Const strID As String = "www.iExceller.com"
    Dim rngCell             As Range
    Dim rngTarget           As Range
    Set rngTarget = Application.InputBox(prompt:="대상 영역을 선택하세요", _
        Type:=8, Default:=[Start].CurrentRegion.Address)
    ' 사용자로부터 영역을 지정받습니다.

    MsgBox "먼저, 지정하신 영역 내의 메모를 모두 지웁니다", , strID
    DelComments rngTarget
    ' 지정된 영역 내에 메모가 이미 들어있다면 이를 지우기 위한 외부 프로시저를 실행시킵니다.
    ' 이 때 rngTarget, 즉 사용자가 지정한 영역을 함께 변수로 넘겨 실행합니다.

    MsgBox "메모를 모두 제거하였습니다. 이제 수식을 메모로 옮깁니다", , strID

    For Each rngCell In rngTarget
        With rngCell
            If .HasFormula Then
            ' 셀에 수식이 들어있으면 AddComment 메서드를 사용하여 메모를 삽입합니다.
            ' 메모에 텍스트를 추가할 때에는 Text 메서드를 사용합니다.

                .AddComment Text:=.Formula
            End If
        End With
    Next rngCell
    MsgBox "수식이 들어있는 모든 셀에 메모를 삽입하였습니다", , strID

End Sub

먼저 Application.InputBox의 Type을 8로 지정해 대상 영역을 입력받고, 이미 들어 있는 메모를 지운 다음 영역의 각 셀을 순환하면서 HasFormula 속성으로 수식 여부를 확인합니다. 수식이 있는 셀에는 AddComment 메서드로 메모를 만들고 .Formula를 메모 내용으로 넣습니다.

기존 메모를 지우는 외부 프로시저 DelComments는 다음과 같이 작성할 수 있습니다. 대상 영역을 인수로 받아 메모가 있는 셀의 메모를 삭제합니다.

Sub DelComments(rngTarget As Range)

    Dim rngCell             As Range
    For Each rngCell In rngTarget
        If Not rngCell.Comment Is Nothing Then rngCell.Comment.Delete
    Next rngCell

End Sub

많이들 응용해 보세요!

다음 시간에 또…

정리 — 수식 메모 삽입 핵심 코드

구분 사용한 코드 역할
영역 입력 Application.InputBox(..., Type:=8) 대상 영역 선택
수식 여부 .HasFormula 수식이 있는 셀 판별
메모 삽입 .AddComment Text:=.Formula 수식을 메모로 추가
메모 삭제 rngCell.Comment.Delete 기존 메모 제거
프로시저 호출 DelComments rngTarget 영역을 인수로 전달

자주 묻는 질문 (FAQ)

Q1. 셀에 수식이 있는지는 어떻게 확인하나요?

Range 개체의 HasFormula 속성이 True이면 수식이 들어 있는 셀입니다.

Q2. 메모를 추가하는 메서드는 무엇인가요?

AddComment 메서드입니다. Text 인수에 메모에 넣을 내용을 지정합니다.

Q3. 기존 메모가 있는 셀에 AddComment를 실행하면 어떻게 되나요?

이미 메모가 있는 셀에는 오류가 발생하므로 먼저 기존 메모를 삭제하는 절차를 넣었습니다.

마치며

수식을 메모로 남겨 두면 복잡한 표의 계산 구조를 한눈에 확인할 수 있습니다. 다양하게 응용해 보시기 바랍니다.