별의 공부 블로그 🧑🏻‍💻
728x90
728x170

프로시저 작성 문제 정리 (액셀/스프레드시트)

 

문제 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

 


 

728x90
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