책 내용 질문하기
Section 17 기준범위행수 관련
도서
2016 시나공 컴퓨터활용능력 1급 실기
페이지
224
조회수
110
작성일
2016-12-07
작성자
첨부파일

질문 몇가지 드릴게요

1)

p224쪽 그림에 따르면,

판매날짜 제품명 수량 단가 금액 결재구분

2015-02-13 Q-004 4 400 \1,600 카드

2015-07-18 Q-001 2 100 \200 현금

2015-08-12 Q-004 25 2500 \62,500 카드

이리 나와있는데,

[b3]셀과 연결된 데이터 범위의 행 수는 3입니다. 라고 적혀있습니다.

설명에서 필드명만 있고 데이터가 기록되어있지 않다면 [b3]셀과 연결된 범위의 행 수는 1이 된다고 하였는데, 그렇게 따지면 위의 그림은 데이터 범위의 행수는 4 아닌가요...? (행이 총 4개니까)

2)

p225에서,

기준범위행수 = [b3].currentRegion.Rows.Count - 1 부분에서

-1을 하는 부분이 폼에서 워크시트로 데이터를 입력할 때와 다르다는 것을 알아두라는데, 어떻게 다른가요?

3)

p232 section17 기출문제 1번,

스핀단추는 지정된 숫자범위(1~100)안에서 값을 증각하거나 감소할 때 사용하는 컨트롤이라고 하였는데,

그렇다면 단추값 * 5(설정값)인 500까지 입력될 수 있는 것이죠...?

숫자 입력해보다가 100이상으로 넘어가길래..

4)

p233

기출문제 2번에서 개발도구 -> 코드 -> visual basic을 클릭하여 vbe가 화면에 나오게 하라고 하였는데,

디자인보기로 고객정보현황버튼을 더블클릭해서 프로시저작성창으로 넘어가면 안되나요?

5)

p233

스위치 = 0에서 스위치가 의미하는 바가 무엇인가요?

답변
2016-12-08 13:06:06

1. b3과 연결된 행수는 3이지만 전체행은 4행이 되는 것이 맞습니다.

2.

쉽게 설명 한다면

입력행=[a3].row+[a3].currentregion.count

은 입력 버튼, 즉 컨트롤에 입력된 값을 마지막 셀뒤에 입력 할때 사용 하는 것이구요.

입력행=[a3].row+[a3].currentregion.count -1

은 조회 버튼, 즉 셀에 입력된 값의 마지막 데이터를 조회할때 사용 하는 것입니다.

[a3].row 는 a3의 행위치를 나타내므로 3이 나오구요.

[a3].currentregion.rows.count 는 a3부터 입력되어 있는 값들의 개수를 세게 됩니다.

a3부터 3줄의 데이터가 있다면 이 값은 3이 되고

3+3 이 되어 6 행이 되는 것이죠. (필드명 포함해서 입니다. 필드명부터 4줄이라면 4를 더해주셔야 합니다.)

즉 6번행부터 입력하게 합니다.

이것은 마지막 데이터 다음줄에 값을 입력 하는 입력 프로시저에 사용하는 것이고

여기에 -1 을 하신다면 마지막 줄을 조회하여 폼에 나타나게 하는 조회 프로시저를 작성 하는 것입니다.

이름=cells(입력행,1)

과 같이 나타내는 것은 이름에 셀에 입력된 값을 입력 하라는 것으로 셀에 입력된 값을 폼에 입력하게 하는

조회 하실때 사용하는 것이구요.

cells(입력행,1)=이름

은 셀에 폼의 컨트롤에 입력된 이름 값을 셀에 입력 하라는 것으로

입력 프로시저를 작성할 때 사용하는 것입니다.

프로시저에서 =은 같다가 아니라

오른쪽에 있는 데이터를 왼쪽으로 넣는다 라는 개념으로 생각 하셔야 합니다.

입력행 = [a3].row + [a3].currentregion.rows.count -1

이름=cells(입력행,1)

과 같이 작성하시면 조회를 하는 프로시저이고

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

cells(입력행,1)=이름

으로 작성하시면 셀에 입력하는 입력 프로시저가 되는 것입니다.

3. 네 어떻게 사용하느냐에 따라 더 많은 값이 표시될 수 있습니다.

