728x90
목차

1. 시트의 종류

2. 시트의 활성화 - Activate

3. WorkSheet를 컨트롤 하는 명령어

 

 

엑셀은 3차원 혹은 4차원 데이터 체계입니다.

우선 행과 열로 보이는 2차원으로 시트가 이루어져 있고 시트가 모여서 3차원의 파일이 됩니다.

파일을 모아서 폴더를 형성하고 DATABASE로 이어 질 수 있겠지만 여기까지는 생각하지 말죠.

기본적으로 시트인터페이스는 쉽지만 VBA로 사용하는 법을 정리했습니다.

 

행과 열의 1개 시트 → 시트들이 모인 파일 → 파일들을 여러개 만들면 4차원 DATABASE

 

엑셀 인터페이스에서는 맨 하단에 시트의 정보가 표시됩니다.

VBA 개발도구 인터페이스에서는 좌측에 표시됩니다.

 

(좌) 엑셀 인터페이스 / (우) VBA 인터페이스

엑셀 인터페이스에서는 시트 이름이 표시되고

VBA 인터페이스 Microsoft Excel 개체에서는 Sheet1 (Sheet1) = Sheet(시트번호) (시트이름)으로 표기됩니다.

시트를 삭제하고 시트를 추가하면 해당 번호가 없어지지만 엑셀파일을 종료했다 다시 열면 그번호를 메꿔집니다.

 

예시

  • 처음 : Sheet1, Sheet2, (Sheet3-삭제), Sheet4, Sheet5 ← 삭제를 해도 무시하고 이후 번호가 하나씩 올라갑니다.
  • 파일을 껏다 다시 켜면 : Sheet1, Sheet2, Sheet4, Sheet5 ← 3이 없는 상태
  • 이 상태에서 만들면 : Sheet1, Sheet2, Sheet4, Sheet5, Sheet3 ← 3이 다시 생겨요

 

 

1. 시트의 종류

VBA에서는 시트의 종류를 아래처럼 표시합니다.

Name 코드 설명
xlChart -4109 챠트시트
xlDialogSheet -4116 MS Excel 5.0 Dialog 시트
xlExcel4IntlMacroSheet 4 MS Excel 4.0 Mecro 국제 시트
xlExcel4MacroSheet 3 MS Excel 4.0 Mecro 시트
xlWorksheet -4167 일반적인 시트

시트 추가시에도 선택할 수 있습니다

 

2. 시트의 활성화 - Activate

특정 시트를 지정해서 작업을 할 수도 있고 작업을 할 시트를 미리 activate로 활성화 할 수 있습니다.

workbooks("파일이름").worksheets(1).activate        '시트번호 1을 활성화한다.
workbooks("파일이름").worksheets("설명").activate   '시트이름이 "설명"인 시트를 활성화한다.

 

 

320x100

 

 

3. WorkSheet를 컨트롤 하는 명령어

sheet.Add (Before or After, Count, Type) : 엑셀의 시트를 추가한다.

  • "Before" or "After" : 몇번째 시트 전에 혹은 후에 추가할지 선택
  • Count : 몇 개의 Sheet를 만들지 선택, 입력하지 않으면 1개 추가
  • Type : 워크 시트의 종류를 지정한다.
Set Sheet = ActiveWorkbook.Sheets.Add(After:=ActiveWorkbook.Worksheets(2), Count:=3)
'시트번호 2번 뒤에 시트 3개를 만든다.

여러개를 만들면 sheet3, sheet2, sheet1 순서로 만들고 마지막의 sheet3가 활성화됩니다.

expression.Copy (Before, After) : 엑셀의 시트를 카피한다.

  • "Before" or "After" : 몇번째 시트 전에 혹은 후에 추가할지 선택
Worksheets("Sheet1").Copy After:=ActiveWorkbook.Worksheets(3)
'시트이름 sheet1을 3번 시트 뒤에 카피한다.

expression.Delete : 시트를 지운다.(DisplayAlerts을 변경해서 묻는 창을 뜨게 할 지 선택가능)

Application.DisplayAlerts = False  '시트 삭제시 묻는 창을 안뜨게 한다.
worksheets("sheet1").delete        'sheet1을 삭제한다.

 

expression.FillAcrossSheets (Range, Type) : 동일한 값을 여러시트에 붙입니다.

  • Range : 어디에 있는 값을 붙여 넣을 것인지를 선택
  • [Type] : 선택사항으로 어떻게 입력할 지를 선택한다.
Sheets.FillAcrossSheets Worksheets(1).Range("A1:C5")
'sheet1의 "A1:C5" 범위를 모든 시트에 붙여 넣는다.

[Type] 은 아래과 같습니다.

Name Value Description
xlFillWithAll -4104 내용과 서식을 모두 붙여 넣습니다.
xlFillWithContents 2 내용만 붙여 넣습니다.
xlFillWithFormats -4122 서식만 붙여 넣습니다.

expression.Move (Before or After) : 시트를 이동한다. "Before" or "After"로 몇번째 시트 전에 혹은 후에 추가할지 선택

expression.Select (Replace) : 시트를 선택한다. Replace가 True면 단일선택, False는 중복 선택

expression.name : 시트의 이름을 불러오거나 변경한다.

a = worksheets(1).name               '1번 sheet의 이름을 불러온다.
worksheets("설명").name = "변경"     '설명 시트의 이름을 변경으로 변경한다.

expression.visible = 0 or 1 : 0이면 숨기기, 1이면 숨기기 취소

expression.protect or unprotect : protect면 시트를 보호하고, unprotect는 시트를 보호하지 않는다.

expression.next or previous.select : 지정한 시트의 전 혹은 후의 시트를 선택합니다.

 

728x90
반응형

+ Recent posts