책 내용 질문하기
엑셀 프로시저 질문입니다.
도서
[2011] 컴퓨터활용능력 1급 실기(엑셀, 액세스 2003 사용자용)
페이지
130
조회수
1375
작성일
2011-08-30
작성자
첨부파일

처음으로 질문 글 올려보네요.

엑셀에서 프로시저 부분이 가장 어려운데요 몇 가지 헷갈리는게 있어 질문드립니다.

2010년 제2회 실기 엑셀 E형을 보면(함수부록 책 p.130),

문제3번. <학원생등록>폼의 <입력(cmd입력)>버튼을 클릭하면 폼에 입력된 데이터를 시트의 표 안에 추가되도록 프로시저를 작성하시오(List,Listindex 이용).

라는 문제가 있습니다. 이와 같은 유형의 문제는 기출문제에서 계속 반복되고 있는데요 문제마다 해답이 조금씩 달라 헷갈리더라구요.

가령, 위 문제(2010년 2회 답안) 같은 경우는

참조행 = list강좌.listindex

입력행 = [a4].row + [a4].currentregion.rows.count

이렇게 답안이 시작되는데, 1) 어떤 기출문제에서는 '참조행 = ' 이부분을 생략하고 바로 '입력행 = '으로

시작하기도 하고, 어떤 기출문제에서는 반대로 입력행 부분은 빠지고 참조행만 입력할 때도 있더라구요.

그 차이가 뭔지 궁금합니다.

예) 2010년 2회 기출문제에서는 참조행과 입력행 모두 입력 / 2010년 1회 기출문제에서는 입력행만 입력 /

2009년 4회문제에서는 참조행만 입력

2) 또한, 참조행 부분을 작성할 때 어떤 기출문제에서는 실제로 데이터가 입력되기 시작하는 행의 번호를 Listindex 뒤에 + 시켜주는데 어떤 기출문제에서는 그렇지 않더라구요. 그 차이가 뭔가요?

예) 2010년 2회 기출문제에서는 참조행 = list강좌.listindex / 2009년 4회 기출문제에서는 참조행 = cmb제품명.Listindex + 4 / 2009년 3회 문제에서는 참조행 = cmb번호.Listindex + 6

3) 제 생각엔, 2010년 2회 기출문제의 문제3) 답안이 조금 틀린 듯 한데요,

참조행 = list강좌.Listindex

입력행 = [a4].row + [a4].currentregion.rows.count

이 아니라

참조행 = list강좌.Listindex + 4

입력행 = [b4].row + [b4].currentregion.rows.count

이 아닌지 궁금합니다.

답변
2011-08-31 11:50:52

문제의 지시사항에 따라 다른 것이죠.

참조행이 필요하다면 참조행을 쓰시고

입력행이 필요하다면 입력행을 쓰시면 됩니다.

보통 입력행은 폼의 내용을 셀에 입력할때 사용합니다.

그리고 참조행만 사용할때는 입력이 필요없는 폼에 조회를 하는 문제일 경우가 많습니다.

listindex 만 사용하는 문제와 list, listindex 사용하는 문제에서 차이가 납니다.

listindex 만 사용하는 것은 콤보상자의 위치를 이용하여 셀에 입력된 내용을 가져와 사용하는 문제가 많구요.

list, listindex 문제는 list박스에 입력된 내용중에서 선택 한 후 입력하는 문제입니다.

a4로 하시든 b4로 하시든 같은 행이기 때문에 상관은 없는데요.

헷갈리신다면 b4로 사용하세요. 학습하시는데 혼동을 드려 죄송합니다.

그리고 아래는 추가 설명입니다.

listindex와 list,listindex의 차이점을 설명 드릴께요.

첫번째 코드는 목록상자나 콤보상자에서 특정 행을 추출할 때 사용하고, 두번째 코드는 워크시트의 셀안의 내용을 가져올때 사용 하게 됩니다.

참조행 = lst과목.ListIndex
입력행 = [a2].Row + [a2].CurrentRegion.Rows.Count
Cells(입력행, 1) = txtID
Cells(입력행, 2) = txt이름
Cells(입력행, 3) = lst과목.List(참조행, 0)
Cells(입력행, 4) = lst과목.List(참조행, 1)
Cells(입력행, 5) = lst과목.List(참조행, 2)
Cells(입력행, 6) = lst과목.List(참조행, 3) - (lst과목.List(참조행, 3) * txt할인율)