4. 어떻게 하시든 상관 없습니다.

5.

스위치 : 스위치는 TXT원아명에 입력한 원아가 b4:b19 영역에 있는지, 없는지를 판단하는 것입니다. 맨 처음 스위치에 0을 넣은 후 IF 문 안에 '스위치 = 1'를 넣었습니다. 그런 다음 맨 마지막에 ' If 스위치 = 0 Then'에서 스위치가 0인지를 비교합니다. 맨 처음에 넣은 0이 그대로 있으면 동일한 원아가 없어 '스위치 = 1'를 한번도 수행하지 않은 것이고, 스위치 값이 1로 변경되었다면 동일한 데이터가 있었다는 의미입니다.

- aa 는 변수명으로 다른 것으로 지정하셔도 상관 없습니다. 임의로 지정한 것이 맞습니다.

- FOR EACH~NEXT : 컬렉션에 포함된 개체의 수만큼 명령 코드를 반복 실행하는 명령문입니다. For Each aa In Range("b4:b19") 이렇게 작성하면 b4:b19 영역의 개체 수 즉, 셀의 수인 16번을 반복 수행하게 되는 것입니다.

- IF AA.VALUE=TXT원아명 : 앞에 For Each aa In Range("b4:b19")에서 b4:b19 영역의 각 셀의 값이 하나씩 aa 변수에 저장이 됩니다. 그랬을 때 현재 aa 변수에 들어 있는 값(value)이 txt원아명 컨트롤에 입력된 값과 같은지를 비교하는 것입니다.

-exit for를 If ~ End if 사이에 넣는 것은 if 문의 조건을 만족할 때만 For문을 빠져나가라는 것입니다. 그런데 exit for를 End if 다음에 입력하면 if 문의 조건과는 상관없이 for문을 처음 실행했을 때 무조건 for 문을 빠져나게 되므로 정상적으로 실행이 안되는 것입니다.

참조행 = 참조행 + 1

고객명을 입력한 후 [고객조회] 버튼을 클릭하면 d4:d7 범위에서 동일한 고객명을 찾습니다.

해당 고객명을 찾았을 경우 그 고객에 대한 고객등급, 매출금액, 결제방식 등을 폼에 표시해야 합니다.

참조행은 해당 고객명과 같은 행에 있는 고객등급, 매출금액, 결제방식을 폼에 표시하기 위해 사용하는 것입니다.

처음에 참조행에 3을 넣고, for문의 첫번째에 참조행=참조행+1을 실행하면 참조행은 4가 됩니다.

이 4는 워크시트에서 고객명이 들어 있는 범위의 첫번째 행을 의미하는 것입니다.

즉, 첫번째 고객이 들어 있는 '김현진'은 워크시트에 4행에 입력되어 있습니다.

첫번째 데이터를 비교할 때는 참조행이 4, 두번째 데이터를 비교할 때는 for 문 안에 들어 있는

'참조행=참조행+1'를 또 실행하게 되므로 참조행은 5 이렇게 1씩 증가하게 되는 것입니다.

