문제
[C1]셀에 "=A1*B1"이라는 계산식이 입력되어 있을 때, 다음 중 입력된 수식의 결과를 값으로 변경하는 VBA 코드로 옳은 것은?
① Range("C1").Formula= Range("C1").Count ② Range("C1").Value = Range("C1").Value ③ Range("C1").Value = Range("C1").Formula ④ Range("C1").Formula= Range("C1").FormulaR1C1
정답
2번
해설
정답: 2. Range("C1").Value = Range("C1").Value는 셀의 현재 계산 결과(Value)를 다시 그 셀의 Value로 대입하는 것이므로, 수식이 제거되고 결과값만 남는다(수식→값 변환).
오답 풀이
- 1번:
.Count는 셀 개수를 반환하므로 결과를 값으로 바꾸는 것과 무관하다. - 2번: 셀의 Value를 자기 Value로 대입하면 수식이 사라지고 값만 남으므로 옳다.
- 3번:
.Formula를 Value에 넣으면 수식 문자열("=A1*B1")이 그대로 대입된다. - 4번:
.FormulaR1C1을.Formula에 넣으면 R1C1 형식 수식이 들어가 값 변환이 아니다.
보충 개념 VBA에서 .Value는 셀의 표시 결과(값), .Formula는 입력된 수식 문자열을 의미한다. 수식을 값으로 고정하려면 Value를 자기 자신에게 대입한다.