프로시저 작성 문제 정리 (액셀/스프레드시트)
문제 1
Q. '기타작업-3' 시트에서 다음과 같은 작업을 수행하도록 프로시저를 작성하시오.
① '성적관리' 단추를 클릭하면 <성적관리> 폼이 나타나고, 폼이 초기화 되면 '학과명(cmb학과명)' 콤보 상자의 목록에 [I7:I12] 영역의 값이 설정되도록 프로시저를 작성하시오.
② <성적관리> 폼의 '입력(cmd입력)' 단추를 클릭하면 폼에 입력된 데이터가 시트의 표에 입력되어 있는 마지막 행 다음에 연속하여 추가되도록 프로시저를 작성하시오.
▶ '학번(txt학번)' 컨트롤에 소문자로 입력해도 워크시트에는 대문자로 입력되도록 설정하시오. (Format 이용)
▶ 'TOEIC', '컴퓨터', '전공2'의 점수는 100 이하의 수치 데이터로 입력되도록 설정하고 100을 초과하는 경우에는 <그림>과 같은 메시지 박스가 표시되도록 설정하시오.
▶ 입력 후에는 '학과명(cmb학과명)'을 선택할 수 없도록 설정하시오.
③ '닫기(cmd닫기)' 단추를 클릭하면 전체 학생수를 표시한 메시지 박스를 표시한 후 폼을 종료하는 프로시저를 작성하시오.
①
Private Sub cmd성적관리_Click()
성적관리.Show
End Sub
Private Sub UserForm_Initialize()
cmb학과명.RowSource = "I7:I12"
End Sub
②
Private Sub cmd입력_Click()
If txt토익.Value > 100 Or txt컴퓨터.Value > 100 Or txt전공2.Value > 100 Then
MsgBox "점수는 0~100 사이의 값으로 입력하세요."
Else
입력행 = [b2].Row + [b2].CurrentRegion.Rows.Count
Cells(입력행, 2) = txt이름.Value
Cells(입력행, 3) = Format(txt학번.Value, ">&&&&&&")
Cells(입력행, 4) = cmb학과명.Value
Cells(입력행, 5) = txt토익.Value
Cells(입력행, 6) = txt컴퓨터.Value
Cells(입력행, 7) = txt전공2.Value
cmb학과명.Locked = True '입력 후에는 학과명(cmb학과명)을 선택할 수 없도록 설정
End If
End Sub
③
Private Sub cmd닫기_Click()
MsgBox "전체 학생수는 " & [b2].CurrentRegion.Rows.Count - 1 & "명입니다."
Unload Me
End Sub
문제 2
Q. '기타작업-3' 시트에서 다음과 같은 작업을 수행하도록 프로시저를 작성하시오.
① '콘도 이용요금' 단추를 클릭하면 <콘도이용> 폼이 나타나도록 설정하고, 폼이 초기화(Initialize) 되면 '콘도명(cmb콘도명)' 목록에는 [G4:H9] 영역의 값이 표시되도록 프로시저를 작성하시오.
② <콘도이용> 폼의 '조회(cmd조회)' 단추를 클릭하면 제일 마지막 데이터의 '고객번호', '콘도명', '이용일수', '사용요금'이 폼의 '고객번호(txt번호)', '콘도명(cmb콘도명)', '이용일수(txt일수)', '사용요금(txt요금)'에 각각 표시되도록 프로시저를 작성하시오.
※ 데이터를 추가하거나 삭제하여도 항상 마지막 데이터가 표시되어야 함.
③ <콘도이용> 폼의 '종료(cmd종료)' 단추를 클릭하면 '기타작업-2' 시트의 [F1]셀에 "컴활합격"을 입력한 후 폼을 종료하는 프로시저를 작성하시오.
①
Private Sub cmd등록_Click()
콘도이용.Show
End Sub
Private Sub UserForm_Initialize()
cmb콘도명.RowSource = "G4:H9"
End Sub
②
Private Sub cmd조회_Click()
입력행 = [A3].Row + [A3].CurrentRegion.Rows.Count - 1 '제일 마지막 행 선택
txt번호.Value = Cells(입력행, 1)
cmb콘도명.Value = Cells(입력행, 2)
txt일수.Value = Cells(입력행, 3)
txt요금.Value = Cells(입력행, 4)
End Sub
③
Private Sub cmd종료_Click()
['기타작업-2'!F1] = "컴활합격" '다른 워크시트의 셀을 참고할 경우 : ['워크시트명'!셀번호]
Unload Me
End Sub
문제 3
Q. '기타작업-3' 시트에서 다음과 같은 작업을 수행하도록 프로시저를 작성하시오.
① '레코드 판매량' 단추를 클릭하면 <레코드판매> 폼이 나타나도록 설정하고, 폼이 초기화(Initialize)되면 '판매일자(cmb판매일자)' 목록에는 현재 날짜부터 5일전까지의 날짜가 표시되도록 프로시저를 작성하시오.
② <레코드판매> 폼에 데이터를 입력하고, '입력(cmd입력)' 단추를 클릭하면 폼에 입력된 데이터가 '기타작업-3' 시트의 표에 입력되어 있는 마지막 행 다음에 연속해서 추가되도록 프로시저를 작성하시오.
▶ '판매액'은 입력받은 '판매수량', '판매단가'의 값을 이용하여 프로시저에서 작성하여 표시하시오. (판매액=판매수량 x 판매단가)
▶ 입력되는 데이터는 워크시트에 입력된 기존 데이터와 같은 형식의 데이터로 입력하고, '판매액'에는 천 단위 구분 기호를 표시하여 입력하시오.
▶ '할인여부(ch할인여부)'의 값이 선택된 경우 해당하는 '할인금액(판매수량x판매단가x10%)'이 '할인금액' 열에 입력되고 그렇지 않을 경우 0이 입력되도록 하시오.
▶ 워크시트에 데이터를 입력할 때 표의 제목 행과 입력 내용이 일치하도록 작성하시오.
▶ 입력 후에는 '음악종류(cmb종류)'가 선택되지 않도록 설정하시오.
※ 데이터를 추가하거나 삭제하여도 항상 마지막 데이터 다음에 입력되어야 함.
③ '기타작업-3' 시트를 활성화(Activate)하면 해당 시트의 [E20] 셀에 "컴활1급실기합격"이 나타나도록 프로시저를 작성하시오.
①
Private Sub cmd레코드판매량_Click()
레코드판매.Show
End Sub
Private Sub UserForm_Initialize()
cmb종류.RowSource = "J4:K8"
'현재 날짜부터 5일전까지의 날짜가 표시되도록 설정
cmb판매일자.AddItem Date - 5
cmb판매일자.AddItem Date - 4
cmb판매일자.AddItem Date - 3
cmb판매일자.AddItem Date - 2
cmb판매일자.AddItem Date - 1
cmb판매일자.AddItem Date
End Sub
②
Private Sub cmd입력_Click()
입력행 = [a3].Row + [a3].CurrentRegion.Rows.Count
Cells(입력행, 1) = cmb판매일자.Value
Cells(입력행, 2) = cmb종류.Value
Cells(입력행, 3) = txt수량.Value
Cells(입력행, 4) = txt단가.Value
Cells(입력행, 5) = Format(txt수량.Value * txt단가.Value, "#,###")
If ch할인여부.Value = True Then
Cells(입력행, 6) = txt수량.Value * txt단가.Value * 0.1
Else
Cells(입력행, 6) = 0
End If
cmb종류.Locked = True '음악종류 선택되지 않도록 설정
End Sub
③
Private Sub Worksheet_Activate()
[E20] = "컴활1급실기합격"
End Sub
문제 4
Q. '기타작업-3' 시트에서 다음과 같은 작업을 수행하도록 프로시저를 작성하시오.
① '요금 자료 입력' 단추를 클릭하면 <무선통신요금> 폼이 나타나도록 설정하고, <무선통신요금> 폼의 '정산년도(Lbl년도)' 레이블을 더블클릭하면 '정산년도(txt년도)' 텍스트 상자에 현재 시스템의 년도가 표시되도록 프로시저를 작성하시오. (Year, Date 함수 이용)
▶ '정산년도(txt년도)'를 입력하지 않았으면 '정산년도를 입력하세요', '고객명(txt고객)'을 입력하지 않았으면 '고객명을 입력하세요.', '등급코드(cmb코드)'를 선택하지 않았으면 '등급코드를 입력하세요'라는 메시지를 출력하고, 세 가지 모두 입력했을 때만 폼의 데이터를 워크시트에 입력하시오.
▶ 폼에서 선택된 등급코드에 해당하는 '시간당 단가', '기본요금', '할인요금'을 [참조표]에서 찾아 '무선 통신 전화요금' 표에 표시하시오.
※ 데이터를 추가하거나 삭제하여도 항상 마지막 데이터 다음에 입력되어야 함.
③ <무선통신요금> 폼의 '종료(종료)' 단추를 클릭하면 전체 입력 건수를 표시한 메시지 박스가 표시된 후 폼을 종료하는 프로시저를 작성하시오.
①
Private Sub cmd요금자료입력_Click()
무선통신요금.Show
End Sub
Private Sub Lbl년도_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
txt년도.Value = Year(Date)
End Sub
②
Private Sub 요금입력_Click()
If txt년도.Value = "" Then
MsgBox "정산년도를 입력하세요"
ElseIf txt고객.Value = "" Then
MsgBox "고객명을 입력하세요"
ElseIf cmb코드.Value = "" Then
MsgBox "등급코드를 선택하세요"
Else
참조행 = cmb코드.ListIndex + 4 '콤보 상자에서 상대적인 위치는 0에서 시작하므로 B를 선택헀다면 cmb코드.ListIndex는 1을 반환함.
입력행 = [A3].Row + [A3].CurrentRegion.Rows.Count
Cells(입력행, 1) = txt고객.Value
Cells(입력행, 2) = cmb코드.Value
Cells(입력행, 3) = Cells(참조행, 8)
Cells(입력행, 4) = Cells(참조행, 9)
Cells(입력행, 5) = Cells(참조행, 10)
End If
End Sub
③
Private Sub 종료_Click()
MsgBox "전체 입력 건수는 " & [A3].Row + [A3].CurrentRegion.Rows.Count - 1 & "건입니다." '[A3]에 연결된 범위에 있는 데이터의 행수에서 "필드명"이 있는 첫 행을 뺀 값
End Sub
※ [전체 입력 건수] = [A3].Rows + [A3].CurrentRegion.Rows.Count - 1
문제 4
Q. '기타작업-3' 시트에서 다음과 같은 작업을 수행하도록 프로시저를 작성하시오.
① '열차요금 계산' 단추를 클릭하면 <철도요금> 폼이 나타나고, [J4:L11] 영역의 값들이 '목록 상자(lst열차종류)'의 목록에 추가되고, 현재 시간이 '예약시간(txt예약시간)'에 표시되도록 프로시저를 작성하시오.
② <철도요금> 폼의 '등록(cmd등록)' 단추를 클릭하면 폼에 입력된 데이터를 시트의 표 마지막 행 다음에 추가하되, List, Listindex를 사용하여 프로시저를 작성하시오.
▶ 목록 상자(lst열차종류)에서 열차 종류를 선택했을 때만 폼의 데이터를 워크시트에 입력하시오.
▶ 목록 상자(lst열차종류)에서 열차 종류를 선택하지 않았으면 '고객번호(txt번호)'에 '선택안함'을 표시한 후 목록 상자(lst열차종류)의 첫 번째 항목이 선택되게 하시오.
▶ '고객번호' 앞에 입력 순서를 나타내는 번호와 '-'를 입력하고, '고객번호'는 대문자로 입력되도록 설정하시오. (Ucase 이용)
▶ '구분'은 '예약시간'에 따라 오전, 오후로 입력하시오.
▶ '요금총액'은 매수 x 요금으로 계산하여 입력하시오.
▶ 입력되는 데이터는 워크시트에 입력된 기존 데이터와 같은 형식의 데이터로 입력하시오.
▶ Format 사용
③ '기타작업-3' 시트를 활성화(Activate)하면 해당 시트의 [L1] 셀에 오늘 날짜가 입력되도록 이벤트 프로시저를 작성하시오.
④ 매수의 스핀(Spin매수) 단추를 누르면 증감된 숫자가 매수(txt매수)에 표시되도록 프로시저를 작성하시오.
①
Private Sub cmd열차요금계산_Click()
철도요금.Show
End Sub
Private Sub UserForm_Initialize()
lst열차종류.RowSource = "J4:L11"
txt예약시간.Value = Time
End Sub
②
Private Sub cmd등록_Click()
If IsNull(lst열차종류.Value) Then
txt번호.Value = "선택안함"
lst열차종류.ListIndex = 0
Else
참조행 = lst열차종류.ListIndex
입력행 = [a3].Row + [a3].CurrentRegion.Rows.Count
Cells(입력행, 1) = 입력행 - 3 & "-" & UCase(txt번호.Value)
Cells(입력행, 2) = Format(txt예약시간.Value, "hh:mm")
If txt예약시간.Value >= 0.5 Then
Cells(입력행, 3) = "오후"
Else
Cells(입력행, 3) = "오전"
End If
Cells(입력행, 4) = lst열차종류.List(참조행, 0)
Cells(입력행, 5) = lst열차종류.List(참조행, 1)
Cells(입력행, 6) = txt매수.Value
Cells(입력행, 7) = lst열차종류.List(참조행, 2) * txt매수.Value
End If
End Sub
③
Private Sub UserForm_Activate()
[L1] = Date
End Sub
④
Private Sub Spin매수_Change()
txt매수.Value = Spin매수
End Sub
문제 5
Q. '기타작업-3' 시트에서 다음과 같은 작업을 수행하도록 프로시저를 작성하시오.
① '요금계산' 단추를 클릭하면 <스포츠센터> 폼이 나타나고, 폼이 초기화 되면 [H4:I9] 영역의 내용이 '종목(cmb종목)' 콤보 상자의 목록에 표시되고, '남'과 '여'가 '성별(cmb성별)' 콤보 상자의 목록에 추가되도록 프로시저를 작성하시오.
② <스포츠센터> 폼의 '입력(cmd입력)' 단추를 클릭하면 폼에 입력된 데이터가 시트의 표 마지막 행 다음에 연속하여 추가되도록 프로시저를 작성하시오.
▶ '금액'은 '사용시간 x 종목별 단가'로 계산하여 천 단위마다 콤마를 표시하여 입력하시오.
※ 데이터를 추가하거나 삭제하여도 항상 마지막 데이터 다음에 입력되어야 함.
③ <스포츠센터> 폼의 '종료(cmd종료)' 단추를 클릭하면 '스포츠센터' 폼이 화면과 메모리에서 사라지도록 프로시저를 작성하시오.
①
Private Sub cmd요금계산_Click()
스포츠센터.Show
End Sub
Private Sub UserForm_Initialize()
cmb종목.RowSource = "H4:I9"
cmb성별.AddItem "남"
cmb성별.AddItem "여"
End Sub
②
Private Sub cmd입력_Click()
입력행 = [a3].Row + [a3].CurrentRegion.Rows.Count
참조행 = cmb종목.ListIndex + 4
Cells(입력행, 1) = txt고객번호.Value
Cells(입력행, 2) = cmb성별.Value
Cells(입력행, 3) = cmb종목.Value
Cells(입력행, 4) = txt사용시간.Value
Cells(입력행, 5) = Format(Cells(입력행, 4) * Cells(참조행, 9), "#,###")
End Sub
③
Private Sub cmd종료_Click()
Unload Me
End Sub
'Certificate > CSSD' 카테고리의 다른 글
[컴퓨터활용능력 1급 실기] 상시 시험 문제 복원 (0) | 2022.01.08 |
---|---|
[컴퓨터활용능력 1급 실기] '1004' 런타임 오류 (매크로, 데이터 통합) (0) | 2021.12.25 |
[컴퓨터활용능력 1급 실기] 액세스 과목 시험 대비 (0) | 2021.12.17 |
[컴퓨터활용능력 1급 실기] 액셀/스프레드시트 과목 시험 대비 (0) | 2021.12.17 |
[컴퓨터활용능력 1급 실기] 계산 작업 문제 정리 (액셀/스프레드시트) (2) | 2021.11.30 |
[컴퓨터활용능력 1급 실기] 처리 기능 (액세스) (0) | 2021.11.27 |
[컴퓨터활용능력 1급 실기] 쿼리(Query) (액세스) (0) | 2021.11.25 |
[컴퓨터활용능력 1급 실기] 조회 (액세스) (2) | 2021.11.25 |