목차 열기

티스토리 뷰

VBA/RubberDuck

VBA Rubberducking (Part 2)

RuungJi · 2022. 5. 9. 22:49
728x90
반응형

VBA Rubberducking (Part 2)

이 글은 Rubberduck Blog의 VBA Rubberducking (Part 2) 글을 번역하며 공부하기 위한 기록으로, 일부 생략된 부분이 있을 수 있습니다. 오역, 오타에 관한 자유로운 의견 감사드립니다.


이 포스팅은 오픈소스 VBE 애드인 Rubberduck의 다양한 기능을 안내하는 시리즈 중 두 번째 게시물입니다.

첫 번째 게시물탐색에 관한 것이었습니다.

코드 검사기 (Code Inspections)

(...)

Without Option Explicit on, Rubberduck code inspections can yield false positives.

Option Explicit가 없다면, Rubberduck 코드 검사기는 오탐을 발생시킬 수 있습니다.

(...)

모범사례는 항상 변수를 선언하는 것이고, 변수 미선언으로 인한 나머지 Rubberduck 검사의 기본 심각도 수준은 Error입니다.

Dim strName As String

검사 결과창 (The Inspection Results toolwindow)

새로운 엑셀 워크북에서, 검사 결과창(기본 Ctrl + Shift + I)을 켜면 다음과 같은 창을 볼 수 있습니다:

빠른-수정 (quick-fixes)

보통 검사기는 하나 이상의 "빠른-수정 (quick-fixes)"를 제공하는데, 가끔 모듈이나 프로젝트에 한번에 적용될 수도 있습니다. 위 사진의 하단 링크 "Fix all occurrences in project"로, 프로젝트의 모든 모듈에 Option Explicit 코드를 추가할 수 있습니다.

Option Explicit

아니면, 상단 메뉴의 Fix에서 빠르게 수정할 수 있습니다:

Fix 메뉴에서 각 검사는 고유한 "빠른-수정 (quick-fixes)" 세트가 있습니다. 다음 사진의 Ignore once를 통해 코드에 @Ignore 주석을 추가하면, 선언이나 식별자 참조를 건너뛰도록 합니다:

'@Ingore (...)

검사 결과창의 하단 패널은 선택된 검사 결과에 대한 정보와, Fix 메뉴의 첫 번째 "빠른-수정"을 사용하는 모든 링크를 보여줍니다. Disable this inspection 링크는 해당 이슈의 심각도 설정을 DoNotShow로 설정합니다.

Fix 항목은 빈 모듈에 사용해보며 익숙해지는 것을 추천합니다.

코드 검사 설정

상단 메뉴의 Rubberduck - Settings - Code Inspection Settings를 통해, 검사창의 세부 옵션(이슈 심각도 설정 등)을 설정할 수 있습니다:

  • Call 키워드를 사용하고 싶으면, 해당 설정창에서 쉽게 끌 수 있습니다.
Call (...)
  • Copy toolbar 버튼으로 검사 결과를 클립보드로 보내서, 텍스트 파일이나 엑셀 워크시트에 붙여넣을 수도 있습니다.

그룹화와 새로고침

결과창 상단의 Grouping 탭에서 이슈 결과 그룹화를 바꿀 수 있습니다:

새로 고침 버튼으로 모듈을 다시 구문 분석할 수 있습니다. Parser 상태가 "준비"될 때마다 검사가 실행되고 그리드가 새로고침됩니다. Rubberduck 명령바나, 코드 탐색기 도구 창에서 새로 고침하는 것과 같습니다.

이어지는글

VBA Rubberducking (Part 3)

VBA / INDEX

728x90
반응형

'VBA > RubberDuck' 카테고리의 다른 글

OOP in VBA: Immutability & The Factory Pattern  (1) 2022.09.20
VBA Rubberducking (Part 4)  (0) 2022.05.18
VBA Rubberducking (Part 3)  (0) 2022.05.10
VBA Rubberducking (Part 1)  (0) 2022.05.01
VBA Rubberduck / 러버덕  (0) 2022.05.01
댓글
글 보관함
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Total
Today
Yesterday