엑셀 시트 데이터 삭제 :: Delete_Record 명령문 사용법 총정리
엑셀 Delete_Record 명령문 목차 바로가기
요약
엑셀 Delete_Record 함수는 시트에서 지정한 ID 또는 행번호의 데이터를 삭제하는 사용자 지정 함수입니다.
명령문 구문
Delete_Record 시트, ID, [행번호여부], [ID열]
사용된 인수 및 변수 알아보기
인수 | 설명 |
시트 [WorkSheet] |
데이터를 삭제할 시트입니다. 현재 실행중인 통합문서의 시트를 시트명으로 참조하려면 시트를 아래와 같이 지정합니다.
ThisWorkBook.WorkSheets("시트명") |
ID [Variant] |
삭제할 데이터의 ID 또는 행번호입니다. 숫자와 문자 형태 모두 입력가능합니다. |
행번호여부 [Boolean, 선택인수] |
TRUE일 경우 입력한 ID값을 행 번호로 참조합니다. 기본값은 FALSE 입니다. |
ID열 [Long, 선택인수] |
ID가 입력된 열을 지정합니다. 기본값은 1 입니다. |
예제파일 다운로드
- [엑셀VBA함수] Delete_Record 명령문예제파일
상세 설명
엑셀 Delete_Record 함수는 시트에서 지정한 ID 또는 행번호의 데이터를 삭제하는 사용자 지정 함수입니다. ID는 숫자와 문자 형태로 모두 입력 가능합니다.
ID가 없을 경우 [행번호여부]를 TRUE로 설정한 뒤, 행번호를 참조하여 데이터를 삭제할 수도 있습니다. ID열의 기본값은 1이며, 다른 열에 위치한 ID를 참조해야 할 경우 [ID열] 참조할 열 번호로 변경합니다.
Delete_Record 함수는 데이터베이스 관련 VBA 함수 중 하나입니다. 더 다양한 종류의 데이터베이스 관련 함수는 아래 링크에서 자세히 확인할 수 있습니다.
실전 사용 예제
- '직원DB' 시트에서 ID가 7인 데이터를 삭제하기
'시트명 : 직원DB
Delete_Record ThisWorkBook.WorkSheets("직원DB"), 7 - '제품DB' 시트에서 10번째 행의 데이터를 삭제하기
'시트명 : 제품DB
Delete_Record ThisWorkBook.WorkSheets("제품DB"), 10, TRUE
엑셀 시트 데이터 삭제, Delete_Record 명령문 동작원리
Delete_Record 명령문 전체 코드
Sub Delete_Record(WS As Worksheet, ID, Optional IsRowNo As Boolean = False, Optional IDcol As Long = 1) '############################################################### '오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com) '수정 및 배포 시 출처를 반드시 명시해야 합니다. '■ Delete_Record 함수 '■ 시트의 특정 데이터를 삭제합니다. 삭제할 ID를 입력하거나 행번호로 직접 지정할 수 있습니다. '■ 사용방법 'Delete_Record ThisWorkBook.WorkSheets("시트명"), 4 '▶ 인수 설명 '_____________WS : 데이터를 삭제할 시트입니다. '_____________ID : 데이터를 삭제하기 위하여 참조할 ID 또는 행번호입니다. '_____________IsRowNo : [선택인수] TRUE일 경우 입력한 행 번호의 데이터를 삭제합니다. 기본값은 FALSE 입니다. '_____________IDCol : [선택인수] ID가 입력된 열 번호입니다. 기본값은 1 입니다. '############################################################### Dim i As Long Dim cRow As Long If IsNumeric(ID) = True Then ID = CLng(ID) With WS If IsRowNo = False Then cRow = .Cells(.Rows.Count, IDcol).End(xlUp).Row For i = 1 To cRow If .Cells(i, IDcol).Value = ID Then .Cells(i, 1).EntireRow.Delete: Exit For Next Else .Cells(ID, 1).EntireRow.Delete End If End With End Sub
명령문 동작원리 단계별 알아보기
- 변수를 선언합니다.
Dim i As Long Dim cRow As Long
- 받아온 ID가 숫자값일 경우, 정수형태로 변경합니다.
If IsNumeric(ID) = True Then ID = CLng(ID)
- [행번호여부]가 False일 경우, 데이터베이스의 ID를 참조하여 데이터를 삭제합니다.
With WS If IsRowNo = False Then cRow = .Cells(.Rows.Count, IDcol).End(xlUp).Row For i = 1 To cRow If .Cells(i, IDcol).Value = ID Then .Cells(i, 1).EntireRow.Delete: Exit For Next
- [행번호여부]가 True일 경우, 데이터베이스의 n번째 행 데이터를 삭제합니다.
Else .Cells(ID, 1).EntireRow.Delete End If End With
- '직원DB' 시트에서 ID가 7인 데이터를 삭제하기