사용자가 선택한 범위의 셀 주소를 표시하는 코드를 알아보겠습니다.
아래 코드를 살펴보시면
셀의 주소를 다루는 방법을 쉽게 확인할 수 있습니다.
사용자가 선택한 범위의 셀 주소 입력하기
Sub 셀주소입력_Selection()
Dim cell As Range
Dim cellAddress As String
If Selection.Count = 0 Then Exit Sub
For Each cell In Selection
cell.Value = "Cell(" & cell.Row & ", " & cell.Column & ")"
Next cell
End Sub
위 코드를 실행하면 아래와 같이 결과가 나타납니다.
A1셀부터 E6셀까지의 범위를 먼저 선택하고 코드를 실행한 결과입니다.
먼저 예외 상황을 처리하기 위한 코드입니다.
If Selection.Count = 0 Then Exit Sub
Selection은 선택한 범위를 나타내는데
선택된 셀 또는 셀 범위가 없다면 프로그램을 종료하는 코드입니다.
For Each cell In Selection
cell.Value = "Cell(" & cell.Row & ", " & cell.Column & ")"
Next cell
For Each 문을 통해 Selection에 의해 지정된 범위에 있는 셀 하나하나를 cell에 넣습니다.
이렇게 하면 선택된 범위에 있는 셀에 하나씩 접근이 가능합니다.
그다음 cell.Value를 통해 cell이 지정하고 있는 엑셀의 셀 하나하나에 값을 넣습니다.
cell.Row는 해당 셀의 Row 값을 가져오고
cell.Column은 해당 셀의 Column 값을 가져옵니다.
사용자에게 입력받은 범위의 셀 주소 입력하기
사용자게에 셀 주소를 직접 입력받아 해당 범위에 셀 주소를 입력할 수도 있습니다.
Sub 셀주소입력()
Dim rng As Range
Dim cellAddress As String
Set rng = Application.InputBox("셀 주소를 입력할 범위를 선택하세요.", "범위 선택", Type:=8)
If rng Is Nothing Then Exit Sub
For Each cell In rng
cell.Value = "Cell(" & cell.Row & ", " & cell.Column & ")"
Next cell
End Sub
위 코드를 실행하면 아래와 같이 셀 주소를 입력할 수 있는 창이 나타납니다.
셀 범위를 직접 입력하거나
엑셀 시트에서 셀 범위를 드래그하여 입력할 수 있습니다.
A1, B1 형식으로 셀 주소 입력하기
다음은 cell(1,1) 형식이 아닌 $A$1, $B$1 형식으로 셀 주소를 입력하는 코드입니다.
Sub 셀주소입력_Selection()
Dim cell As Range
Dim cellAddress As String
If Selection.Count = 0 Then Exit Sub
For Each cell In Selection
cellAddress = cell.Address
cell.Value = cellAddress
Next cell
End Sub
먼저 셀 범위를 선택하고 위 코드를 실행하면
아래 그림과 같이 결과가 나타납니다.
아래 코드는 일부로 두 줄로 구현을 했습니다.
cellAddress = cell.Address
cell.Value = cellAddress
위 코드를 아래와 같이 한 줄로도 가능합니다.
cell.Value = cell.Address
만약 셀 주소에서 $를 빼고 싶다면 아래와 같이 코드를 수정하면 됩니다.
For Each cell In Selection
cellAddress = cell.Address(False, False)
cell.Value = cellAddress
Next cell
Address에 False를 넘기면 A1, B1 형태로 셀 주소가 표시가 됩니다.
여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.
'EXCEL VBA' 카테고리의 다른 글
[ 엑셀 VBA ] VBA 코드 보호하기 : VBA 코드 암호 걸기 (0) | 2024.09.26 |
---|---|
[ 엑셀 VBA ] 특정 셀에 데이터를 입력하면, 입력 날짜 및 시간 생성, 데이터 변경 날짜 자동입력 (0) | 2024.09.12 |
[ 엑셀 VBA ] VBA로 하이퍼링크(Hyperlinks) 추가하기 (0) | 2024.09.06 |
[ 엑셀 VBA ] 시트 이동하는 여러가지 방법, 시트 이동하기 (0) | 2024.09.06 |
[ 엑셀 VBA ] 시트 삭제하는 여러가지 방법, 엑셀 시트 삭제하기 (0) | 2024.09.06 |