[엑셀 VBA] Naming Convention - 변수나 개체 이름 붙이는 관행

작성자
dra****
작성일
2021-06-14 14:14
조회
2331

자신만 보는 코드면 별 문제가 없지만 협업을 해야 하거나 다른 사람들이 그 코드를 분석해야 한다면, 변수들이 무엇을 의미하는지 명확하게 전달하는 것이 중요합니다. 가뜩이나 분석하기 힘든데, 가독성 마저 좋지 않다면 ... ㅠㅠ

코딩을 보다 보면 Naming Convention을 한 번도 본적이 없는 분이 많다는 것을 느끼네요.

가령 누군가가  a = Range("a3") 라해 코딩했다고 가정해 보겠습니다. a는 개체를 받는 변수일까요 아니면 값을 받는 변수 일까요? 당연히 "Set" 구문이 없으니 변수를 받는 것입니다. 그럼 a=Range("a3").Value 라고 명기를 하면 이해하기가 좀 더 쉬어 질것입니다.  이제 a값은 도대체 무슨 용도일까요? 언급한 것 처럼 혼자만 보는 코드면 상관없습니다. 다른 사람에게 전달할 때 이해하기 어려운 것이지요.

모든 변수와 개체에는 변수명을 붙이는관행이 있습니다. 이렇게 하면 서로 무엇을 의미하는 지 쉽게 알 수 있으니까요.

가령 Command Button을 폼에 두고 이름을 명명할 때 "btn" + "이름(CamelCase)" 방식으로 합니다. 꼭 그래야 한다는 법은 없습니다. 그래서 "btnLogin" 이런식으로 명명하면 이게 무엇을 의미하는지 쉽게 알 수 있겠지요.

아래 표를 보시면 일반적으로 사용하는 명명 방식입니다.

Command button cmd cmdSubmit
Button btn btnCancel
Combo Box cbo cboSubjects
CheckBox cb cbHobbies
List Box lst lstMonths
Text Box txt txtName
Scroll Bar scr scrStudentInfo
Spin Button spn spnDay
Option Button opt optGender
Label lbl                 blStuName
Image img imgPhoto
Toggle Button tgl tglMode
UserForm fm frmLogin
Frame fra fraAddress
Tabstrip tbs tbsTeachers
Multipage mup mupEmployee

사실 이보다 많이 있습니다. VBA에 관심 있는 분들은 "VBA Naming Convention"으로 검색해 보면 참고가 될 것입니다.

신고
스크랩
공유
회원등급 : 30레벨
포인트 : 4702 EP
전체 9

  • 2021-06-14 19:02

    @dra**** 님 맞습니다 ㅎㅎ 변수를 잘 설정해야 1년, 2년 한~참 지나서도 쉽게 쉽게 디버깅할 수 있죠..

    하지만 제 경험으로는 이러한 개체단위 보다도 설명하는 단어 선정이 더 중요한 것 같습니다 ㅎ 예를들어 가격은 cost, 금액은 price .. 이런건 쉽지만, 인건비? 고정비? 유동비? 교통비? 통신비? 이런식으로 단계가 내려가면.. 설명하는 약어나 용어를 어떻게 선정하는가에 따라 코드 작성 난이도가 드롸마틱하게 바뀌는 듯 합니다..ㅎㅎ

    그래서 코딩을 하다보면.. 자연스럽게 영어 어휘력도 조금씩 느는 것 같아요 ㅋㅋ


    • 2021-06-14 23:21

      @더블유에이 님 그렇지요. ㅎㅎㅎ 작명하는 거랑 비슷해요. 고민하면서 지어야 하니.

      한글변수나 경로는 가급적 사용 안하는 것이. 영어 엑셀 VBA에서는 인식을 못합니다.


  • 2024-04-07 07:07

    @dra**** 님 좋은 정보 감사합니다😄


  • 2024-07-27 06:22

    @dra**** 님 좋은 정보 감사드립니다.


  • 2024-04-30 12:06

    @dra**** 님 좋은 정보 감사합니다.


  • 2021-09-22 04:29

    @dra**** 님 유지보수를 위해 꼭 필요함을 깨닫습니다. 유념하겠습니다.


  • 2021-09-12 22:32

    @dra**** 님 저도 처음부터 이걸 알았어야하는데,

    체계적으로 배우지 않아서, 마구잡이로 이름지었다가 한참후에야 깨달았습니다^^


  • 2021-06-24 18:34

    @dra**** 님 감사합니다. 제게 참 도움이 되는 글이었습니다! 유지보수 하는 팁도 같이 배우고 싶네요 😃


    • 2021-06-24 19:28

      @승이 님 가급적 유지보수하는 상황을 안 만들게 코딩하는 것이 중요하지 않을 까요?

      가령 For i = 1 to 10 ~ next i. 이런 상황에서, 어떤 연유로 10의 값이 변경이 되어질 수도 있다고 하면, 이런 코딩법은 좋지 않다고 봅니다.

      동적으로 상황에 따라 변하는 값을 가져오는 코딩이 좋은 코딩입니다. 어지간하면 유지보수 할 일이 없어지니까요.

      대표적인 것이 마지막 행번호 가져오는 Cells(Rows.Count, "A").End(xlUp) 이런 것을 사용하는 것이 좋은 코딩인 것이지요.

      어떤 분들은 Rows.Count 자리에 숫자로 10000, 이런식으로 넣는데, 뭐 데이터가 얼마 안돼면 문제가 안 되겠지만 좋은 코딩법은 아닙니다. 참고로 엑셀이 32비트, 64비트이냐에 따라, 그리고 버전별로 Rows.Count의 값이 다를 수 있습니다.


