EXCEL - VBA

엑셀 VBA에서 셀 또는 범위 지정하기(2) - Cells

별동산 2022. 10. 31. 09:22
반응형

범위지정하기2.xlsm
0.01MB

 

위 파일의 내용은 아래와 같습니다.

예제 파일

나. Cells

 

1) 구문

 

① cells : 모든 셀 지정

② cells(row index, column index) : 행과 열 인덱스에 해당하는 셀을 가르킴

 

2) 사례

 

전체 셀 또는 개별을 선택하고 셀 값 표시하기

위 파일을 연 후 개발도구  - Visual Baisc을 클릭하여 Visual Basic Editor로 접근한 후 code 창에 아래 코드를 붙여 넣고 F5키를 눌러 실행하면

Sub 범위지정5()
    Cells.Select
    MsgBox (Selection.Address)
    
    Cells(2, 2).Select
    MsgBox (Selection.Address)
    MsgBox (Selection)
End Sub

 

전체 셀을 선택한 후(cells.select) 메시지 박스에 $1:$1048576을 보여주며(MsgBox (Selection.Address)), 확인 버튼을 누르면

전체 셀 선택

 

2행, 2열에 해당하는 B2셀을 선택한 다음(Cells(2, 2).Select), B2셀의 주소를 $B$2로 메시지 박스에 표시하고(MsgBox (Selection.Address)), 확인 버튼을 누르면

한 개 셀 선택

 

B2셀의 값 36을 메시지 박스에 표시합니다.

셀 값 반환

 

② 셀에 값 입력하기

Sub 범위지정6()
    Cells(3, 2) = Range("a3") * 5
    Range("a2").Cells(3, 2) = 100
End Sub

Cells(3, 2) = Range("a3") * 5 : cells(3,2)는 A1셀부터 row_index와 column_index를 계산하므로 3행 2열이므로 B3셀이 됩니다. 따라서, B3셀에 A3의 값에 5를 곱한 값을 입력하므로 375가 입력됩니다.

 

Range("a2").Cells(3, 2) = 100 : A2셀을 기준으로 row_index와 column_index를 계산하므로, row_index 3은 2행이 1이므로 4행이 되고, 열을 A열, 다시 말해 1열이니 column_index 2는 B열이 됩니다. 따라서, B4행에 100을 입력합니다.

 

범위 지정6 서브 프로시저 안에 커서를 넣고 F5키를 눌러 실행하면

서브 프로시저 실행

 

B3셀에 375, B4셀에 100이 입력됩니다. 만약 아래 화면이 보이지 않는다면 비주얼 베이직 에디터에서 엑셀 아이콘을 눌러 엑셀 보기를 하면 됩니다.

서브 프로시저 실행 결과

[Offset Property와 비교]

위 서브 프로시저 맨 아랫줄에

Range("a2").Offset(3, 2) = 100 라고 입력하고

실행하면

Offset 속성은 상대적인 위치이므로 A2셀에서 3행과 2행이 떨어진 위치가 돼서 C5셀에 100이 입력되는 점이 다릅니다.

Offset 속성

 

③ 선택한 셀에 값 입력하기

Sub 범위지정7()
    Cells(6, 3).Select
    Selection = Range("a3") * 5
    
    Cells(7, 3).Select
    Selection = "=b3 * 5"
End Sub

Cells(6, 3).Select : 6행, 3열에 해당하는 셀, C6셀을 Select, 선택하라는 의미입니다.

Selection = Range("a3") * 5 : Selection 다시 말해 선택된 셀인 C6셀에  A3셀에 5를 곱한 값을 입력합니다.

 

Cells(7, 3).Select : 7행, 3열에 해당하는 셀, C7셀을 Select, 선택하라는 의미입니다.

Selection = "=b3 * 5" : Selection 다시 말해 선택된 셀인 C7셀에  b3 * 5란 수식을 입력합니다. 수식은 일반적으로 입력하는 수식과 같이 Range("b3")라고 하지 않고 b3라고 씁니다.

 

F5키를 눌러 범위지정7 서브 프로시저를 실행하면 C6셀에 375, C7셀에 수식 =B3*5가 입력되고, 값 1875가 표시됩니다.

수식 입력

 

[Cells(row_index, col_index).Address를 이용해서 수식 변경하기]

범위의 셀 주소 속성을 구하려면 .Address를 추가하면 됩니다.

그런데 Cells(row_index, col_index).Address는 큰 따옴표 안에 넣으면 문자가 되기 때문에 &(결합 연산자)를 이용해

Selection = "=" & Cells(4, 2).Address & "* 5" 라고 입력해야 합니다.

Sub 범위지정7()
    Cells(6, 3).Select
    Selection = Range("a3") * 5
    
    Cells(7, 3).Select
    Selection = "=b3 * 5"
    
    Cells(8, 3).Select
    Selection = "=" & Cells(4, 2).Address & "* 5"
End Sub

 

위 프로시저를 실행하면 아래와 같습니다.

address 속성 이용 수식 입력
범위지정하기3.xlsm
0.01MB

 

다음에는 여러 셀을 지정하는 방법에 대해 알아보겠습니다.

반응형