728x90
이번 포스팅은 VBA를 이용한 간단한 함수를 만들고 그 코드가 어떤 기능을 하는지 설명하는 글을 작성하겠다.
혹시 엑셀 매크로 및 VBA코드에 사용법에 대해 잘 모르시는 분들은 먼저 올린 위 게시글을 읽고 오시기 바랍니다.
Sub 널값채우기()
Dim r
For Each r In Selection
If IsEmpty(r) Then
r.Value = r.Offset(-1, 0).Value
End If
Next r
End Sub
(소스만 필요하신 분은 위에 코드블럭을 이용해주세요.)
Sub 널값채우기()
Dim r // 변수 선언 문법이다.
For Each r In Selection // 여기서 r은 Selection 값을 받게되는데
// 이 것은 엑셀에서 클릭해서 선택한 범위에 있는 값을 말한다.
If IsEmpty(r) Then // 다들아시다시피 IF 조건문이고 r 값이 비었을 때를 말한다.
r.Value = r.Offset(-1, 0).Value // r의 값에 r.Offset은 선택한 셀위치(r)에서
// ([행]-1, [열]0)을 기준으로 하는 위치를 말한다.
End If
Next r
End Sub
이 코드는 실제로 작업할 때 만들었던 메서드다.
보통 자바랑 비교를 하면 int r; 이렇게 선언을 하는데 VBA에서는 Dim은 지역변수로써 선언할 때 사용하는 함수정 도로 생각하면 된다. ( 변수 선언 타입은 나중에 더 자세하게 포스팅하겠습니다. )
데이터 타입을 지정할 땐
'Dim r as integer' 여기서 integer가 데이터 타입이다.
그렇다면 데이터 타입을 지정해주지 않은 Dim r은 Dim r as Variant와 같다.
즉 특정한 데이터 타입을 선언하지 않아도 기본값으로 Variant가 지정된다는 것이다.
이제 이 메서드를 실행하면 결과는 선택한 셀의 값이 비어있으면 선택한 셀 위치에 행이 -1인 바로 위에 있는 셀의 값을 저장한다.
끝까지 읽어주셔서 감사합니다.
728x90
'기타 > Excel(VBA)' 카테고리의 다른 글
VBA 예제 ] VBA코드로 선택한 값이 특정값일 때 행전체 삭제(2탄) (4) | 2021.01.16 |
---|---|
VBA 기초] 디버깅 및 값 출력 / VBA코드 사용방법(2탄) (0) | 2021.01.15 |
VBA 예제 ] VBA코드로 선택한 값이 특정값일 때 행전체 삭제 (3) | 2020.04.06 |
VBA 예제] VBA 콤마(,)기준으로 셀값 분리하기 / VBA 콤마 기준 분리 (0) | 2020.04.03 |
VBA 기초] 엑셀 매크로 사용방법 / VBA코드 사용방법 (0) | 2020.04.02 |