1.1편 -474p에 시나공 qna 베스트에
컨트롤에 이미 coulmncount 속성이 지정되어 있는 경우 따로 ~~.columncount=2
를 입력할 필요가 없다고 나와있습니다. 자세한 내용은 306p를 참조하라고 했지만
306쪽에는 엉뚱한 계산문제 풀이만 나와있구요
여기서 말하는 컨트롤에 지정되었다는게
이렇게 두 필드?가 연동되어있다는 건가요?
2.또 책에서 첫번째 값을 선택하도록 한 문제를
~.listindex=0
또는 ~ = ~.list(0.0)
로 표현하는데요 결과는 같으니 어느걸로 써도 괜찮은 건가요?
3. 컨트롤에 입력한 값의 속성?형식이 궁금합니다.
만약 ~.rowsource를 이용하여 연결한 범위의 숫자가 오른쪽 정렬이 되어있다면
수식을 이용하여 값을 계산할 때 val()을 사용하지 않아도 되나요?
만약 왼쪽정렬이라면 문자로 보고 val()을 사용해야하나요?
컨트롤에 숫자로 입력한 값은 val을 사용하지 않아도 숫자인가요?
입력행=[].row+[].currentregion.rows.count-1로 지정하여 마지막 값을 불러오거나
특정 값으로 검색하여 다른 값들을 불러오면 이 때 조회되는 숫자도 시트상에서 오른쪽 정렬이라면
val()을 사용하지 않아도 계산이 가능한가요?
아니면 신경쓰지 말고 무조건 val()을 입력하는게 마음이 편할까요?
1.
lst박스의 열을 두개로 표시 하기 위한 것입니다.
보통 lst박스에 속성에서 지정해 주는데 A형 문제의 경우는 lst박스 속성에 이 것을 지정해 주지 않았기 때문에 columncount 속성을 지정하여 2열로 만들어 준것 입니다. 하지만 실전 E형에서는 이미 이 속성이 지정되어 있습니다. 그렇기 때문에 그냥 목록.RowSource = "F4:G8" 로 사용해도 되는 것입니다.
그냥 사용하셨을때 2개의 열이나온다면 그냥 사용하셔도 되구요. 그렇지 않다면 columncount 를 사용하세요.

2. 결과가 정확하다면 상관 없을 수도 있지만
지시사항에 맞는 코드을 사용하셔야 합니다.
아래 설명을 참고해 주세요.
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박스내의 자료를 찾아서 셀에 입력 하는 것이구요. 
두번째 코드는 워크시트에서 참조표가 있는 곳의 위치를 지정하여 입력할 데이터를 확인 하는 것입니다. 

3.
val은 문자로 받은 데이터을 숫자로 나타낼때 쓰이는 것입니다.
하지만 수량이나 단가는 대부분 숫자로 입력을 받습니다. 문자로 입력이 된다 하더라도 숫자의 형식을 가지고 있기 때문에 계산이 가능 합니다.
만약 val을 쓰지 않고도 계산이 가능 하다면 val을 사용 하지 않으 셔도 됩니다.
물론 사용 하셔도 되구요.
지시사항에 val를 꼭 사용 하라고 되어 있지 않고, val을 사용 하지 않아도 계산이 가능 하다면 val를 사용 하시지 않으셔도 됩니다.
좋은 하루 되세요.
-
*2015-01-23 08:21:16
1.
lst박스의 열을 두개로 표시 하기 위한 것입니다.
보통 lst박스에 속성에서 지정해 주는데 A형 문제의 경우는 lst박스 속성에 이 것을 지정해 주지 않았기 때문에 columncount 속성을 지정하여 2열로 만들어 준것 입니다. 하지만 실전 E형에서는 이미 이 속성이 지정되어 있습니다. 그렇기 때문에 그냥 목록.RowSource = "F4:G8" 로 사용해도 되는 것입니다.
그냥 사용하셨을때 2개의 열이나온다면 그냥 사용하셔도 되구요. 그렇지 않다면 columncount 를 사용하세요.
2. 결과가 정확하다면 상관 없을 수도 있지만
지시사항에 맞는 코드을 사용하셔야 합니다.
"아래 설명을 참고해 주세요.
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.countcells(입력행, 1) = txt번호
cells(입력행, 2) = cells(참조행, 8)
cells(입력행, 3) = cells(참조행, 9)
cells(입력행, 4) = txt매수
cells(입력행, 5) = txt매수 * cells(참조행, 10)이 문장에서는 lst열차종류에서 참조되는 행의 위치를 이미 지정하였습니다. 그리고 사용 할때는 8,9와 같이 엑셀에서 위치하는 열을 미리 적어 둔 것입니다.
한마디로 말하면.. 첫번째 코드는 폼안의 list박스내의 자료를 찾아서 셀에 입력 하는 것이구요.
두번째 코드는 워크시트에서 참조표가 있는 곳의 위치를 지정하여 입력할 데이터를 확인 하는 것입니다.

3.
val은 문자로 받은 데이터을 숫자로 나타낼때 쓰이는 것입니다.
하지만 수량이나 단가는 대부분 숫자로 입력을 받습니다. 문자로 입력이 된다 하더라도 숫자의 형식을 가지고 있기 때문에 계산이 가능 합니다.
만약 val을 쓰지 않고도 계산이 가능 하다면 val을 사용 하지 않으 셔도 됩니다.
물론 사용 하셔도 되구요.
지시사항에 val를 꼭 사용 하라고 되어 있지 않고, val을 사용 하지 않아도 계산이 가능 하다면 val를 사용 하시지 않으셔도 됩니다.좋은 하루 되세요.