[엑셀] 셀에 입력한 문자열 값을 참조하여 계산하기 : EVALUATE

반응형

특정 셀 값에 계산식을 넣으면 그 옆에는 자동으로 계산된 산출값이 나온다면 얼마나 좋을까?
엑셀을 사용하면서 늘 해보는 고민이다.
그것을 가능하게 하는 것으로 엑셀에는 evaluate라는 함수가 있다.
하지만 그 사용이 많이 불편하다.
그냥 일반 함수값처럼 쉽게 사용하는 방법은 없을까?

예를들어 왼쪽 그림처럼
셀A1에 123+456이라고 입력하면,
셀B1에는 자동으로 셀A1이 계산된 579가 입력되도록
하는 것이다.



이런 고민을 해결해주는 것이 사용자함수를 정의해서 쓰는 방법이다.






우선 엑셀에서 [Alt] + [F11] 키를 누르면 아래와 같이 Microsoft Visual Basic 창이 뜬다.









삽입(I) > 모듈(M)을 선택하자.
모듈(Module) 창이 뜨면 왼쪽 그림과 같이 입력한다.








 

  Function Eval(strRefer As String)
    Eval = Evaluate(strRefer)
  End Function

※ 위 strRefer는 임의로 정의한 문자열입니다. 다른 표현(예, strWord, ABCDEFG 등..) 문자로 대체해도 무방합니다. ^^

자 이제 eval이라는 새로운 함수가 생성되었다.
설정창을 닫고 셀B1에 아래와 같이 입력해보자.

=eval(A1)

사용방법은 일반적인 수식을 사용하는 것과 다르지 않다.







단, 주의할 것은 보안설정이 높게 되어 있다면 이 매크로가 작동 안할 수도 있다.
이때는 도구(T) > 옵션(O) > 보안 > 매크로 보안(S)에서 보안수준(S)보통(M) 이하로 낮추어주면 된다.

 

반응형