Excel VBA 수식 – 최종 가이드라인
In this Article
이 튜토리얼에서는 VBA를 사용하여 셀 수식을 만드는 방법을 설명합니다.
VBA의 수식
VBA를 사용하면 Excel의 범위 또는 셀에 직접 수식을 작성할 수 있습니다. 다음 코드를 참고해 주세요:
Sub Formula_Example()
'하드 코딩된 수식을 단일 셀에 할당합니다.
Range("b3").Formula = "=b1+b2"
'상대참조를 이용한 수식을 여러 셀에 할당합니다.
Range("d1:d100").FormulaR1C1 = "=RC2+RC3"
End Sub
여기에 관련된 두 가지 Range 속성 속성이 있습니다:
- .Formula – 정확한 수식(하드코딩된 셀 참조)을 만듭니다. 단일 셀에 수식을 추가할 때 유용합니다.
- .FormulaR1C1 – 상대참조를 이용한 수식을 만듭니다. 셀 참조가 변경되어야 하는 다양한 셀에 수식을 추가하는 데 적합합니다.
간단한 수식의 경우 .Formula 속성을 사용해도 좋습니다. 하지만 그 외의 대부분의 경우에는 “매크로 기록” 기능을 사용하는 것이 좋습니다…
매크로 기록 기능과 셀 수식
매크로 기록 기능은 VBA로 셀 수식을 작성할 때 자주 사용하는 도구입니다. 간단히 사용할 수 있습니다:
- 매크로 기록 시작
- 셀에 수식(필요에 따라 상대/절대 참조 포함)을 입력하고 Enter 키를 누릅니다.
- 기록 중지
- VBA 편집기를 열고 수식을 검토하여 필요에 따라 조정하고 필요한 곳에 코드를 복사하여 붙여넣습니다.
VBA에서 해당 수식을 직접 입력하는 것보다 매크로 기록 기능을 사용하여 셀에 수식을 입력하는 것이 훨씬 쉽습니다.
아래 사항에 주의해 주세요:
- 매크로 레코더는 항상 .FormulaR1C1 속성을 사용합니다.
- 매크로 레코더는 절대 및 상대 셀 참조를 인식합니다.
VBA FormulaR1C1 속성
FormulaR1C1 속성은 (Excel에서 익숙한 표준 A1 스타일이 아닌) R1C1 스타일 셀 참조를 사용합니다.
다음의 몇 가지 예제를 찹고부탁드립니다:
Sub FormulaR1C1_Examples()
'D5셀 절대참조
'=$D$5
Range("a1").FormulaR1C1 = "=R5C4"
'A1셀에서 D5셀 상대참조
'=D5
Range("a1").FormulaR1C1 = "=R[4]C[3]"
'A1셀에서 D5셀 참조(절대 행, 상대 열)
'=D$5
Range("a1").FormulaR1C1 = "=R5C[3]"
'A1셀에서 D5셀 참조(상대 행, 절대 열)
'=$D5
Range("a1").FormulaR1C1 = "=R[4]C4"
End Sub
R1C1 스타일 셀 참조를 사용하면 절대 참조 또는 상대 참조를 설정할 수 있습니다.
절대 참조
표준 A1 표기법에서 절대 참조는 다음과 같습니다: “=$C$2”. R1C1 표기법에서는 다음과 같이 표시됩니다: “=R2C3”.
R1C1 스타일 유형을 사용하여 절대 셀 참조를 만드려면 다음과 같이 하세요:
- R + 행번호
- C + 열번호
예시: R2C3은 셀 $C$2를 나타냅니다(C는 세 번째 열입니다).
'D5셀 절대참조
'=$D$5
Range("a1").FormulaR1C1 = "=R5C4"
상대 참조
상대 셀 참조는 수식이 이동될 때 “이동”하는 셀 참조입니다.
표준 A1 표기법에서는 다음과 같이 표시됩니다: “=C2”. R1C1 표기법에서는 괄호[]를 사용하여 현재 셀에서 셀 참조를 오프셋합니다.
예시: B3셀에 수식 “=R[1]C[1]”을 입력하면 셀 D4(수식 셀의 아래 1행과 오른쪽 1열에 있는 셀)를 참조하게 됩니다.
음수를 사용하여 현재 셀의 위 또는 왼쪽에 있는 셀을 참조할 수 있습니다.
'A1셀에서 D5셀 상대참조
'=D5
Range("a1").FormulaR1C1 = "=R[4]C[3]"
혼합 참조
셀 참조는 어떤 부분은 상대적이고 어떤 부분은 절대적일 수 있습니다. 예시:
'A1셀에서 D5셀 참조(상대 행, 절대 열)
'=$D5
Range("a1").FormulaR1C1 = "=R[4]C4"
VBA Formula 속성
.Formula 속성을 사용하여 수식을 설정할 때는 항상 A1 스타일 표기법을 사용합니다. 따옴표로 둘러싸인 것을 제외하고는 Excel 셀에서와 마찬가지로 수식을 입력합니다:
'하드코딩된 수식을 단일 셀에 할당합니다.
Range("b3").Formula = "=b1+b2"
VBA Formula 사용 팁
변수를 활용한 수식
VBA에서 수식으로 작업할 때 셀 수식 내에서 변수를 사용하는 경우가 일반적입니다. 변수를 사용하려면 &를 사용하여 변수를 나머지 수식 문자열과 결합합니다. 예시:
Sub Formula_Variable()
Dim colNum As Long
colNum = 4
Range("a1").FormulaR1C1 = "=R1C" & colNum & "+R2C" & colNum
End Sub
Formula 내의 따움표
수식 내에 따옴표(“)를 추가해야 하는 경우 따옴표를 두 번(“”) 입력합니다:
Sub Macro2()
Range("B3").FormulaR1C1 = "=TEXT(RC[-1],""mm/dd/yyyy"")"
End Sub
따옴표(“)는 VBA에서 텍스트 문자열의 끝을 나타냅니다. 반면 따옴표를 두번 입력하면(“”) 텍스트 문자열 내에서 따옴표처럼 취급됩니다.
문자열을 따옴표(“)로 둘러싸려면 따옴표(“”) 3개를 다음과 같이 입력 하세요.
MsgBox """문자열을 따옴표로 묶으려면 따움표 3개를 사용하세요"""
'이렇게 하면 <"문자열을 따옴표로 묶으려면 따움표 3개를 사용하세요"> 가 메시지박스에 출력됩니다다.
문자열 변수에 셀 수식 할당하기
셀 또는 범위의 수식을 읽고 문자열 변수에 할당할 수 있습니다:
'변수에 셀 수식 할당하기
Dim strFormula as String
strFormula = Range("B1").Formula
셀에 수식을 추가하는 다양한 방법
다음은 셀에 수식을 할당하는 방법에 대한 몇 가지 예시입니다:
- 직접 수식 할당하기
- 수식을 포함하는 문자열 변수 정의하기
- 변수를 사용하여 수식 만들기
Sub MoreFormulaExamples ()
' B1셀에 SUM 수식을 추가하는 다른 방법
'
Dim strFormula as String
Dim cell as Range
dim fromRow as long, toRow as long
Set cell = Range("B1")
' 직접 수식 할당하기
cell.Formula = "=SUM(A1:A10)"
' 변수에 수식을 저장하기
' 변수를 Formula 속성에 할당하기
strFormula = "=SUM(A1:A10)"
cell.Formula = strFormula
' 변수를 사용하여 수식 만들기
' 변수를 Formula 속성에 할당하기
fromRow = 1
toRow = 10
strFormula = "=SUM(A" & fromValue & ":A" & toValue & ")
cell.Formula = strFormula
End Sub
수식 새로 고침
수식을 새로 고치려면 Calculate 명령을 사용하면 됩니다:
Calculate
단일 수식, 범위 또는 전체 워크시트를 새로 고치려면 .Calculate를 사용합니다:
Sheets("Sheet1").Range("a1:a10").Calculate