책 내용 질문하기
프로시저 작성
도서
2018 시나공 컴퓨터활용능력 1급 실기(엑셀, 액세스 2010 사용자용)
페이지
170
조회수
64
작성일
2018-08-17
작성자
탈퇴*원
첨부파일

2016년 3회 컴퓨터활용능력 1급 실기 문제4번의 2에 해당하는 내용 중 두번째 질문에 대한 내용입니다.

-----------------------------------------------------

'성적등록화면' 폼의 <등록> 단추를 클릭하면 폼에 입력된 데이터가 [표1] 에 입력되어 있는 마지막 행 다음에

연속하여 추가되도록 프로시저를 작성하시오.

-> '학번'과 '성명'에는 선택된 수강자(cmb수강자)에 해당하는 학번과 성명을 각각 표시

-> '출석'은 '20-(결석*2+지각*1)'로 계산

-> '비고'는 '출석'이 12보다 작으면 "출석미달"로 표시

-> if문 사용

-----------------------------------------------------

답안에는 다음과 같이 되어있습니다.

Private Sub cmd등록_Click()

입력행 = [b4].Row + [b4].CurrentRegion.Rows.Count
Cells(입력행, 2) = cmb수강자.Column(0)
Cells(입력행, 3) = cmb수강자.Column(1)
Cells(입력행, 4) = Val(txt결석)
Cells(입력행, 5) = Val(txt지각)
Cells(입력행, 6) = 20 - (txt결석 * 2 + txt지각 * 1)
Cells(입력행, 7) = Val(txt과제)
Cells(입력행, 8) = Val(txt평가)
If Cells(입력행, 6) < 12 Then
Cells(입력행, 9) = "출석미달"

End if

End Sub

-----------------------------------------------------

그럼 이제 여기서 질문을 드리려고 합니다.

질문 1. 제가 이해한 내용이 맞는지 확인부탁드리겠습니다.

Cells(입력행, 2) = cmb수강자.Column(0)
Cells(입력행, 3) = cmb수강자.Column(1)

이 부분은 처음 폼이 초기화될 때 참조해야될 목록을 지정하였기 때문에 열번호만 지정하여 값을 표시하면 되기때문에

Column을 사용하는 것으로 알고 있습니다. 이것이 맞나요? Column은 열번호가 0부터 시작하기 때문에 0을 사용한

것 이구요.

질문 2. 값 설정

Cells(입력행, 4) = Val(txt결석)
Cells(입력행, 5) = Val(txt지각)
Cells(입력행, 6) = 20 - (txt결석 * 2 + txt지각 * 1)
Cells(입력행, 7) = Val(txt과제)
Cells(입력행, 8) = Val(txt평가)

이 부분에서 Val은 값으로 설정하기 위한 것으로 알고 있는데, 문제에서는 값으로 변경하라는 일체의 언급도 없었습니다. 허나 실제 해설에서는 값으로 변경하였습니다. 그렇다면 모든 숫자에 대해서 입력받은 것들은 전부 Val을 사용하여

값으로 변경해야 하나요?

질문 3. 질문2 연결

Cells(입력행, 6) = 20 - (txt결석 * 2 + txt지각 * 1)

이 부분에서 Cells(입력행, 6) = 20 - (Val(txt결석) * 2 + Val(txt지각) * 1) 이렇게 변경하여 사용해도 상관이 없나요?

Val을 사용하고 안하고의 차이점에 대해서 말씀해주셨으면 좋겠습니다.

또한 필수적으로 사용하는 경우는 문제에서 언급한 경우 외에 더 있는지 알고 싶습니다.

질문 4. 참조행(질문 1 연결)

질문 1과 같이 앞의 문제에서 참조해야되는 부분을 폼의 초기에 설정하면 Column을 이용하여 입력행에 표시할 수

있지만 그렇지 않은 경우 참조행을 사용해서 표시해야 하는 것으로 알고 있습니다.

이 참조행에 대해서 교재에도 나와있지만, 잘 이해가 되지 않습니다.

혹시 196페이지(2016년 1회 컴퓨터활용능력 1급 실기)의 해설을 기반으로 더욱 상세히 설명해주실수 있을까요?

다른 부분은 다 할 수 있지만, 참조행이 들어가는 경우는 이해가 되지 않아 이 부분에 대해서만 상세히 설명해주시면 정말 감사하겠습니다.

답변
2018-08-18 18:34:41

안녕하세요.

질문1) 네, 맞습니다.


질문2) 'txt결석' 등의 컨트롤은 '숫자 형식의 문자' 데이터를 가지고 있습니다.

