EXCEL - VBA

두 문장의 같은 단어 비교(2) - 매크로 실행, 디버그

별동산 2023. 5. 9. 08:33
반응형

문장비교.xlsm
0.02MB

 

 

5. 매크로 실행

가. 단추 누르기

 

(1) '문장 비교' 단추 누르기

'문장 비교' 단추를 누르면 첫 줄에서는 '우리의', '자유와', '국민'이라는 글자가 빨간 색으로 바뀌고,

둘째 줄에서는 '우리의', '자유', '국민으로서,'가 빨간 색으로 바뀝니다.

 

포함관계를 따지기 때문에 '국민'과 '국민으로서'는 '국민'이 같기 때문에, '자유와'와 '자유'는 '자유'가 같기 때문에 빨간 색이 됐고,

'우리의'는 첫째 줄과 둘째 줄이 똑 같아서 빨간 색이 됐습니다.

 

(2) '초기화' 단추 누르기

초기화 버튼을 누르면 빨간 글자가 모두 검은 색 글자로 바뀝니다.

 

 

6. 디버깅

가. 중단점 설정

len1 줄 왼쪽 기둥(Side Bar)을 클릭해서 중단점을 설정합니다. 그러면 실행 아이콘(▶)을 눌렀을 때 중단점이 있는 줄에서 실행을 멈추게 됩니다.

 

나. 조사식 추가

값을 알고자 하는 변수 또는 배열에 커서를 위치한 다음 마우스 오른쪽 버튼을 누른 후 조사식 추가 버튼을 누릅니다.

 

위는 testArray1에 마우스 커서를 놓고, 마우스 오른쪽 버튼을 누른 상태로 여기서 조사식 추가 메뉴를 누르면

아래와 같이 조사식 추가 창이 표시되는데, 확인 버튼을 누릅니다.

 

그러면 조사식 창에 testArray1 배열이 추가됩니다.

 

다. 지역 창 추가

보기 메뉴에서 지역 창을 누르면

 

지역 창이 표시되고, 현재는 아무 것도 표시되지 않습니다.

 

 

라. 실행 아이콘 클릭

표준 도구 모음의 실행 아이콘을 클릭하니 계속(F5)으로 바뀌고, Len1 줄이 노란색으로 표시되면서 실행을 멈춥니다.

 

그리고, 위 화면을 보면 아래 쪽에 조사식 창과 지역 창이 표시되는데, 조사식 창에는 조사식으로 추가한 배열이 보이고,

지역 창에는 Module1과 지역 변수인 testArray1, testArray2, len1, len2, i, j 가 보입니다. 그런데 testArray1이 중복되므로 조사식에 추가할 필요가 없었습니다.

 

그리고, Module1 왼쪽의 + 버튼을 누르면 변수가 없다고 표시되는데, 여기에 표시되는 변수는 Module1에 공통적으로 사용되는 공용 변수입니다.

 

testArray1의 왼쪽 + 버튼을 누르면 '성실한', '마음과' 등이 들어가 있는데,

 

이것은 A1셀의 내용을 공백 한 칸을 기준으로 분리한 문자열입니다.

 

마. 한 단계씩 실행(F8), 프로시저 단위 실행(Shift+F8), 프로시저 나가기(Ctrl+Shift+F8), 커서까지 실행(Ctrl+F8)

디버그 메뉴 아래를 보면 한 단계씩 코드 실행, 프로시저 단위 실행, 프로시저 나가기, 커서까지 실행 등이 있습니다.

 

'한 단계씩 코드 실행'이란 한 줄씩 프로그램을 실행하는 것이고,

'프로시저 단위 실행'도 한 줄씩 프로그램을 실행하는 것은 똑 같은데,

아래와 같이 sub 프로시저를 호출(Call)하는 문장이 있을 때

 

'한 단계씩 코드 실행(F8)'을 누르면 font_red 프로시저로 들어가는데,

 

'프로시저 단위 실행'을 누르면

호출된 font_red 프로시저로 들어가지 않고, 호출된 font_red 프로시저를 실행한 다음 호출 프로시저의 다음 줄에서 멈추는 점이 다릅니다.

 

'프로시저 나가기'를 누르면 아래와 같이 font_red 프로시저를 들어가지도 않고, 아래를 모두 실행한 다음 이전 중단점에서 다시 멈춥니다.

 

'커서까지 실행'은 실행한 다음 커서가 있는 곳에서 멈추는 기능입니다.

 

매크로가 실행되면서 변수 또는 배열의 값이 아래와 같이 달라집니다.

 

바. 변수명 위에 커서를 놓아서 변수 값 알아내기

아래와 같이 중단점에서 실행을 멈추게 한 다음 위에 있는 변수명에 마우스 커서를 갖다 대면 a1_start_address 변수의 값 53이 표시됩니다.

 

사. 직접 실행창에 ? 변수명을 입력하여 변수 값 알아내기

보기 메뉴에서 직접 실행창을 눌러

직접 실행창을 나타나게 한 후

? a1_start_address 라고 입력하고 엔터 키를 누르면 변수의 값 53이 표시됩니다.

 

이런 식으로 변수의 값이 변화하는 모습을 보면서 프로그램이 잘 돌아가는지, 잘못된 부분은 없는지 확인하고 수정할 수 있습니다.

반응형