엑셀은 셀은 기준으로 작업을 하게 됩니다.
A1셀에 24를 입력하거나, B1셀에 A1에 2를 곱한 값을 입력하거나 모두 셀을 기준으로 작업을 하게 됩니다.
1. 준비 사항
새 통합 문서를 연 다음 개발도구 - Visual Basic 명령을 눌러 Visual Basic Editor를 연 다음
삽입 - 모듈 메뉴 또는 삽입 콤보 박스를 누른 다음 모듈을 클릭하여
모듈을 추가하면 그 아래 Module1이 있고, 오른쪽을 보면 빈 코드 창이 열립니다.
오른쪽 코드 창에 sub 범위지정까지 입력하면 그다음 괄호와 End Sub는 자동으로 입력됩니다.
단일 셀 또는 여러 셀을 다루는 방법을 알라보는데, 여러 셀을 연속되거나 연속되지 않을 경우를 나눠서 다뤄보겠습니다.
2. 단일 셀 지정하기
셀을 지정할 때는 Range 또는 Cells 함수를 이용하게 됩니다.
가. Range
Range는 Property(속성)으로서 한 셀 또는 셀 범위를 표시하는 Range Object(객체)를 반환합니다.
구문은 expression.Range(cell1, cell2)인데, cell1은 필수이고, cell2는 선택입니다.
인수(Parameters)
Cell1 | A1형식으로 지정. 연속된 범위는 콜론(:), 교집합은 스페이스(한 칸 공백), 합집합은 콤마(,) 사용. 범위에 대한 이름이 정의된 경우 그 이름 사용 가능 |
Cell2 | 왼쪽 위 또는 오른쪽 아래 꼭지점에 해당하는 셀. 한 셀, 전체 열, 전체 행이 될 수 있음 |
속성이기 때문에 범위의 값을 반환하는 것이 기본이고, =(대입 연산자)를 이용해 셀에 값을 입력할 수 있고, .Select 메서드를 이용해 셀(또는 범위)을 선택할 수 있습니다.
① 셀 값 알아내기(반환)
화면 위에서 엑셀 모양 아이콘을 눌러 엑셀로 돌아갑니다.
A1셀에 25가 입력된 상태에서
아래와 같이 sub 프로시저를 작성한 후
실행(F5)하면 직접 실행창에 25가 표시됩니다.
직접 실행창이 없다면 값이 표시되지 않으므로 보기 - 직접 실행창을 클릭하거나 Ctrl + G키를 눌러서 직접 실행창을 먼저 열어야 합니다.
Debug.Print 대신
msgbox(range("a1"))
를 사용할 수 있습니다.
위와 같이 입력하고 실행하면 아래와 같이 25라는 결괏값을 표시하는 메시지 창이 열립니다.
확인 버튼을 눌러 메시지 창을 닫습니다.
② 셀 선택하기
Range("a2").se까지 입력하면 Se로 시작하는 명령어 등 목록이 표시되는데, Select가 선택되어 있으므로 Tab키를 눌러 완성하면 편리합니다. 이때 Enter키를 누르면 완성한 후 한 줄 아래로 커서가 이동합니다.
실행(F5) 한 후 위에서 엑셀 아이콘 모양의 엑셀 보기 아이콘을 눌러 엑셀로 돌아가면
A2셀이 선택되어 있습니다.
③ 셀에 값 입력하기
비주얼 베이직 에디터로 돌아가려면 개발도구 - Visual Basic 명령을 누르면 됩니다.
㉮ 방법 1
셀 주소에 값이나 수식을 직접 입력할 수 있습니다.
아래와 같이 작성한 후 실행하면
Sub 범위지정3()
Range("a2") = 12
Range("a3") = "=a1*3"
End Sub
A2셀에 12, A3셀에 =A1*3이란 수식이 들어가서 75란 값이 표시됩니다. 그러나 셀 포인터는 여전히 A2셀에 있습니다. 엑셀에서는 A3셀에 수식을 입력하고 엔터키를 치면 A4셀에 셀 포인터가 있는데 다른 점입니다.
정식 입력 방법은
Range("a2").Value = 12
라고 .value를 붙여야 하지만 Range 속성의 기본 값이 value이므로 생략해도 됩니다.
㉯ 방법 2
Selection 속성을 이용할 수 있습니다.
아래와 같이 작성합니다.
Sub 범위지정4()
Range("b2").Select
Selection = "=a2*3"
End Sub
위 실행문 중
Range("b2").Select는 b2셀을 선택하라는 의미이고,
Seleciton = "=a2*3" 은 b2셀에 a2*3이라는 수식을 입력하라는 의미입니다.
따라서, F5키를 눌러 실행한 후 엑셀을 보면
B2셀에 =A2*3이란 수식이 입력되어 있고, 수식의 결괏값 36이 표시됩니다.,
Cells 함수 등에 대해서는 따로 다루겠습니다.
'EXCEL - VBA' 카테고리의 다른 글
엑셀 VBA에서 셀 또는 범위 지정하기(3) - 여러 셀 또는 떨어진 셀 (0) | 2022.11.03 |
---|---|
엑셀 VBA에서 셀 또는 범위 지정하기(2) - Cells (0) | 2022.10.31 |
범위 등을 입력받는 Application.InputBox 메소드(2) (0) | 2022.10.21 |
범위 등을 입력받는 Application.InputBox 메소드(1) (0) | 2022.10.20 |
매크로 기록으로 엑셀 VBA의 내부를 보다 (0) | 2022.10.17 |