이 숫자 형식의 문자 데이터를 숫자 데이터로 변경해 주는 함수가 VAL()입니다.

숫자 형식의 문자데이터를 숫자로 변경할 때는 VAL 함수를 사용해야 합니다.


질문3)
val은 문자로 받은 데이터을 숫자로 나타낼때 쓰이는 것입니다.

하지만 수량이나 단가는 대부분 숫자로 입력을 받습니다. 문자로 입력이 된다 하더라도 숫자의 형식을 가지고 있기 때문에 계산이 가능 합니다.

만약 val을 쓰지 않고도 계산이 가능 하다면 val을 사용 하지 않으셔도 됩니다.

물론 사용 하셔도 되구요.

지시사항에 val를 꼭 사용 하라고 되어 있지 않고, val을 사용 하지 않아도 계산이 가능 하다면 val를 사용 하시지 않으셔도 됩니다.


질문4)
list 박스에 입력되어 있는 값을 이용하여 구해야 하므로 listindex 를 사용한 것입니다.

listindex 를 사용하는 문제는 엑셀 시트에 입력된 자료를 찾아 사용하는 것입니다.


참조행= lst방이름.listindex + 5

+5는 실제 방이름이 포함되는 셀의 위치가 어디인지 지시합니다.
첫 번째 방인 '장미'가 5행에 위치하고 있습니다.

Cells(입력행,5)=Cells(참조행, 10)

Cells(입력행,5)의 위치에 참조행 5행 10열 위치의 값을 넣는 것입니다. 5행 10열에는 첫 번째 방이름 장미가 위치합니다.
폼의 lst방이름에서 사용자가 클릭한 위치에 첫번째 위치 +5를 해서 값을 받아 옵니다.

예를 들어폼에서 방이름 '진달래'를 선택했다면
'진달래'는 인덱스(0,1,2 순서로) 두 번째이기때문에
참조행은 lst방이름.listindex + 5이기 때문에 2+5=7이 됩니다.
Cells(입력행,5)=Cells(참조행, 10)로, 시트 Cells(7,10) 위치의 값 (진달래)를 (입력행,5) 셀에 넣어주는 것입니다.

좋은 하루 보내세요.

  • *
    2018-08-18 18:34:41

    안녕하세요.

    질문1) 네, 맞습니다.


    질문2) 'txt결석' 등의 컨트롤은 '숫자 형식의 문자' 데이터를 가지고 있습니다.

    이 숫자 형식의 문자 데이터를 숫자 데이터로 변경해 주는 함수가 VAL()입니다.

    숫자 형식의 문자데이터를 숫자로 변경할 때는 VAL 함수를 사용해야 합니다.


    질문3)
    val은 문자로 받은 데이터을 숫자로 나타낼때 쓰이는 것입니다.

    하지만 수량이나 단가는 대부분 숫자로 입력을 받습니다. 문자로 입력이 된다 하더라도 숫자의 형식을 가지고 있기 때문에 계산이 가능 합니다.

    만약 val을 쓰지 않고도 계산이 가능 하다면 val을 사용 하지 않으셔도 됩니다.

    물론 사용 하셔도 되구요.

    지시사항에 val를 꼭 사용 하라고 되어 있지 않고, val을 사용 하지 않아도 계산이 가능 하다면 val를 사용 하시지 않으셔도 됩니다.


    질문4)
    list 박스에 입력되어 있는 값을 이용하여 구해야 하므로 listindex 를 사용한 것입니다.

    listindex 를 사용하는 문제는 엑셀 시트에 입력된 자료를 찾아 사용하는 것입니다.


    참조행= lst방이름.listindex + 5

    +5는 실제 방이름이 포함되는 셀의 위치가 어디인지 지시합니다.
    첫 번째 방인 '장미'가 5행에 위치하고 있습니다.

    Cells(입력행,5)=Cells(참조행, 10)

    Cells(입력행,5)의 위치에 참조행 5행 10열 위치의 값을 넣는 것입니다. 5행 10열에는 첫 번째 방이름 장미가 위치합니다.
    폼의 lst방이름에서 사용자가 클릭한 위치에 첫번째 위치 +5를 해서 값을 받아 옵니다.

    예를 들어폼에서 방이름 '진달래'를 선택했다면
    '진달래'는 인덱스(0,1,2 순서로) 두 번째이기때문에
    참조행은 lst방이름.listindex + 5이기 때문에 2+5=7이 됩니다.
    Cells(입력행,5)=Cells(참조행, 10)로, 시트 Cells(7,10) 위치의 값 (진달래)를 (입력행,5) 셀에 넣어주는 것입니다.

    좋은 하루 보내세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.