728x90

이번 포스팅은 VBA를 이용한 간단한 함수를 만들고 그 코드가 어떤 기능을 하는지 설명하는 글을 작성하겠다.

 

https://jfbta.tistory.com/34

 

VBA 기초] 엑셀 매크로 사용방법

엑셀을 배우기 시작하셨다면 매크로 사용법을 알면 많은 데이터를 반복적으로 작업할 때 빠르게 작업할 수 있다. 이번 포스팅은 굳이 VBA코드를 직접 작성하지 않아도 되는 기본적인 사용법이다. 우선 엑셀을 키..

jfbta.tistory.com

혹시 엑셀 매크로 및 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
TOP