EXCEL VBA

엑셀 VBA InputBox로 셀 범위 선택하고 값 채우기

카루루1007 2023. 10. 31. 21:50
728x90
반응형
SMALL

VBA에서 어떠한 값을 입력 받을 경우

InputBox()를 사용합니다.

입력 받을 수 있는 여러 값 중

InputBox()를 통해 셀 범위를 선택할 수 있게 하고

해당 범위에 숫자 1을 채우는 방법을 알아보겠습니다.

그리고 해당 범위를 MsgBox()를 통해 출력해보도록 하겠습니다.

※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

 

728x90
반응형

그 다음 버튼을 하나 만들겠습니다.

[ 개발도구 ] → [ 삽입 ]

을 누른 후 파란색 네모의 버튼을 선택한 후

버튼을 하나 만들어줍니다. 

 

그 다음 버튼을 마우스 우클릭하고

[ 매크로 지정 ]을 누른 후

방금 만든 매크로를 연결합니다.

 

다음은 실행되는 모습입니다.

 

SMALL

[ 코드 설명 ]

 

먼저 Range 객체를 담을 변수를 정해줍니다.

[ Dim rng As Range ]

 

객체를 참조할 변수에 할당하기 위해서는

set 키워드를 사용해야 합니다.

우선 set을 사용해 변수해 할당한다 정도만 아시면 될 것 같습니다.

[ Set rng = Application.InputBox("셀 범위를 선택하세요.", Type:=8) ]

 

여기서 [ Type:=8 ]은

InputBox()로 셀 범위를 입력받으라고 명시한 것입니다.

 

이렇게 하면 셀 범위를 입력받아

해당 범위를 활용할 수 있습니다.

 

728x90
반응형
LIST