EXCEL VBA

[ 엑셀 VBA ] 선택한 범위의 셀 주소 표시하기

카루루1007 2024. 9. 7. 18:18
728x90
반응형

사용자가 선택한 범위의 셀 주소를 표시하는 코드를 알아보겠습니다.

아래 코드를 살펴보시면

셀의 주소를 다루는 방법을 쉽게 확인할 수 있습니다.

 

 사용자가 선택한 범위의 셀 주소 입력하기

 

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 형태로 셀 주소가 표시가 됩니다.

여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.

엑셀 공부하기
VBA 공부하기

 

728x90
반응형