ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • VBA/.Value와 .Formula의 차이
    코딩/vba 2023. 12. 21. 15:08
    728x90

    나는 아마추어 프로그래머라서 코딩을 자주 하는 편은 아니고 필요할 때 그때 그때 한다. 그러다보니 한 번 코딩하고 난 뒤 한참 뒤에 다시 사용하려고 하면 기본부터 헷갈린다. 어제까지 파이썬을 써서 만든 자료를 엑셀에서 수식으로 연동시키려 몇 달 동안 쓰지 않은 vba를 사용하려 하니 '뭘로 시작하더라???'라고 어이없게도 Sub부터 생각이 안난다. 아마 VBA를 직업적으로 쓰는 사람들은 별로 없으니 다른 사람들도 내 심정 이해가 되지 않을까 싶다.

     

    VBA로 셀에 수식이나 값을 입력할 때 .Value와 .Formula에 대한 구분법

    Sub value_formula()
        Range("a1").Value = 100
        Range("a2").Formula = 100
        
        Range("b1").Value = "=a1+a2"
        Range("b2").Formula = "=a1+a2"
        
        Dim a As String, b As String
        a = Range("a1").Value
        b = Range("a1").Formula
        Debug.Print "Write.Value: " & a
        Debug.Print "Write.Formula: " & b
        
        Dim c As String, d As String
        c = Range("b2").Value
        d = Range("b2").Formula
        Debug.Print "Refer.Value: " & c
        Debug.Print "Refer.Formula: " & d
    End Sub

    위 코드의 결과는 아래와 같다. 엑셀 화면에서는 아무런 차이가 없다. 즉, 셀 입력을 위한 코딩에서는 .Value와 .Formula의 차이가 없다.

    하지만 아래처럼 셀의 정보를 가져올 때는 차이가 있다. Debug.Print를 이용해서 결과를 확인하면 .Value는 수식의 값만을 가져오고 .Formula는 수식 자체를 가져온다.

    결론

    셀에 내용을 쓸 때는 .Value든 .Formula든 상관없다. 셀의 내용을 가져올 때는 값을 가져올 때는 .Value, 수식을 가져올 때는 .Formula로 나눠서 쓴다.

    하지만 코딩은 습관이 중요하므로 셀에 내용을 보내든 가져오든 내용과 수식을 구분해서 .Value와 .Formula를 사용하는 것이 좋을 것이다.

    728x90

    댓글

Designed by Tistory.