본문 바로가기

CS/OS

엑셀 매크로 활용 VBA(2)

반응형

 


수십년 동안 고쳐지지 않는 오역: 아래첨자 사용이 잘못되었습니다.

본론부터 말하자면 이는 오역 때문에 발생한 문제이다. 즉, 영문을 한글로 잘못 번역하여 생기는 문제이다. 하지만 수십년이 지나도 바로잡히지 않았다.

 

'아래첨자 사용이 잘못되었습니다'는 아래 영어 에러메세지를 번역한 것이다.

영어 원문

'아래첨자가 잘못되었습니다'는 'Subscript out of range'를 번역한 말이다. 참으로 웃지 못할 번역이다.

그렇다면 Subscript out of range는 무슨 뜻일까?

Subscript의 제1용례는 우리가 아는 '아래첨자'가 맞다. 하지만 computing 용어에서 쓰는 subscript는 이와는 뜻이 다르다. 구글 사전에서 subscript를 검색해보면 다음과 같은 화면이 나온다.

출처: google검색(google은 oxford language를 인용)

우리가 눈여겨 봐야 할 부분은 빨간색으로 표시한 computing에서 쓰이는 subscript의 뜻이다. 빨간색 안 영문을 중요 내용만 대략적으로 번역하면 다음과 같다.

프로그램에서 사용되는 배열의 구성요소 중 하나를 특정하는 기호(명목상 아래첨자라고 하지만 실제로는 아래첨자로 표기하지 않음).

즉 computing에서 subscript는 아래첨자가 아니라 '지칭하는 어떤 대상'이다. 그렇다면 'subscript out of range'는 무슨 뜻일까. out of range를 직역하면 '범위 내에 없다'이다. 의역하자면 '찾을 수 없다'는 뜻이다. 그러므로 'subscript out of range', 즉 '아래첨자 사용이 잘못되었습니다'는 '당신이 가져오려고 하는 그 값을 엑셀 스프레드시트에서 찾을 수가 없다'는 에러 메세지이다.

'아래 첨자가 잘못되었습니다'가 뜨면 확인해야 하는 것

자, 이제 우리는 '아래 첨자 사용이 잘못되었습니다'라는 에러 메세지가 무슨 뜻인지를 알았다. 그렇다면 이 에러메세지가 떴을 때 무엇을 확인해야 할까?

 

앞서 말했듯 '아래 첨자 사용이 잘못되었습니다'는 결국 참조가 잘못되었다는 뜻이다. 가장 흔한 경우를 예로 들어보자. VBA코드 상에 'main' sheet의 A1 셀 값을 가져오라고 적었다. 그러고 실행을 해 보니 '아래 첨자가 잘못되었습니다'가 뜬다. 이 경우는 main이라는 이름을 가진 sheet가 없거나 오타를 내서 main을 mian이라고 잘못 적었을 가능성이 매우 크다. 즉, VBA코드가 당신이 지정한 장소를 못 찾는 경우에 '아래 첨자 사용이 잘못되었습니다'라는 이상한 문장의 에러 메세지가 뜬다.

출처 : 참조 블로그

 

'아래 첨자 사용이 잘못되었습니다' - 역사와 전통을 자랑하는 오역

VBA를 사용하여 코딩을 할 때 '아래 첨자 사용이 잘못되었습니다'라는 메세지가 자주 뜬다. VBA에 익숙한 사람들은 그저 그러려니 하고 담담하게 디버깅을 하게 될 정도로 익숙한 에러 메세지이다

writingstudio.tistory.com


 

...
	Range("Sheet2!C8") = WorksheetFunction.Sum(Range("M46:S46").value)
...

 

반응형

'CS > OS' 카테고리의 다른 글

엑셀 매크로 활용 VBA(4)  (0) 2022.10.05
엑셀 매크로 활용 VBA(3)  (0) 2022.09.20
엑셀 매크로 활용 VBA(1)  (0) 2022.09.17
Microsoft Compatibility Telemetry  (0) 2021.06.01
엑셀에 로고 넣기  (2) 2020.07.01