좋은 하루 되세요.

  • *
    2016-12-08 13:06:06

    1. b3과 연결된 행수는 3이지만 전체행은 4행이 되는 것이 맞습니다.

    2.

    쉽게 설명 한다면

    입력행=[a3].row+[a3].currentregion.count

    은 입력 버튼, 즉 컨트롤에 입력된 값을 마지막 셀뒤에 입력 할때 사용 하는 것이구요.

    입력행=[a3].row+[a3].currentregion.count -1

    은 조회 버튼, 즉 셀에 입력된 값의 마지막 데이터를 조회할때 사용 하는 것입니다.

    [a3].row 는 a3의 행위치를 나타내므로 3이 나오구요.

    [a3].currentregion.rows.count 는 a3부터 입력되어 있는 값들의 개수를 세게 됩니다.

    a3부터 3줄의 데이터가 있다면 이 값은 3이 되고

    3+3 이 되어 6 행이 되는 것이죠. (필드명 포함해서 입니다. 필드명부터 4줄이라면 4를 더해주셔야 합니다.)

    즉 6번행부터 입력하게 합니다.

    이것은 마지막 데이터 다음줄에 값을 입력 하는 입력 프로시저에 사용하는 것이고

    여기에 -1 을 하신다면 마지막 줄을 조회하여 폼에 나타나게 하는 조회 프로시저를 작성 하는 것입니다.

    이름=cells(입력행,1)

    과 같이 나타내는 것은 이름에 셀에 입력된 값을 입력 하라는 것으로 셀에 입력된 값을 폼에 입력하게 하는

    조회 하실때 사용하는 것이구요.

    cells(입력행,1)=이름

    은 셀에 폼의 컨트롤에 입력된 이름 값을 셀에 입력 하라는 것으로

    입력 프로시저를 작성할 때 사용하는 것입니다.

    프로시저에서 =은 같다가 아니라

    오른쪽에 있는 데이터를 왼쪽으로 넣는다 라는 개념으로 생각 하셔야 합니다.

    입력행 = [a3].row + [a3].currentregion.rows.count -1

    이름=cells(입력행,1)

    과 같이 작성하시면 조회를 하는 프로시저이고

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

    cells(입력행,1)=이름

    으로 작성하시면 셀에 입력하는 입력 프로시저가 되는 것입니다.

    3. 네 어떻게 사용하느냐에 따라 더 많은 값이 표시될 수 있습니다.

    4. 어떻게 하시든 상관 없습니다.

    5.

    스위치 : 스위치는 TXT원아명에 입력한 원아가 b4:b19 영역에 있는지, 없는지를 판단하는 것입니다. 맨 처음 스위치에 0을 넣은 후 IF 문 안에 '스위치 = 1'를 넣었습니다. 그런 다음 맨 마지막에 ' If 스위치 = 0 Then'에서 스위치가 0인지를 비교합니다. 맨 처음에 넣은 0이 그대로 있으면 동일한 원아가 없어 '스위치 = 1'를 한번도 수행하지 않은 것이고, 스위치 값이 1로 변경되었다면 동일한 데이터가 있었다는 의미입니다.

    - aa 는 변수명으로 다른 것으로 지정하셔도 상관 없습니다. 임의로 지정한 것이 맞습니다.

    - FOR EACH~NEXT : 컬렉션에 포함된 개체의 수만큼 명령 코드를 반복 실행하는 명령문입니다. For Each aa In Range("b4:b19") 이렇게 작성하면 b4:b19 영역의 개체 수 즉, 셀의 수인 16번을 반복 수행하게 되는 것입니다.

    - IF AA.VALUE=TXT원아명 : 앞에 For Each aa In Range("b4:b19")에서 b4:b19 영역의 각 셀의 값이 하나씩 aa 변수에 저장이 됩니다. 그랬을 때 현재 aa 변수에 들어 있는 값(value)이 txt원아명 컨트롤에 입력된 값과 같은지를 비교하는 것입니다.

    -exit for를 If ~ End if 사이에 넣는 것은 if 문의 조건을 만족할 때만 For문을 빠져나가라는 것입니다. 그런데 exit for를 End if 다음에 입력하면 if 문의 조건과는 상관없이 for문을 처음 실행했을 때 무조건 for 문을 빠져나게 되므로 정상적으로 실행이 안되는 것입니다.

    참조행 = 참조행 + 1

    고객명을 입력한 후 [고객조회] 버튼을 클릭하면 d4:d7 범위에서 동일한 고객명을 찾습니다.

    해당 고객명을 찾았을 경우 그 고객에 대한 고객등급, 매출금액, 결제방식 등을 폼에 표시해야 합니다.

    참조행은 해당 고객명과 같은 행에 있는 고객등급, 매출금액, 결제방식을 폼에 표시하기 위해 사용하는 것입니다.

    처음에 참조행에 3을 넣고, for문의 첫번째에 참조행=참조행+1을 실행하면 참조행은 4가 됩니다.

    이 4는 워크시트에서 고객명이 들어 있는 범위의 첫번째 행을 의미하는 것입니다.

    즉, 첫번째 고객이 들어 있는 '김현진'은 워크시트에 4행에 입력되어 있습니다.

    첫번째 데이터를 비교할 때는 참조행이 4, 두번째 데이터를 비교할 때는 for 문 안에 들어 있는

    '참조행=참조행+1'를 또 실행하게 되므로 참조행은 5 이렇게 1씩 증가하게 되는 것입니다.

    좋은 하루 되세요.

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