[VBA강좌:11] 프로그램의 요소 (2) 내용 - 오브젝트 (Object) 엑셀 VBA 강좌



자 이제부터 중요한 개념인 목적물Object 에 관해서 알아 보기로 하겠습니다.

전 포스트에서 Application (어플리케이션) 이란 특정 형식의 데이터 파일을 취급(열고 수정하고 저장하는 행위)하는
프로그램이고 이 Application 이 취급하는 파일과 파일내 기록된 내용Object (오브젝트) 라고 했습니다.

이렇게 생각 합시다.

모든 프로그램은 어떤 목적이 있기에 개발 되고 또 판매되고 구입해서 컴퓨터에 설치합니다.
그 목적을 구현하기 위해서 또는 구현한 결과는 목적물로 존재하게 된다.
그 목적물은 때로는 새로 만들어 지기도 하고 변형되기도 하고 필요할 때 꺼내 보기도 하며
더 이상 필요가 없을 때는 소멸 시킬 수도 있다.
이 모든 과정이 Application 이 내 컴퓨터에 설치되어 사용하는 목적이다.

이 목적의 과정이고 결과인 모든 목적물이 바로 Object 입니다.
Object 는 Application 을 통해 생성되고 변형되고 참조되며 때로는 소멸될 수 있는
퓨터 기록 장치에 기록된 내용메모리에 탑재된 내용이다.  라고 생각하십시요.

즉 Excel 이라는 Applcation 을 통해서 Excel 이라는 Application(프로그램)은 수정 변경 소멸 시킬 수 없으므로
Excel Application 은 Excel Application 의 Object 가 될 수 없습니다.
Excel Applicatioin 은 Windows 라는 OS(Operating System) 에서 수정 변경 소멸 될 수 있으므로
Windows 시스템의 Object 는 될 수 있습니다.

자..  엑셀을 시작해 봅시다.

 빈 시트가 나오고 시트 좌측 상단에 Book1 이라고 표시되어 있을 것입니다.
 Book1 의 아이콘을 보십시요.
 
 엑셀파일을 표시하는 파일의 아이콘이 있습니다.
 즉 Book1 은 파일의 이름이라는 것입니다.

 단 아직 저장장치에 기록되지 않은 메모리에 잠시 만들어진 파일입니다.
 Excel 이라는 Application 을 시작하니까 이 Application 은 자동으로 메모리에 새로운 파일 하나를 만들고
 그 이름을 Book1 이라고 자기 마음대로 붙혀 놓은 것입니다.

 이대로 저장하면 지정한 위치에 Book1.xlsx 라는 파일이 생성될 것입니다.
 즉 메모리에 임시로 생성된 파일이 실지로 저장장치에 데이터파일 형태로 기록이 되는 것이지요.

 이 데이터 파일을 나중에 엑셀에서 '열기' 하면
 Excel Application 은 메모리에 동일한 파일구조를 만들고 파일의 내용을 읽어 메모리에 탑재합니다.
 이것이 '열기'의 과정입니다.

 자 이후에 사용자가 어떤 내용을 시트내의 셀에 입력을 하던 그 내용은 메모리에 있는 임시 파일에 대해
 행해지는 것이지 저장장치의 데이터 파일에는 아무런 영향을 미치지 않습니다.

 내용을 수정하고 '저장'을 하게 되면
 Applicatioin 은 메모리에 수정된 파일을 그대로 저장장치에 다시 기록하게 됩니다.

 자 이렇게 저장장치에 기록된 파일이거나 아니면 열어서 메모리에 탑재된 파일이거나
 그냥 자동으로 시작과 동시에 메모리에 형성된 파일이거나
 이 '파일' 이 Application 이 다루는 일차 목적물(Object) 입니다.

 Excel 에서는 이 '파일' 목적물을 WorkBook Object 라고 부릅니다.
 이 WorkBook Object 는 새로 생성시키면 Book1 이라고 이름 붙혀지며
 '다른이름으로 저장' 할 경우 WorkBook Object 의 이름이 변경됩니다.
 그 이름은 저장장치에 저장된 파일 이름과 동일합니다.
 즉 엑셀에서 저장한 데이터 파일WorkBook Object 인 것입니다.

 자. WorkBook 은 바로 .xlsx .xls 등의 확장자를 가진 '엑셀데이터파일' 입니다.

