컴퓨터 공부/엑셀 & VBA

[엑셀vba] InputBOX 함수를 이용해 입력값을 받아보자!

도 박사 2021. 9. 9. 12:45
반응형

프로그램 동작 중 사용자에게 입력값을 받아야 할 때가 있다. InputBox 함수를 이용해서 해결해 보자!

입력상자


  1. InputBox 사용법
  2. InputBox 함수 입력값 또는 버튼 선택에 따라 다른 코드 진행

입력값 검증


1. InputBox 사용법

Sub Inputbox_Test()

    InputBox "내용", "제목", "기본값"

End Sub

Msgbox 함수와 비슷한 인수들을 가지고 있다.

InputBox Prompt, [Title], [default], [xpos], [ypos], [helpfile], [context]

InputBox 함수의 내용에 해당하는 Prompt만 필수이며 나머지 인자는 선택사항이다.

  • title: 제목
  • default: 시작했을 때 입력되있을 값
  • xpos: 가로 위치 (숫자로 입력)
  • ypos: 세로 위치 (숫자로 입력)
  • helpfile: 도움말 파일
  • context: 도움말 항목 번호

2.InputBox 함수 입력값에 따라 다른 코드 진행

Sub Inputbox_Test()

    Dim 입력값
    입력값 = InputBox("내용", "제목", "기본값")
    
    If 입력값 = "" Then
        Debug.Print "입력값 없음"
    ElseIf Len(입력값) > 3 Then
        Debug.Print "4자리 이상 글자임"
    Else
        Debug.Print "짧음"
    End If
    
End Sub

 

취소 버튼을 누르면 입력값에 어떠한 값도 저장되지 않는다.

입력값 검증 코드만들어서 내가 원하는 값을 입력하도록 만들어도 될 듯하다.

 


3. 입력값 검증

Sub Inputbox_Test()

    Dim 입력값
Retry:
    입력값 = InputBox("숫자 아무거나 입력", "숫자 입력", , 20000, 7000)
    
    If 0 < 입력값 And 입력값 < 100 Then
        Debug.Print 입력값
    Else
        Debug.Print "실패"
        GoTo Retry
    End If

End Sub

 

 

1~100 사이 숫자를 입력해야 입력상자가 닫히게 만들어놨다. 

내가 원하는 값을 넣을 때까지 지속되도록 해서 취소를 눌러도 닫히지가 않는다 훠허허허허

 

이런식으로 입력값 검증을 할 수도 있다.


 

반응형