본문 바로가기
엑셀 (Excel)

엑셀 매크로 VBA InputBox 이용하여 값 입력 하기

by ★√★ 2022. 11. 3.

엑셀-매크로-InputBox-함수-썸네일
엑셀-매크로-InputBox-함수-썸네일

안녕하세요, 이번 포스팅은 엑셀 매크로 VBA InputBox 이용하여 값 입력하기대해서 알아보도록 하겠습니다.

 

 엑셀 매크로를 사용하다 보면 InputBox를 많이 사용하게 되는데 이 InputBox에 입력하는 값이 코드에서만 이뤄지는 게 아니고 셀 영역에서 직접적으로 표현되는 방법을 설명드리려고 합니다.

 

목차

     

     

    InputBox

     

    : InputBox는 원하는 입력을 하고 싶을 때 호출하는 엑셀 매크로 함수 중이 하나면 간단하게 아래와 같은 코드로 구현이 가능합니다. 

     

    - Application.InputBox(InputBox 안에 기재되는 내용, InputBox 제목, 기본값, InputBox가 등장하는 X축 위치, InputBox가 등장하는 Y축 위치, InputBox Type)

     

    InputBox 코드를 구현하면 아래와 같은 사진으로 보이실 겁니다. 해당 사진을 보시면 위에서 설명 드린 내용 중에 다른 것은 다 이해하시기 쉽겠지만 InputBox Type에 대해서는 잘 이해가 될 수 없으니 아래와 같이 정리하였습니다. 

    InputBox Type InputBox Type 의미
    0 수식
    1 숫자
    2 텍스트
    4 논리값 (True or False)
    8 지정한 Range 와 같은 셀 참조
    16 오류값 (#N/A)
    64  값의 배열

      

     참고로 InputBox는 기본적으로 텍스트값 즉 String Type으로 반환을 합니다. 해당 반환 타입 값을 위에서 설명드린 값을 이용하여 설정이 가능합니다.

       

     

    InputBox를 이용하여 값 입력하기

     

    : 그럼 위에서 설명 드린 InputBox에 대해서 이해를 하셨다면 본격적으로 InputBox 이용하여 값 입력하는 코드를 구현해보도록 하겠습니다. 

     

     저는 선택한 셀에 제가 지정한 값을 반환하는 코드를 구현해보도록 하겠습니다. 그래서 Type의 값은 8로 지정하고 진행해보도록 하겠습니다. 코드는 아래와 같이 구현하시면 됩니다.  

     

    Private Sub RangeInput() 
    
        Dim RangeInput As Range 
    
        Set RangeInput = Application.InputBox("지정하는 영역에 값 입력", "Range Selection", Type:=8)
    
        RangeInput.Select 
    
        Selection.Value = "셀 입괄 입력" 
    
    End Sub

      

     

     위에서 구현한 코드를 실행하면 원하는 영역을 지정할 수 있는데 해당 영역을 지정하고 확인을 누르면 아래와 같이 “셀 일괄 입력”이 일괄적으로 입력되는 걸 확인하실 수 있습니다. 

     

    InputBox_지정영역-값-입력1
    InputBox_지정영역-값-입력1

     

    InputBox-평균값-계산-지정영역
    InputBox-평균값-계산-지정영역

     

     참고로 “RangeInput.Select” 코드를 가져와서 해당 Selection 된 부분에 “셀 일괄 입력”이라는 Value를 입력을 하는 코드라고 이해하시면 됩니다.

     

     

    InputBox를 이용하여 수식 적용하기

     

     : 그럼 위에서는 단순한 텍스트만 입력을 하였다면 이제는 지정한 영역에 대해서 수식을 적용하는 InputBox 매크로를 구현해보도록 하겠습니다. 

     

    제가 구현하려는 사항은 선택한 영역에 있는 숫자들의 평균을 내는 것입니다. 즉 셀의 개수가 분모가 되고 선택한 모든 숫자의 합이 분자가 되는 것이라고 이해하시면 됩니다. 

     

     해당 수식 적용 InputBox 코드는 아래와 같이 구현이 가능합니다. "Application.WorksheetFunction.Average()” 함수를 적용하여 지정된 영역에 대해서 계산을 적용하여 계산 값을 반환하는 코드라고 이해하시면 됩니다.

     

    Private Sub RangeFormula()
    
        Dim RangeInput As Range  
    
        Set RangeInput = Application.InputBox("지정하는 영역 평균 값 계산", "Range Selection", Type:=8)  
    
        MsgBox "선택 영역 평균 값 = " & Application.WorksheetFunction.Average(RangeInput)
    
     End Sub

     

    InputBox_지정영역-값-입력2
    InputBox_지정영역-값-입력2
    InputBox_지정영역_평균값-구현
    InputBox_지정영역_평균값-구현

     

     

     이상입니다. 지금까지 엑셀 매크로 VBA InputBox 이용하여 값 입력 하기 대해서 포스팅을 작성하였습니다. 제 포스팅을 통해서 엑셀 매크로에 대해서 공부하고 알아가시는데 도움이 되셨으면 합니다. 감사합니다.

     

     

     

    2022.05.31 - [엑셀 (Excel)/엑셀 매크로 VBA] - 엑셀 매크로 VBA 열 행 추가 삭제 방법

     

    엑셀 매크로 VBA 열 행 추가 삭제 방법

     안녕하세요, 이번 글에서는 엑셀 매크로 VBA 열 행 추가 삭제 방법 대해서 작성하도록 하겠습니다. 엑셀을 하면서 단순 업무에 대해서 회의감을 드셨다면 이번에 간단하게 열과 행을 추가하는

    davey.tistory.com

     

     

    2021.03.15 - [분류 전체보기] - Excel 엑셀 매크로 - 테이블 Header 를 이용하여 오름차순 정렬하는 매크로 구현하기

     

    Excel 엑셀 매크로 - 테이블 Header 를 이용하여 오름차순 정렬하는 매크로 구현하기

    안녕하세요, Davey입니다. 오늘 포스팅할 내용은 Excel 엑셀 매크로 중에 엑셀 테이블의 Header를 이용하여 오름 차순을 구현할 수 있는 매크로 관련 내용입니다. 오늘 알려드릴 Macro는 BeforeDoubleClic

    davey.tistory.com

     

    2021.03.14 - [엑셀 (Excel)/엑셀 매크로 VBA] - Excel 엑셀 매크로 - 이름 관리자 오류 및 중복 해결 Macro

     

    Excel 엑셀 매크로 - 이름 관리자 오류 및 중복 해결 Macro

    안녕하세요 Davey 입니다. 이번에 포스팅 할 내용은, 엑셀을 사용하면서, 빈번하게 일어나는 현상 중에 하나인, “이름 관리자 오류 및 중복” 이슈입니다. 이로인해 Sheet 이동 / 복사 시 이름 충

    davey.tistory.com

     

    728x90

    댓글