Excel Application 의 최 상위 Object 인 Exel 파일 (WorkBook Object)



 WorkBook Object 는 Excel Application 에서 '새로만들기' '열기' '저장' '다른이름으로 저장' 등을 통해
 '생성'  '변경' 등의 작업을 할 수 있습니다.



 다음 파일 하단을 보면
 위의 그림처럼 Sheet1, Sheet2, Sheet3 라는 Tab 이 있고 이 Tab 중 하나를 찍어
 여러개의 Sheet 중 하나를 선택할 수 있도록 되어 있습니다.
 즉 하나의 엑셀 파일 (WorkBook) 내에는 하나 이상의 Sheet 들이 존재하고 있으며
 이 각각의 Sheet 에는 각가 다른 내용을 기록할 수가 있습니다.

 이 WorkBook Object 내에 존재하는 Sheet 들을 WorkSheet Object 라고 부릅니다.
 이 WorkSheet Object 는 Sheet 탭에서 마우스 우클릭을 통해 메뉴를 호출해서
 새로 생성 하거나 이름을 바꾸거나 소멸시키거나 할 수 있습니다.

 다음엔 데이터를 입력하는 각 WorkSheet Object 내의 공간이 있습니다.

 A 부터 B C D E  ...  이렇게 이름 붙혀진 열과 1 2 3 4 로 번호 붙혀진 각 행으로 이루어진
 격자형태의 데이터 입력 부분이 바로 그것인데  이 입력 공간을 Range Object 라고 합니다.

 이 Range Object 는 사용자가 키보드로 데이터를 입력하거나 변경, 삭제 등을 하면서 
 마음대로 주무를 수 있는 가장 하위의 Object 입니다.

 이 Range Object 의 이름은 열번호와 행번호로 강제로 부여되는데
 'A1'  'A2' 'B1' 'B2' 이런 식으로 부여됩니다.
 또한 Range Object 는 단일 셀뿐 아니라  'A1:B3'  'B4:Z19' 이런 식으로 
 여러개의 셀의 범위로 지정될 수도 있습니다.

 WorkBook 과 WorkSheet 의 이름은 사용자가 임의로 지정하거나 변경할 수 있지만
 Range Object 의 이름은 사용자가 변경할 수 없습니다.

 또한 Range Object 내의 내용은 사용자가 소멸시킬 수 있지만
 Rangel Object 자체를 소멸시킬 수는 없습니다.

 무슨 말이냐 하면 'A1' 셀의 내용을 '삭제'를 시킬 경우
 'A1' 셀 내의 내용은 사라지지만 'A1' 셀 자체는 사라지지 않는 다는 뜻입니다.

 WorkBook 혹은 WorkSheet Object 는 OS 의 파일삭제 및 Sheet 메뉴를 통해서
 Object 자체를 완전 무결하게 소멸 시킬수 있지만 Range Object 는 소멸시킬 수 없습니다.

 이점이 WorkBook Object, Sheet Object 와 Range Object 의 다른 점입니다.

 자 이해가 되셨습니까?
 아주 상식적인 이야기 입니다.   
 이걸 전문용어처럼 뭐 도표 그려서 개체 객체 상위 하위 이런 단어로 구현하면 머리 뽀개집니다.

 다시 간단히 정리합니다.
 Object 란 Application 을 통해 생성 변경 소멸 시킬 수 있는 것들이다.
 Excel Application 은 WorkBook 이라는 파일 Object 가 있고
 WorkBook Object 에는 WorkSheet 라는 Sheet Object 가 여러개 있으며
 각 Sheet Object 에는 사용자가 데이터를 입력할 수 있는 Range Object 라는 공간이 있다.

 앞으로 본격적으로 VBA 프로그램이 시작 되면 가장 많이 다루어야 할 Object 가
 바로 이 Range Object 입니다.    





 

덧글

  • 라즐로 2012/12/07 18:05 # 삭제 답글

    이부분 이해가 아주 쉽게 된듯 합니다.
  • 원격데스크톱 2013/02/15 00:05 # 삭제 답글

    호... 좋네요. 이번 강좌.
  • 생원 2014/09/01 15:08 # 삭제 답글

    Very nice ㅎㅎ
  • comic 2015/04/15 15:28 # 삭제 답글

    짝!짝!짝!짝!,,,, Perfect !!
댓글 입력 영역