전체 165
번호 제목 작성자 작성일 추천 조회
알림
[📚진짜쓰는 실무엑셀] IT/오피스 '1위' 베스트셀러! 엑셀 공부, 이 교재로 마스터하세요! (315)
오빠두엑셀 | 2022.02.03 | 추천 575 | 조회 609847
오빠두엑셀 2022.02.03 575 609847
78094
[M365] 수식으로 고급필터 구현하기 첨부파일 (3)
마법의손 | 2025.04.11 | 추천 1 | 조회 138
마법의손 2025.04.11 1 138
78009
LOOKUP을 XLOOKUP 처럼 사용 (2019 이하 필독) 첨부파일 (1)
박정호 | 2025.04.06 | 추천 0 | 조회 133
박정호 2025.04.06 - 133
78002
[VBA] 괄호가 대응되게 문자열 잘라주는 함수
마법의손 | 2025.04.05 | 추천 0 | 조회 74
마법의손 2025.04.05 - 74
77792
엑셀 그림 삽입이 안될 때.. (그림 삽입 비활성화 해결) (1)
더블유에이 | 2025.03.24 | 추천 2 | 조회 455
더블유에이 2025.03.24 2 455
77667
언피벗 툴 업그레이드 버전입니다. 첨부파일 (2)
박정호 | 2025.03.17 | 추천 0 | 조회 121
박정호 2025.03.17 - 121
77635
머리글로 데이터 합치기 툴 첨부파일 (4)
박정호 | 2025.03.15 | 추천 1 | 조회 132
박정호 2025.03.15 1 132
77598
MERGE(자석처럼 자료 붙이기) 툴입니다. 첨부파일 (2)
박정호 | 2025.03.13 | 추천 0 | 조회 173
박정호 2025.03.13 - 173
77577
[VBA] 시트명들 가져오는 함수 첨부파일 (4)
마법의손 | 2025.03.12 | 추천 1 | 조회 136
마법의손 2025.03.12 1 136
77544
LOOKUP 함수 사용법(2019 이하 필독) 첨부파일 (6)
박정호 | 2025.03.11 | 추천 0 | 조회 211
박정호 2025.03.11 - 211
77543
[함수TIP] Date함수로 Eomonth함수 대체하기 (3)
마법의손 | 2025.03.11 | 추천 3 | 조회 90
마법의손 2025.03.11 3 90
77481
쉽게 쓸 수 있는 언피벗 툴 첨부파일 (2)
박정호 | 2025.03.08 | 추천 2 | 조회 137
박정호 2025.03.08 2 137
77468
월간단위 월주차 함수 첨부파일 (3)
팍셀 | 2025.03.07 | 추천 0 | 조회 160
팍셀 2025.03.07 - 160
77385
TEXTJOIN 을 SUMPRODUCT 공식으로 2차원 데이터 다루기 첨부파일
박정호 | 2025.03.04 | 추천 0 | 조회 110
박정호 2025.03.04 - 110
77355
TEXTJOIN 으로 2차원 데이터 다루기 첨부파일 (3)
박정호 | 2025.03.02 | 추천 1 | 조회 115
박정호 2025.03.02 1 115
77353
& 기호로 SUMPRODUCT 2차원 데이터 다루기 첨부파일 (2)
박정호 | 2025.03.02 | 추천 0 | 조회 90
박정호 2025.03.02 - 90
77351
단어 포함 여부 검색, 원하는 단어로 출력 첨부파일
박정호 | 2025.03.02 | 추천 1 | 조회 122
박정호 2025.03.02 1 122
77238
휴일이면 1 아니면 0이 나오는 함수 첨부파일 (4)
박정호 | 2025.02.24 | 추천 0 | 조회 161
박정호 2025.02.24 - 161
77072
SUMPRODUCT로 VLOOKUP 대체 (2차원 룩업 가능) 첨부파일 (1)
박정호 | 2025.02.16 | 추천 0 | 조회 278
박정호 2025.02.16 - 278
76915
SUMPRODUCT로 2차원 데이터 다루기[응용] 첨부파일 (6)
박정호 | 2025.02.09 | 추천 1 | 조회 243
박정호 2025.02.09 1 243
76913
SUMPRODUCT로 2차원 데이터 sumifs 처럼 다루기 첨부파일 (1)
박정호 | 2025.02.09 | 추천 0 | 조회 204
박정호 2025.02.09 - 204