일반적인 InputBox 는 단순하게 입력값이 String 으로 리턴됩니다. 이런 단순한 형태가 아닌 셀영역을 입력하고 반환형태를 Type 으로 지정해 받을 수가 있습니다.
InputBox 의 형태는 다음과 같다.
Application.InputBox(메시지내용,제목,기본값,가로위치,세로위치,Type)
▼ 여기서 Type 의 종류를 알아봅니다. 타입은 반환형태를 결정짓는 타입값이며 비트연산으로 분류 되어있어서 타입값을 더해서 넘겨도 됩니다. 그러니까 1+2 를 더해 3을 넘기면 1과 2의 형태를 동시에 만족할수 있습니다.
l 0 : 수식
l 1 : 숫자
l 2 : 텍스트
l 4 : 논리값, True/False
l 8 : Range 와 같은 셀 참조
l 16 : #N/A 오류값
l 64 : 값의 배열
▼ Type 값을 입력하기 위해서 Type:=1 처럼 인수지정방식을 사용합니다. 아래 샘플은 영역에 값을 적용하는 방식인데 Type:=8 로 InputBox 를 셋팅한 것입니다.
| Private Sub RangeType() Dim ReturnSel As Range Set ReturnSel = Application.InputBox("원하는 영역에 값적용", "범위선택", Type:=8) ReturnSel.Select Selection.Value = "반환"End Sub |
▼ 위의 소스를 실행하게 되면 영역을 입력받을 수 있는 InputBox 가 뜨게 됩니다. 값을 적용하기 원하는 영역을 선택합니다.
▼ 확인을 누르게 되면 아래와 같이 선택한 영역에 코드에서 작성한값 Selection.Value = "반환" 이 모든 셀에 들어가게 됩니다. Application.InputBox 를 실행하고 ReturnSel 개체가 리턴받은 것은 영역이며 Select 를 사용해서 모두 선택한후 동일한 값을 집어 넣은 것입니다.
▼ 다음은 위의 내용을 좀더 확장해 선택한 영역에 수식을 적용해 보도록 하겠습니다. 선택한 셀의 평균을 구하는 것입니다. 소스는 아래와 같으며 영역을 리턴받아 그 영역에 있는 값의 평균을 구해 메시지로 띄웠습니다.
| Private Sub RangeAverage() Dim ReturnSel As Range Set ReturnSel = Application.InputBox("영역 평균구하기", "범위선택", Type:=8) MsgBox "평균 : " & Application.WorksheetFunction.Average(ReturnSel)End Sub |
'엑셀(Excel) > VBA' 카테고리의 다른 글
| 엑셀(Excel) VBA - 목록상자 컨트롤 이용하여 목록 조회, 선택하기 (1) | 2026.04.14 |
|---|---|
| 엑셀 VBA Range 객체 중 Areas 속성 사용하기 (1) | 2025.11.15 |
| 엑셀(Excel) VBA – 다른 시트의 값을 가져와서 데이터를 추가하는 방법 (4) | 2025.11.10 |
| 엑셀 VBA 개발에 도움이 되는 편집기창 이용 방법들 (0) | 2025.10.25 |
| 엑셀 VBA 데이터 입력하는 텍스트 박스(Text Box) 사용하는 방법 (4) | 2025.10.11 |
| 엑셀 VBA 16진수 > 10진수, 10진수 > 16진수 헥사값 알아오기 (3) | 2025.08.02 |
| 엑셀 VBA 리스트 멀티 선택해서 추가 삭제하기 (0) | 2025.06.18 |
| 엑셀 VBA 시트에서 데이터 셀 영역 구하기 (2) | 2025.05.17 |

