컴퓨터활용(컴활) 공부

엑셀 컴활 실기 풀어보기 (Column메소드, 폼, CurrentRegion메소드)

미스털이 사용자 2023. 12. 6. 19:26
반응형

아래문제 출처 ( https://m.cafe.daum.net/hermingway/ZYwR/38 )

​엑셀 컴활 문제를 계속 풀어보자.

 

 

 

 

======

 

폼 띄우기 실행 설정

폼 초기화 설정 (목록 설정, 초기값 설정)

 

 

[개발도구]->[디자인 모드] 활성

팡팡요금관리 버튼 더블클릭

 

Private Sub cmd등록작업_Click()
    팡팡요금관리.Show
End Sub
 

위와 같이 스크립트 입력해준 후,

디자인 모드 한 번 더 눌러서 비활성화

 

 

폼 초기화는 우선 관련 프로시저 생성을 해줘야 한다.

Alt+F11 단축키 눌러서 VBA창 띄운 후,

팡팡요금관리 폼 클릭 후,

코드 창 열기 버튼 누르고,

UserForm, Initialize를 선택해서 폼초기화 구현을 위한 Sub프로시저 생성

 

 

Private Sub UserForm_Initialize()
    cmb구분.RowSource = "M6:N8"
    opt유 = True
End Sub
 

위와 같이 해주면 목록과 체크 초기화 설정이 된다.

 

===

CurrentRegion 메소드 이용해서 연속 추가 기능 구현하기

Column메소드 이용해서 구분과 기본요금 값 설정하기

 

먼저 객체, 이벤트 선택해서 Sub프로시저 생성

CurrentRegion이용해서 추가할 행의 값 구하기

i = [넣으려는 테이블의 최상단 좌측 셀].CurrentRegion.Rows.Count + 테이블 제외한 여백

 

 

i = [b5].CurrentRegion.Rows.Count + 4

 

 

그리고 완료된 스크립트는 다음과 같다.

Private Sub cmd등록_Click()
    i = [b5].CurrentRegion.Rows.Count + 4
    
    Cells(i, 2) = cmb구분.Column(0)
    
    Cells(i, 3) = txt아동명.Value
    
    If opt유 = True Then
        Cells(i, 4) = "유"
    ElseIf opt무 = True Then
        Cells(i, 4) = "무"
    End If
    
    Cells(i, 5) = (Hour(txt퇴장시간) - Hour(txt입장시간)) * cmb구분.Column(1)
    
    Cells(i, 6) = txt입장시간.Value
    
    Cells(i, 7) = txt퇴장시간.Value
    
    Cells(i, 8) = cmb구분.Column(1)
    
End Sub
 
 

 

 

===

창 닫기

msgBox 실행

Sub프로시저 등록 후,

다음과 같이 만든다.

MsgBox의 세번째 인자값에 상단 타이틀 속성값을 넣으면 된다는 걸 참고하자.

Private Sub cmd종료_Click()
    MsgBox Now, , "등록화면을 종료합니다."
    Unload Me
End Sub
 

 

 

<테스트 화면>

 

반응형