책 내용 질문하기
기출2의 시간 관련 질문입니다.
도서
2026 한 권으로 끝내는 시나공 컴활 1급 필기+실기 (컴퓨터활용능력 1급)
페이지
123
조회수
22
작성일
2026-04-15
작성자
안*진
첨부파일

if time >=0.5 then
cells(입력행,4)="오후"


if hour(time) then
cells(입력해,4)="오후"라고 고쳐서 했는데
이렇게 해도 되나요?

많이 헷갈리는게 문제에서 listindex를 사용하라는 말이 기출1처럼 나오지 않았는데도 기출2는 그냥 쓰는 경우처럼 시험장에서 사용하라는 속성이나 함수등등 모두 표기하는지 궁금합니다. 그리고 만약에 시험장에서 엑셀 프로시저 입력할 때 쓰라는 말이 없었는데 사용하면 정답인정이 안 되는지 모르겠습니다.

답변
2026-04-15 11:07:26

안녕하세요.

수정한 코드는 정상적으로 오전/오후 구분이 되지 않습니다.

원래 코드인 "time >= 0.5"의 의미는

엑셀(VBA)은 하루 24시간을 0부터 1 사이의 소수로 계산합니다. 따라서 정오(낮 12시)는 딱 하루의 절반인 0.5가 됩니다.

즉, 0.5보다 크거나 같다는 것은 낮 12시 이후(오후)라는 의미가 되는 정확한 식입니다.

수정한 코드인 "hour(time)"은

VBA의 If 조건문은 숫자가 들어올 경우 **0일 때만 거짓(False)**으로 인식하고, **0이 아닌 모든 숫자(1~23)는 참(True)**으로 인식합니다.

따라서 If Hour(Time) Then이라고 쓰시면 자정(0시)을 제외한 새벽 1시, 아침 9시 등 오전에 해당하는 시간들도 모두 참으로 처리되어 "오후"라고 잘못 입력됩니다.

의도에 맞게 올바르게 수정하면 다음과 같습니다.

If Hour(Time) >= 12 Then

Cells(입력행, 4) = "오후"

End If


문제에 제시된 함수나 속성, 연산자가 있으면 반드시 제시된 것을 사용해서 해결해야 하지만

제시된 함수나 속성, 연산자가 없다면, 결과만 맞게 산출되면 맞게 채점됩니다.

즐거운 하루 되세요.

  • 관리자
    2026-04-15 11:07:26

    안녕하세요.

    수정한 코드는 정상적으로 오전/오후 구분이 되지 않습니다.

    원래 코드인 "time >= 0.5"의 의미는

    엑셀(VBA)은 하루 24시간을 0부터 1 사이의 소수로 계산합니다. 따라서 정오(낮 12시)는 딱 하루의 절반인 0.5가 됩니다.

    즉, 0.5보다 크거나 같다는 것은 낮 12시 이후(오후)라는 의미가 되는 정확한 식입니다.

    수정한 코드인 "hour(time)"은

    VBA의 If 조건문은 숫자가 들어올 경우 **0일 때만 거짓(False)**으로 인식하고, **0이 아닌 모든 숫자(1~23)는 참(True)**으로 인식합니다.

    따라서 If Hour(Time) Then이라고 쓰시면 자정(0시)을 제외한 새벽 1시, 아침 9시 등 오전에 해당하는 시간들도 모두 참으로 처리되어 "오후"라고 잘못 입력됩니다.

    의도에 맞게 올바르게 수정하면 다음과 같습니다.

    If Hour(Time) >= 12 Then

    Cells(입력행, 4) = "오후"

    End If


    문제에 제시된 함수나 속성, 연산자가 있으면 반드시 제시된 것을 사용해서 해결해야 하지만

    제시된 함수나 속성, 연산자가 없다면, 결과만 맞게 산출되면 맞게 채점됩니다.

    즐거운 하루 되세요.

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