msgbox now
msgbox now()
둘다 가능한가요?? 결과는 같으니 상관없는지 궁금합니다.
안녕하세요.
독자님, 결론부터 말씀드리면 네, 둘 다 완벽하게 가능하며 결과도 완전히 똑같습니다! 어떤 것을 사용하셔도 무방합니다.
VBA(Visual Basic for Applications) 언어만의 특성 때문입니다.
Now는 함수입니다: 원래 Now는 현재 날짜와 시간을 반환하는 '함수(Function)'가 맞습니다.
VBA의 자동 변환 규칙: 보통 프로그래밍 언어에서 함수를 쓸 때는 뒤에 괄호를 붙이는 게 정석이지만, VBA는 "전달할 재료(인수)가 없는 함수는 뒤에 괄호를 생략해도 자동으로 알아서 실행해 준다"는 편리한 규칙을 가지고 있습니다.
실제 테스트: 실제로 VBA 창에 MsgBox now()라고 소문자로 타이핑하고 엔터를 치면, 엑셀이 자동으로 괄호를 지워버리고 첫 글자를 대문자로 바꿔서 MsgBox Now로 싹 정돈해 주는 것을 볼 수 있습니다.
엑셀 워크시트 함수와의 차이점
엑셀 셀(워크시트)에서 쓸 때: =NOW() 처럼 반드시 빈 괄호를 붙여야만 올바른 함수로 인식합니다. 괄호를 빼고 =NOW라고만 쓰면 #NAME? 오류가 납니다.
VBA 프로시저에서 쓸 때: 괄호를 붙이든(Now()) 안 붙이든(Now) 엑셀이 다 알아듣고 똑같이 현재 날짜와 시간을 출력해 줍니다.
즐거운 하루 되세요.
-
관리자2026-06-03 10:15:44
안녕하세요.
독자님, 결론부터 말씀드리면 네, 둘 다 완벽하게 가능하며 결과도 완전히 똑같습니다! 어떤 것을 사용하셔도 무방합니다.
VBA(Visual Basic for Applications) 언어만의 특성 때문입니다.
Now는 함수입니다: 원래 Now는 현재 날짜와 시간을 반환하는 '함수(Function)'가 맞습니다.
VBA의 자동 변환 규칙: 보통 프로그래밍 언어에서 함수를 쓸 때는 뒤에 괄호를 붙이는 게 정석이지만, VBA는 "전달할 재료(인수)가 없는 함수는 뒤에 괄호를 생략해도 자동으로 알아서 실행해 준다"는 편리한 규칙을 가지고 있습니다.
실제 테스트: 실제로 VBA 창에 MsgBox now()라고 소문자로 타이핑하고 엔터를 치면, 엑셀이 자동으로 괄호를 지워버리고 첫 글자를 대문자로 바꿔서 MsgBox Now로 싹 정돈해 주는 것을 볼 수 있습니다.
엑셀 워크시트 함수와의 차이점
엑셀 셀(워크시트)에서 쓸 때: =NOW() 처럼 반드시 빈 괄호를 붙여야만 올바른 함수로 인식합니다. 괄호를 빼고 =NOW라고만 쓰면 #NAME? 오류가 납니다.
VBA 프로시저에서 쓸 때: 괄호를 붙이든(Now()) 안 붙이든(Now) 엑셀이 다 알아듣고 똑같이 현재 날짜와 시간을 출력해 줍니다.
즐거운 하루 되세요.