-
VBA/.Value와 .Formula의 차이코딩/vba 2023. 12. 21. 15:08728x90
나는 아마추어 프로그래머라서 코딩을 자주 하는 편은 아니고 필요할 때 그때 그때 한다. 그러다보니 한 번 코딩하고 난 뒤 한참 뒤에 다시 사용하려고 하면 기본부터 헷갈린다. 어제까지 파이썬을 써서 만든 자료를 엑셀에서 수식으로 연동시키려 몇 달 동안 쓰지 않은 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'코딩 > vba' 카테고리의 다른 글
VBA/버블정렬(Bubble sort) (2) 2024.01.09 VBA/PowerPoint/슬라이드 사이즈 픽셀 단위로 구하기 (0) 2024.01.09 [VBA/Set 키워드] 개체 참조 Set 키워드 (0) 2023.06.06 [VBA/Array] Not Not Array 로 배열원소 확인하기 (0) 2023.04.01 [VBA] 영역을 csv로 저장하기 (0) 2023.03.31