목차
엑셀은 3차원 혹은 4차원 데이터 체계입니다.
우선 행과 열로 보이는 2차원으로 시트가 이루어져 있고 시트가 모여서 3차원의 파일이 됩니다.
파일을 모아서 폴더를 형성하고 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 '시트이름이 "설명"인 시트를 활성화한다.
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 : 지정한 시트의 전 혹은 후의 시트를 선택합니다.
'엑셀' 카테고리의 다른 글
엑셀 VBA로 같은 폴더의 파일이름 추출하고 변경하는 소스코드(하위폴더 포함, name 사용하기) (0) | 2023.02.09 |
---|---|
엑셀 숫자 자리수 표시하는 방법(ROUND 함수, 셀 서식, 양식 작성 사용) (0) | 2023.02.07 |
엑셀 막대 그래프와 꺽은 선형을 합치는 혼합형 챠트 그리는 법(데이터 관리) (0) | 2023.02.06 |
엑셀(Excel) 함수 Weeknum과 Weekday를 사용해서 주차 세기(ISOWeeknum) (0) | 2023.02.03 |
엑셀(EXCEL) Linest 함수와 추세선 그래프 상관성(R2) 데이터 분석하기 (0) | 2023.01.31 |