컴퓨터활용(컴활) 공부

[스프레드시트] 실기 컴활 문제 풀자 (프로시저, Hour, Column)

미스털이 사용자 2024. 1. 24. 16:42
반응형

(문제 출처 : https://blog.naver.com/hellstudy/223302615932 )

 

​​​​​​​​​액셀 컴활 실기문제를 계속해서 풀어보자.

 

 

 

 

===

 

폼이 나타나게끔 구현하는 것

그외 초기화될 때 설정될 것들

 

단추 클릭에 대한 sub프로시저를 만드려면

[개발도구]->[디자인 모드]를 실행하고

해당 버튼을 더블클릭해야 sub프로시저가 생성된다.

 

다음과 같이

열고자 하는 폼의 이름을 쓰고,

Show함수 호출

 

 

한편

폼의 초기화를 담당할 sub프로시저를 만드려면

1) 폼 선택

2) 코드 보기 아이콘 클릭

3) 객체 선택

4) 객체의 이벤트 선택

5) 완성

 

그리고 항목 초기설정 코드는

다음과 같이 써주면 된다.

Private Sub UserForm_Initialize()

    'cmb구분 초기화
    cmb구분.RowSource = ["M6:N8"]
    
    '보호자동반 초기화
    opt유.Value = True
    
End Sub
 

 

 

===

 

CurrentRowsCount 함수

값 셋팅

 

 

먼저 객체와 이벤트 선택해서

Sub프로시저 생성

 

 

[기준].CurrentRegion.Rows.Count + 공백개수

먼저 B4를 기준으로

위의 공백이 4이므로

 

 

이렇게 만들고 테스트해보자

 

 

잘 되는 것 같다.

CurrentRegion관련 스크립트를 수정하지 않고

계속 진행한다.

 

 

완성된 코드는 다음과 같다.

여기서

Hour(시간형식 문자열) = 시간 단위의 숫자만 리턴

선택형식.Column(n) = n+1번째 열의 값을 리턴

Private Sub cmd등록_Click()
    i = [B5].CurrentRegion.Rows.Count + 4
    
    Cells(i, 2) = cmb구분.Value
    
    Cells(i, 3) = txt아동명.Value
        
    If opt유.Value = True Then
        보호자동반 = "유"
    ElseIf opt무.Value = True Then
        보호자동반 = "무"
    End If
    Cells(i, 4) = 보호자동반
    
    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
 

 

===

 

종료 프로시저 만들기

 

 

날짜+시간 = Now

날짜 = Date

시간 = Time

 

그리고 MsgBox의 1번째 인자는 "메세지"

3번째 인자는 "타이틀"인 것을 참고해서

 

아래와 같은 코드를 작성

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

 

<완성>

 

반응형