VBA에서 어떠한 값을 입력 받을 경우
InputBox()를 사용합니다.
입력 받을 수 있는 여러 값 중
InputBox()를 통해 셀 범위를 선택할 수 있게 하고
해당 범위에 숫자 1을 채우는 방법을 알아보겠습니다.
그리고 해당 범위를 MsgBox()를 통해 출력해보도록 하겠습니다.
추가적으로 알아야 할 사항은
InputBox()를 통해
셀 범위를 입력받게 되면
해당 범위는 절대참조로 반환이 됩니다.
즉, [ A1 ~ A3 ]의 범위를 선택하면
[ $A$1:$A$3 ]의 범위를 반환합니다.
이는 기본적으로 VBA에서 사용하는 방식이며
이를 상대참조로 변환하기 위해서는 별도의 코드를 작성해야 합니다.
[ 코드 작성하기 ]
먼저
[ 개발 도구 ] → [ Visual Basic ]
를 클릭합니다.
그 다음 아래 그림과 같이
[ 삽입 ] → [ 모듈 ]
을 선택합니다.
그 다음 아래와 같이 코드를 입력합니다.
Sub SelectRange()
Dim rng As Range
Set rng = Application.InputBox("셀 범위를 선택하세요.", Type:=8)
rng.Value = 1
MsgBox "선택한 셀은 다음과 같습니다." & rng.Address
End Sub
그 다음 버튼을 하나 만들겠습니다.
[ 개발도구 ] → [ 삽입 ]
을 누른 후 파란색 네모의 버튼을 선택한 후
버튼을 하나 만들어줍니다.
그 다음 버튼을 마우스 우클릭하고
[ 매크로 지정 ]을 누른 후
방금 만든 매크로를 연결합니다.
다음은 실행되는 모습입니다.
[ 코드 설명 ]
먼저 Range 객체를 담을 변수를 정해줍니다.
[ Dim rng As Range ]
객체를 참조할 변수에 할당하기 위해서는
set 키워드를 사용해야 합니다.
우선 set을 사용해 변수해 할당한다 정도만 아시면 될 것 같습니다.
[ Set rng = Application.InputBox("셀 범위를 선택하세요.", Type:=8) ]
여기서 [ Type:=8 ]은
InputBox()로 셀 범위를 입력받으라고 명시한 것입니다.
이렇게 하면 셀 범위를 입력받아
해당 범위를 활용할 수 있습니다.
여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.
'EXCEL VBA' 카테고리의 다른 글
엑셀 VBA 체크박스 넣고, 셀 연결 자동으로 하기 (0) | 2023.11.30 |
---|---|
엑셀 열 너비 자동으로 맞추기, 입력할때마다 열 너비 자동으로 맞추기 (0) | 2023.11.24 |
엑셀 VBA 폴더 내 파일이름 확인하기, DIR 함수, DIR() (0) | 2023.10.15 |
엑셀 VBA 폴더 및 파일 선택 창 열기, Application.FileDialog() (0) | 2023.10.14 |
엑셀 VBA 시트 이름 한번에 바꾸기, 시트 이름 바꾸기 매크로 (1) | 2023.10.08 |