Value, Formula, FormulaR1C1, Text 속성은 셀에 값을 입력하거나 읽을 때 사용합니다. 구체적으로 Value, Formula, FormulaR1C1 는 셀 내용을 읽거나 값을 입력하고 싶을 때 이용합니다. 텍스트로 작성한 수식을 실행하고 싶을 때도 사용합니다. Text 는 Value 와 달리 읽기만 가능합니다. FormulaR1C1 는 속성명에서도 알 수 있듯이 Formula 와 달리 상대참조 형태를 취합니다.
◎ Value 속성 사용하기 |
▼ 먼저 코드 작성을 위해 Visual Basic 코드 입력창을 띄웁니다. 개발 도구 > Visual Basic 리본 메뉴를 클릭합니다.
▼ Value 속성은 값이나 수식을 입력하거나 읽을 때 사용합니다. 속성에 값을 입력할 때는 숫자를 제외하고 모두 “” 쌍따움표로 감싸서 문자로 만들어야 제대로 동작합니다. 아래 소스를 입력하고 실행할 함수를 작성합니다.
Sub ValueSet()
Worksheets("Sheet1").Range("A1").Value = 3.145
Cells(2, "A").Value = 100
Cells(3, "A").Value = "= A1 + A2"
Cells(4, "A").Value = "= SUM(A1:A3)"
Cells(5, "A").Value = "mainia.tistory.com"
Cells(6, "A").Value = Now
End Sub
▼ 실행 결과는 아래와 같습니다. 수식이 들어간 텍스트는 실행 결과를 셀에 표시합니다. 물론 셀에는 수식이 입력한 대로 들어가 있습니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA GoTo 문 이용해서 줄로 분기하기 ▶ 엑셀 VBA 매크로 디버깅, 디버그 코드 분석하기 ▶ 엑셀 Excel VBA 개발을 위한 개발 도구 탭 추가하기 ▶ 엑셀 VBA 개발할 때 로그 출력하는 방법 ▶ 엑셀 VBA 셀을 병합하는 Merge 함수 사용하기 |
◎ Formula 속성 사용하기 |
▼ Formula 도 Value 와 같이 값과 수식을 입력할 때 사용합니다. Value 와 동일한 결과를 얻을 수 있습니다.
Sub FormulaSet()
Worksheets("Sheet1").Range("A1").Formula = 3.145
Cells(2, "A").Formula = 100
Cells(3, "A").Formula = "= A1 + A2"
Cells(4, "A").Formula = "= SUM(A1:A3)"
Cells(5, "A").Formula = "mainia.tistory.com"
Cells(6, "A").Formula = Now
End Sub
◎ FormulaR1C1 속성 사용하기 |
▼ FormulaR1C1 속성은 이름에서 알 수 있듯이 상대참조 형태를 취합니다. 값이 입력된 셀을 기준으로 행과 열의 이동수를 계산합니다. R[열이동수]C[행이동수] 괄호안에 이동수가 들어가고 마이너스일 때 왼쪽이나 위로 이동합니다. 수식의 실행결과는 아래와 같습니다.
Sub FormulaR1C1Set()
Worksheets("Sheet1").Range("A1").FormulaR1C1 = 200
Worksheets("Sheet1").Range("A2").FormulaR1C1 = 500
Worksheets("Sheet1").Range("A3").FormulaR1C1 = "= R[-2]C * R[-1]C"
End Sub
◎ Text 속성 사용하기 |
▼ Text 속성은 값을 출력할 때 사용합니다. Value 와 달리 출력 포맷을 사용자가 지정하고 싶을 때 사용하는 속성입니다. 엑셀의 사용자지정 포맷과 같습니다. 아래 소스는 A1,A2 에 입력한 값이 어떻게 다르게 출력되는지 보여줍니다. Text 에 출력하는 값의 포맷은 NumberFormatLocal 속성으로 변경합니다. Value 와 어떻게 다른지 비교해 보세요.
Sub TextSet()
Range("A1").Value = 200
Range("A2").Value = 500
Range("A1:A2").NumberFormatLocal = "$#,##0_);($#,##0)"
MsgBox Range("A2").Value
MsgBox Range("A2").Text
End Sub
▼ 실행 결과 NumberFormatLocal 에서 변경한 출력 포맷대로 Text 는 앞에 $ 표시가 붙었습니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA GoTo 문 이용해서 줄로 분기하기 ▶ 엑셀 VBA 매크로 디버깅, 디버그 코드 분석하기 ▶ 엑셀 Excel VBA 개발을 위한 개발 도구 탭 추가하기 ▶ 엑셀 VBA 개발할 때 로그 출력하는 방법 ▶ 엑셀 VBA 셀을 병합하는 Merge 함수 사용하기 |
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 이미지 셀 영역에 맞춰서 넣기, ShapeRange 함수 이용 (2) | 2024.02.28 |
---|---|
엑셀 VBA 지정한 파일 삭제하기 (0) | 2024.02.17 |
엑셀 VBA 행 열 숨기기와 보이기 구현 (0) | 2024.02.11 |
엑셀 VBA 시트에 있는 내용을 파일, 텍스트로 출력하기 (2) | 2024.01.28 |
엑셀 VBA 사용자가 선택한 영역 값, 셀 주소 정보 알아 내는 방법 (2) | 2024.01.21 |
엑셀 VBA 셀 참조하는 여러가지 방법 (4) | 2024.01.11 |
엑셀 VBA 이항 논리 연산자 And, Or, Xor 와 단항 논리 연산자 Not 사용하기 (1) | 2024.01.03 |
엑셀 VBA 함수 CStr 데이터를 문자열로 변환하기 (1) | 2024.01.02 |