여기에서 참조행에 lst과목.listindex 라고 정의해 두고
lst과목.list(참조행,0) 으로 사용 하고 있습니다.

이것은 참조행이 어디인지 지정해 놓고 lst과목에서 참조행의 위치와 0인.. 그러니깐 참조행이 만약 2이고 찾고자하는 것이 0행에 있다는 그런 뜻이 됩니다.

참조행 = lst열차종류.listindex + 4
입력행 = [a3].row + [a3].currentregion.rows.count

cells(입력행, 1) = txt번호
cells(입력행, 2) = cells(참조행, 8)
cells(입력행, 3) = cells(참조행, 9)
cells(입력행, 4) = txt매수
cells(입력행, 5) = txt매수 * cells(참조행, 10)

이 문장에서는 lst열차종류에서 참조되는 행의 위치를 이미 지정하였습니다. 그리고 사용 할때는 8,9와 같이 엑셀에서 위치하는 열을 미리 적어 둔 것입니다.

한마디로 말하면.. 첫번째 코드는 폼안의 list박스내의 자료를 찾아서 셀에 입력 하는 것이구요.




두번째 코드는 워크시트에서 참조표가 있는 곳의 위치를 지정하여 입력할 데이터를 확인 하는 것입니다.



좋은 하루 되세요.

"
  • *
    2011-08-31 11:50:52

    문제의 지시사항에 따라 다른 것이죠.

    참조행이 필요하다면 참조행을 쓰시고

    입력행이 필요하다면 입력행을 쓰시면 됩니다.

    보통 입력행은 폼의 내용을 셀에 입력할때 사용합니다.

    그리고 참조행만 사용할때는 입력이 필요없는 폼에 조회를 하는 문제일 경우가 많습니다.

    listindex 만 사용하는 문제와 list, listindex 사용하는 문제에서 차이가 납니다.

    listindex 만 사용하는 것은 콤보상자의 위치를 이용하여 셀에 입력된 내용을 가져와 사용하는 문제가 많구요.

    list, listindex 문제는 list박스에 입력된 내용중에서 선택 한 후 입력하는 문제입니다.

    a4로 하시든 b4로 하시든 같은 행이기 때문에 상관은 없는데요.

    헷갈리신다면 b4로 사용하세요. 학습하시는데 혼동을 드려 죄송합니다.

    그리고 아래는 추가 설명입니다.

    listindex와 list,listindex의 차이점을 설명 드릴께요.

    첫번째 코드는 목록상자나 콤보상자에서 특정 행을 추출할 때 사용하고, 두번째 코드는 워크시트의 셀안의 내용을 가져올때 사용 하게 됩니다.

    참조행 = lst과목.ListIndex
    입력행 = [a2].Row + [a2].CurrentRegion.Rows.Count
    Cells(입력행, 1) = txtID
    Cells(입력행, 2) = txt이름
    Cells(입력행, 3) = lst과목.List(참조행, 0)
    Cells(입력행, 4) = lst과목.List(참조행, 1)
    Cells(입력행, 5) = lst과목.List(참조행, 2)
    Cells(입력행, 6) = lst과목.List(참조행, 3) - (lst과목.List(참조행, 3) * txt할인율)

    여기에서 참조행에 lst과목.listindex 라고 정의해 두고
    lst과목.list(참조행,0) 으로 사용 하고 있습니다.

    이것은 참조행이 어디인지 지정해 놓고 lst과목에서 참조행의 위치와 0인.. 그러니깐 참조행이 만약 2이고 찾고자하는 것이 0행에 있다는 그런 뜻이 됩니다.

    참조행 = lst열차종류.listindex + 4
    입력행 = [a3].row + [a3].currentregion.rows.count

    cells(입력행, 1) = txt번호
    cells(입력행, 2) = cells(참조행, 8)
    cells(입력행, 3) = cells(참조행, 9)
    cells(입력행, 4) = txt매수
    cells(입력행, 5) = txt매수 * cells(참조행, 10)

    이 문장에서는 lst열차종류에서 참조되는 행의 위치를 이미 지정하였습니다. 그리고 사용 할때는 8,9와 같이 엑셀에서 위치하는 열을 미리 적어 둔 것입니다.

    한마디로 말하면.. 첫번째 코드는 폼안의 list박스내의 자료를 찾아서 셀에 입력 하는 것이구요.




    두번째 코드는 워크시트에서 참조표가 있는 곳의 위치를 지정하여 입력할 데이터를 확인 하는 것입니다.



    좋은 하루 되세요.

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