본문 바로가기

엑셀로 풀어가는 세상

엑셀 VBA #34 / 사용자정의 함수 [VBA]

엑셀 VBA #34 / 사용자정의 함수 [VBA]

1. 목적 : VBA코딩시 자주 사용되는 수식을 함수화하여 편이성 도모
2. 구조
    Function 함수명(인수1,인수2,....) As 자료형
       ~~~~~
    End Function
함수명 : 워크시트함수와 동일하면 안됨
자료형 예시 : Integer, Long,....

3. 활용
'엑셀 VBA #32 / 자동필터_1 [VBA]'에서 사용한 'rng.SpecialCells(xlCellTypeVisible).Count'을 사용자정의함수로 만들기
 
4. 코드
Dim sh1 As Worksheet
Dim rng As Range

Set sh1 = Sheets("자동필터")
Set rng = Range("A1").CurrentRegion

If sh1.AutoFilterMode = False Then rng.AutoFilter
If sh1.FilterMode = True Then sh1.ShowAllData

rng.AutoFilter 2, Range("E2")

Range("A20").CurrentRegion.Clear
If Fcnt(rng) = 3 Then                            '사용자정의함수 적용
    MsgBox "해당되는 조건의 데이타가 없음"
    Exit Sub
End If

rng.SpecialCells(xlCellTypeVisible).Copy Range("A20")
End Sub

Function Fcnt(rng As Range) As Long
    Fcnt = rng.SpecialCells(xlCellTypeVisible).Count     
End Function

vba#34.xlsm
0.02MB


https://www.youtube.com/watch?v=sVEJnYuYvQE&list=PLfxvqpVCYZ8e0qlyc_FU46neoWjO7yTWj&index=34

반응형