컴퓨터활용(컴활) 공부

엑셀 컴활 실기 풀어보기 (msgBox+조건식, CurrentRegion)

미스털이 사용자 2023. 12. 13. 22:22
반응형

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

 

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

 

 

 

===

 

폼 나타내기

텍스트 자동입력

콤보상자 설정

 

[개발도구]->[디자인 모드] 클릭해서 활성화

그리고 버튼을 더블클릭해서 Sub프로시저 만든다.

 

다음과 같이

폼 개체를 띄우는 함수Show를 써준다.

 

그리고 폼 개체 내에서 초기화(텍스트 자동입력, 콤보박스 세팅)를 위해

다음과 같이 폼의 [코드 창]을 열고,

개체(UserForm), 이벤트(Initialize)를 선택해서

해당 Sub프로시저를 만든다.

 

 

그리고 초기화 구현을 한다.

Private Sub UserForm_Initialize()

    txt구매일.Value = Date
    cmb비품명.RowSource = "H4:H15"
    
End Sub
 

 

===

마지막 행 다음에 연속하여 추가하기

-> CurrentRegion.Rows.Count 이용하기

 

 

Sub프로시저를 생성

 

 

CurrentRegion을 사용하기 전에 꼭 생각해야할 것

1) 테이블의 가장 좌측상단의 셀 주소 : A3

2) 테이블 위의 공백 개수 : 2개

 

 

위 사항을 생각하고

CurrentRegion을 사용하자.

 

i = [A3].CurrentRegion.Rows.Count() + 2

 

과연 추가될 행의 값이 맞는지 확인하고

 

다음과 같이 코드를 짠다.

 

Private Sub cmd등록_Click()
    i = [A3].CurrentRegion.Rows.Count() + 2
    
    Cells(i, 1) = txt구매일.Value
    Cells(i, 2) = cmb비품명.Value
    Cells(i, 3) = txt취득원가.Value
    Cells(i, 4) = txt내용연수.Value
    Cells(i, 5) = txt잔존가치.Value
    
    
    '감가상각비 계산값 넣기
    Cells(i, 6) = (txt취득원가.Value - txt잔존가치.Value) / txt내용연수.Value
    
    
End Sub
 

 

테스트하기

 

 

 

===

msgBox

타이틀 설정 (3번째 인자)

현재 날짜와 시간 = NOW함수 (1번째 인자)

확인 버튼 1개 = vbOkOnly (2번째 인자) = 이걸 눌러야만 폼 종료

 

개체, 이벤트 선택해서

Sub프로시저 생성

 

우선 msgBox를 다음과 같이 완성

 

그런데 여기서 "확인"버튼을 눌러야만 종료되기 때문에

다음과 같이 만들기

(값을 리턴 받을 때 함수 괄호를 반드시 써준다.)

Private Sub cmd종료_Click()
    응답받은값 = MsgBox(Now, vbOKOnly, "화면종료")
    
    If 응답받은값 = vbOK Then
        Unload Me
    End If
End Sub
 

 

 

테스트 한다.

 

반응형