책 내용 질문하기
컴활1급 실기 1권(엑셀 기본서) : 18(프로시저) - 기출문제4-2번 질문입니다.
도서
2021 시나공 컴퓨터활용능력 1급 실기
페이지
254
조회수
245
작성일
2021-02-12
작성자
탈퇴*원
첨부파일
Private Sub cmd입력_Click()
    If IsNull(lst과목.Value) Then
        lst과목.ListIndex = 0
        txtID = "선택안함"
    Else
        참조행 = lst과목.ListIndex
        입력행 = [a3].Row + [a3].CurrentRegion.Rows.Count
        Cells(입력행, 1) = UCase(txtID.Value)
        Cells(입력행, 2) = txt이름.Value
        Cells(입력행, 3) = lst과목.List(참조행, 0)
        Cells(입력행, 4) = lst과목.List(참조행, 1)
        Cells(입력행, 5) = lst과목.List(참조행, 2)
        Cells(입력행, 6) = lst과목.List(참조행, 3) - _
        (lst과목.List(참조행, 3) * 0.1)
        txtID.Value = ""
        txt이름.Value = ""
        txt날짜.Value = ""
        lst과목.Value = ""
    End If
End Sub

1 -> lst과목.listindex=0으로 설정하는 이유가 이해되지 않고 txtid= " 선택안함"은 목록상자에서 과목을 선택하지 않으면 표시하는데 else문에서 작성하지 않고 if에서 작성되는지 이해가 안됩니다.
2 - > lst과목,List(참조행, 0 ) = 0행 0열이 되는데 list과목 목록 상자의 1행 1열 데이터인 값을 가져올 수 있는지 궁금합니다.
답변
2021-02-16 16:46:14

lst과목.ListIndex=0 이라고 하면, 'lst과목' 리스트의 인덱스를 0으로 설정하는 것이지요.

 

즉, lst과목의 첫 번째 데이터가 선택되는 것입니다.

 

lst과목의 내용을 선택하지 않았을 때 표시될 내용이므로 

 

 If IsNull(lst과목.Value) Then 

 

안에 작성하는 것입니다. 

 

내용이 선택된 경우 else 의 내용을 실행하게 되죠. 

 

2. ListIndex 는 폼의 목록 상자에서 선택한 항목의 순서값을 말합니다.

 

목록 상자에

A001 컴활1급 이선진 80,000

A002 컴활2급 김영국 60,000

 

위와 같은 값이 있다고 했을 때, 폼에서 A001 을 선택하면 lst과목.ListIndex 는 0이 됩니다.

A002를 선택하면 lst과목.ListIndex 는 1가 됩니다.

그 다음 항목들은 마찬가지로 2, 3, 4 ... 가 됩니다.

 

Cells(입력행, 3) = lst과목.List(참조행, 0)

 

에서 (참조행, 0)은 lst과목의 RowSource 로 등록된 데이터의 참조행, 0열의 데이터를 말합니다.

참조행이 0일 경우에는 lst과목.List(0, 0)은 A001을 나타냅니다.

 

좋은 하루 되세요. 

  • 관리자
    2021-02-16 16:46:14

    lst과목.ListIndex=0 이라고 하면, 'lst과목' 리스트의 인덱스를 0으로 설정하는 것이지요.

     

    즉, lst과목의 첫 번째 데이터가 선택되는 것입니다.

     

    lst과목의 내용을 선택하지 않았을 때 표시될 내용이므로 

     

     If IsNull(lst과목.Value) Then 

     

    안에 작성하는 것입니다. 

     

    내용이 선택된 경우 else 의 내용을 실행하게 되죠. 

     

    2. ListIndex 는 폼의 목록 상자에서 선택한 항목의 순서값을 말합니다.

     

    목록 상자에

    A001 컴활1급 이선진 80,000

    A002 컴활2급 김영국 60,000

     

    위와 같은 값이 있다고 했을 때, 폼에서 A001 을 선택하면 lst과목.ListIndex 는 0이 됩니다.

    A002를 선택하면 lst과목.ListIndex 는 1가 됩니다.

    그 다음 항목들은 마찬가지로 2, 3, 4 ... 가 됩니다.

     

    Cells(입력행, 3) = lst과목.List(참조행, 0)

     

    에서 (참조행, 0)은 lst과목의 RowSource 로 등록된 데이터의 참조행, 0열의 데이터를 말합니다.

    참조행이 0일 경우에는 lst과목.List(0, 0)은 A001을 나타냅니다.

     

    좋은 하루 되세요. 

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