728x90
728x90
변수 = InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)
- Prompt : 입력란에 표시되는 제목입니다. 입력받을 내용을 설명합니다.
- Title : 박스 상단 제목입니다.
- Default : 입력란에 기본값을 정의합니다.
- Left : InputBox가 표시되는 가로 좌표값입니다.
- Top : InputBox가 표시되는 세로 좌표값입니다.
- Type : 입력 받을 데이터의 종류를 지정합니다. Type 에서 지정한 데이터가 입력되지 않으면 에러 메시지를 표시합니다.(Type정의 참조)
Type 정의
- 0 : 수식 입력
- 1 : 숫자 입력
- 2 : 텍스트 입력
- 4 : True / False
- 8 : 셀 영역
- 16 : #N/A 같은 에러
- 64 : 배열
대부분의 블로그나 소개자료에서 InputBox에 Type을 정의할수 있다고 되어 있습니다.
현재 MS오피스 2010의 VBA7.0에서는 Type을 지정할 수 없습니다.
책으로 공부하는 자료가 아니라서 명확하게 찾아볼수 없네요. (2017/9/28)
과거에 작성했던 코드를 확인했는데, VBA에서 기본으로 사용가능한 InputBox에서는 Type 정의가 되지 않습니다.
Application.InputBox에서는 사용이 가능합니다.
Application을 붙이고 안붙이고에 대해서는 좀더 알아보고 다뤄봐야겠네요.
About my code
*월 정보만 입력하고 싶은 경우
Dim Month_ as Variant
'전문가 수준이 아니라서 편의상 Variant를 즐겨사용합니다.
Reinbox:
Month_ = InputBox("기준월을 입력합니다. [1~12]", "입력")
If Month_ < 1 Or Month_ > 12 Then
'입력월이 1~12를 벗어나면 MsgBox를 표시하고 입력을 반복합니다.
MsgBox "입력월이 맞지 않습니다. [1~12]"
GoTo Reinp
Else
'정수가 아닌경우를 고려하여 편의상 반올림합니다.
Month_ = Round(Month_, 0)
MsgBox "기분월은 " & Month_ & "월입니다."
End If
제 경우에는 Variant로 입력을 받고 필터링하는 방법을 선택했는데요. GoTo는 좋은 방법이 아니지만, 실력이 부족하네요.
보다 깔끔한 방법이 있을것 같습니다. 고수님들이 알려주시면 좋겠네요.
728x90
반응형
'IT(정보기술) 정보 > Excel (MS office)' 카테고리의 다른 글
[설정] 엑셀 2013 속도향상 (2) | 2019.03.19 |
---|---|
[엑셀VBA] 문자열 (0) | 2017.09.29 |
[VBA] 변수 활용 (0) | 2017.09.28 |
[VBA] Workbooks (0) | 2017.07.19 |
[VBA] WorksheetFunction (0) | 2017.06.28 |