
어떻게 2번이 정답인가요...?
안녕하세요.
②가 정답인 이유는 VBA에서 Sub 프로시저를 Call 없이 호출할 때는 인수를 괄호로 묶지 않는 것이 기본 문법이기 때문입니다.
문제의 프로시저는
Sub TEST(단가, 수량, 이름)
Dim 합계 As Long
합계 = 단가 * 수량
MsgBox 이름 & "의 금액: " & 합계
End Sub이고, 이를 호출하는 대표적인 두 가지 방법은 다음과 같습니다.
TEST 200, 500, "이순신"또는 Call을 사용하여
Call TEST(200, 500, "이순신")입니다.
따라서 각 보기를 보면,
①
TEST(200, 500, "이순신")→ Call 없이 여러 인수를 괄호로 묶었으므로 올바른 일반 호출 형식이 아닙니다.
②
TEST 200, 500, "이순신"→ 정상적인 Sub 호출 방법이므로 정답입니다.
③
Call TEST 200, 500, "이순신"→ Call을 사용했다면 인수를 괄호로 묶어야 합니다.
Call TEST(200, 500, "이순신")으로 고쳐야 합니다.
④
=TEST(200, 500, "이순신")→ Excel 셀 수식처럼 작성한 것이므로 VBA의 Sub 호출 방법이 아닙니다.
시험에서는 다음 두 형태를 세트로 기억하시면 됩니다.
Call 없음 → TEST 200, 500, "이순신"
Call 있음 → Call TEST(200, 500, "이순신")즉 Call이 없으면 괄호도 없고, Call이 있으면 괄호가 있다고 기억하면 이 문제는 쉽게 구분할 수 있습니다.
따라서 문제의 해설과 ② 정답은 정확합니다.
즐거운 하루 되세요.
-
관리자2026-09-03 09:18:32
안녕하세요.
②가 정답인 이유는 VBA에서
Sub프로시저를Call없이 호출할 때는 인수를 괄호로 묶지 않는 것이 기본 문법이기 때문입니다.문제의 프로시저는
Sub TEST(단가, 수량, 이름) Dim 합계 As Long 합계 = 단가 * 수량 MsgBox 이름 & "의 금액: " & 합계 End Sub이고, 이를 호출하는 대표적인 두 가지 방법은 다음과 같습니다.
TEST 200, 500, "이순신"또는
Call을 사용하여Call TEST(200, 500, "이순신")입니다.
따라서 각 보기를 보면,
①
TEST(200, 500, "이순신")→
Call없이 여러 인수를 괄호로 묶었으므로 올바른 일반 호출 형식이 아닙니다.②
TEST 200, 500, "이순신"→ 정상적인 Sub 호출 방법이므로 정답입니다.
③
Call TEST 200, 500, "이순신"→
Call을 사용했다면 인수를 괄호로 묶어야 합니다.Call TEST(200, 500, "이순신")으로 고쳐야 합니다.
④
=TEST(200, 500, "이순신")→ Excel 셀 수식처럼 작성한 것이므로 VBA의 Sub 호출 방법이 아닙니다.
시험에서는 다음 두 형태를 세트로 기억하시면 됩니다.
Call 없음 → TEST 200, 500, "이순신" Call 있음 → Call TEST(200, 500, "이순신")즉
Call이 없으면 괄호도 없고,Call이 있으면 괄호가 있다고 기억하면 이 문제는 쉽게 구분할 수 있습니다.따라서 문제의 해설과 ② 정답은 정확합니다.
즐거운 하루 되세요.