기초부터 실전까지 VBA 엑셀 25 - UserForm

IT 관련 지식/VBA 공부|2019. 11. 26. 22:09
반응형
728x170

VBA 엑셀 25 - UserForm

 

드디어 UserForm을 배워볼 시간입니다.

 

UserForm의 경우 VBA에서 제일 재밌는 부분중 하나입니다.

 

그 이유는 그래픽을 만들 수 있기 때문입니다.

 

여러분들이 버튼을 만들고 선택을 하고 입력을 할 수 있게 됩니다.

 


1. VBA - UserForm 시작

300x250

UserForm을 만드는 순서는 VBA에서 모듈을 만드는 순서와 크게 다르지 않습니다.

 

(혹시 VBA의 모듈을 생성하는 방법이 기억나지 않는 분은 아래의 링크를 참조해주세요!)

 

VBA 시작 준비

 

VBA 모듈 만들기

 

아래와 같이 모듈이 아닌 "사용자 정의 폼"을 클릭하시면됩니다.

 

그럼 다음과 같은 화면이 나오는데 이 화면이 나오면 성공입니다.

 

그리고 "모듈을 하나 만듭니다. "

 

 

 

 


2. 사용자 폼(UserForm) 표시하기

 

이번에는 VBA에서 명령어를 이용하여 방금 생성한 UserForm을 나타나게 해보겠습니다.

 

생성한 모듈에 다음과 같은 코드를 넣어주세요.

Sub FormShow()
  UserForm1.Show
End Sub

 

그럼 다음과 같은 화면이 나옵니다.

 

 

제목이 UserForm1이라고 나오는데 이것을 한번 바꿔보겠습니다.

 

다시 VBA 프로그래밍 창으로 들어갑니다.

 

 


3. UserForm 창의 제목 바꾸기

 

그리고 다시 UserForm을 클릭하신 다음 왼쪽 하단에 보면 아래와 같은 창이 보입니다.

 

여기서 

 

"Caption"

 

부분을 원하는 제목으로 바꾸면 UserForm의 제목이 바뀌게 됩니다.

 


더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

[IT 관련 지식/VBA 공부] - 기초부터 실전까지 VBA 엑셀1 - 매크로 사용준비

[IT 관련 지식/VBA 공부] - 기초부터 실전까지 VBA 엑셀7 - Const 상수 선언

[IT 관련 지식/VBA 공부] - 기초부터 실전까지 VBA 엑셀14 - 메세지 박스 MsgBox

 

일본에서 이야기하는 한국뉴스!

[일본 뉴스] - 일본 뉴스 분석 - 日 주요 언론, 조속한 한일 정상회담 개최 촉구

[일본 뉴스] - 일본 뉴스 분석 - 아베, 이 총리에게도 "국가간 약속지켜야" 거듭 억지

 

직장인인데 일본에서 친구를 만들고 싶다고요? 👈Click!

반응형

댓글()

기초부터 실전까지 VBA 엑셀 24 - Sheets.Add, copy, delete

IT 관련 지식/VBA 공부|2019. 11. 25. 15:31
반응형
728x170

VBA 엑셀 24 - 시트 생성, 삭제, 복사

 

이번에는 VBA를 이용하여 엑셀 시트를 추가, 삭제, 복사 등 

 

시트를 관리하는 방법에 대해 알려드리겠습니다.

 


1. VBA에서 시트 추가하기 - Worksheets.Add

 

먼저 기본 형태를 알려드리겠습니다.

 

Worksheets.Add Before, After, Count, Type

 

Before 지정된 시트의 직전에 새 시트를 추가합니다.
After 지정된 시트 바로 뒤에 새 시트를 추가합니다.
Count 추가 시트의 수를 지정합니다. 기본값은 1입니다.
Type 워크 시트의 종류를 지정합니다. 기본값은 xlWorksheet입니다.

 

Type 부분은 거의 만지지 않기때문에 그 이외의 것에 대해 설명해드리겠습니다.

 

Before, After

모두 생략하면 현재 시트의 바로 앞에 삽입됩니다.


Count

여러 시트를 동시에 추가하면 다음의 매크로가 쓰고 어렵게되므로
여러 시트를 추가하는 경우에도 1개의 시트씩 추가하도록하는 것이 좋기 때문에,
이 인수는 사용하지 않는 것이 좋습니다.

 


2. VBA로 시트의 이름 바꾸기 - .Name

 

시트 개체 .Name = "이름"

 

시트 개체는
Sheets (인덱스)
Worksheets ( "시트 이름")

 

예를 들면 다음과 같이 사용할 수 있습니다.

300x250

Worksheetes(인덱스).Name = "새로운 시트 이름"

-> Worksheets (1) .Name = "이름"

 

인덱스 자리에 시트의 이름을 넣어서도 사용 가능합니다.

 


3. VBA로 시트 복사, 이동 - Copy, Move

 

Worksheet.Copy - 워크시트의 복사

 

Worksheet.Move - 워크시트의 이동

 

시트의 복사와 이동에 대한 매소드는 다음과 같습니다.

 

Before 해당 시트의 앞으로 이동 / 복사 합니다.
After 해당 시트의 뒤로 이동 / 복사 합니다.

 

다음과 같이 사용 가능합니다.

 

Copy 메서드의 사용 예

Worksheets (1) .Copy
Worksheets (1)만의 새 책이 만들어집니다.

 

 

Move 메서드의 사용 예

Sheets ( "시트 이름") .Move After : = Sheets (Sheets.Count)
Sheets ( "시트 이름")이 해당 인덱스 시트의 다음으로 이동합니다.

 


4. VBA로 시트 삭제하기 - Worksheet.Delete

 

기본형은 다음과 같습니다.

 

Worksheet.Delete

 

하지만 이것만 사용하게 되면 

 

"정말 시트를 삭제합니까?" 라는 메세지가 나오면서 VBA가 종료됩니다.

 

그렇기때문에 다음과 같은 구문을 넣어줘야만 VBA도 도중에 멈추지 않으며

 

Application.DisplayAlerts = False

 

경고 알람없이 VBA를 이용하여 시트 삭제가 가능합니다.

 

이 구문은 Worksheet.Delete 앞에 어디던 적어놓으면 됩니다.

 


오늘은 이렇게 VBA를 이용하여 시트를 관리하는 방법에 대해 배웠습니다.

 

더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

[IT 관련 지식/VBA 공부] - 기초부터 실전까지 VBA 엑셀1 - 매크로 사용준비

[IT 관련 지식/VBA 공부] - 기초부터 실전까지 VBA 엑셀7 - Const 상수 선언

[IT 관련 지식/VBA 공부] - 기초부터 실전까지 VBA 엑셀14 - 메세지 박스 MsgBox

 

일본에서 이야기하는 한국뉴스!

[일본 뉴스] - 일본 뉴스 분석 - 日 주요 언론, 조속한 한일 정상회담 개최 촉구

[일본 뉴스] - 일본 뉴스 분석 - 아베, 이 총리에게도 "국가간 약속지켜야" 거듭 억지

 

직장인인데 일본에서 친구를 만들고 싶다고요? 👈Click!

반응형

댓글()

기초부터 실전까지 VBA 엑셀 24 - 저장하기(SaveAs), 닫기(Close)

IT 관련 지식/VBA 공부|2019. 11. 20. 08:00
반응형
728x170

VBA 공부 24 - 저장하기(SaveAs), 닫기(Close)

 

이번에는 VBA를 이용하여 엑셀을 저장하는 방법에 대해 자세히 알아보겠습니다.

 

일반적인 저장 방법에도 저장하기 / 다른 이름으로 저장하기(SaveAs) 등 여러 가지 방법이 있듯 VBA에서도 이를 설정할 수 있습니다.

 

또한 VBA의 닫기(Close) 기능을 통해 엑셀을 저장한 후 닫는 것도 배워보겠습니다.

 

그럼 먼저 제일 기본적인 형태부터 공부해보겠습니다.


1.  VBA로 엑셀 닫기(Close)

 

아래와 같은 구문을 사용합니다.

 

Workbook.Close SaveChanges, Filename, RouteWorkbook

 

각각의 매소드의 설명은 다음과 같습니다.

(RouteWorkBook의 경우 거의 사용하지 않기 때문에 생략하겠습니다.)

SaveChanges 책에 변경이없는 경우이 인수는 무시됩니다. 책에 변경이있는 경우이 인수에서 변경 사항을 저장할지 여부를 지정합니다.
Filename 변경 후 통합 문서 파일 이름.

 

모든 인수를 생략할 경우

Workbook.Close
으로 만 지정하면 통합 문서에 변경이 없으면 그대로 닫히고
북에 변경이있는 경우, 저장 확인 메시지가 표시됩니다.
그러나
Application.DisplayAlerts = False
이 지정된 경우 확인 메시지가 표시되지 않고 저장됩니다.

300x250


SaveChanges

책에 변경이있는 경우에 저장할 것인지 여부를 지정합니다.


저장하지 않고 닫기

Workbook.Close SaveChanges : = False

 

저장 후 닫기

Workbook.Close SaveChanges : = True

 


2. VBA 엑셀 저장(SaveAs)

 

저장의 경우 2가지의 기본형이 있습니다.

 

첫 번째

 

Workbook.Save

 

이 기능의 경우 이미 저장되어서 경로가 정해진 엑셀에만 사용 가능합니다.

 

경로가 정해지지 않을 경우 지정하는 윈도우가 따로 뜨게 됩니다.

 

다음은 주로 사용하는 "다른 이름으로 저장" 기능입니다.

 

Workbook.SaveAs FileName, FileFormat, Password

 

각각의 인수는 쉼표(,)로 구분합니다.

 

사용법은 다음과 같습니다.

 

FileName

전체 경로를 지정하십시오.
경로를 지정하지 않으면 현재 폴더에 저장됩니다.

 

FileFormat

엑셀 파일의 양식을 지정

xlCSV = *.csv

xlExcel4 = *.xls

xlOpenXMLWorkbook = *.xlsx

xlOpenXMLWorkbookMacroEnabled = *.xlsm

 

다음은 사용 예시입니다.

 


3. VBA 닫기(Close), 저장(SaveAs)의 예시

 

먼저 닫기(Close)에 대한 예시입니다.

Sub close1()
  If Workbooks.Count > 1 Then
    ThisWorkbook.Close SaveChanges:=False
  Else
    ThisWorkbook.Save
    Application.Quit
  End If
End Sub

간단히 설명하자면

 

엑셀 파일이 2개 이상 실행 중일 경우 현재 엑셀 파일을 저장하지 않고 종료한다..

엑셀 파일이 1개일 경우 엑셀 파일을 저장하고 종료한다.

 

다음은 "SaveAs"에 대한 예시입니다.

 

ThisWorkbook.SaveAs "C:\Users\Desktop\Book2.xls", xlExcel4

위와 같이 지정할 경우 바탕화면에 Book2라는 이름의 .xls의 확장자를 가진 엑셀 파일을 저장합니다.

 


 오늘은 VBA를 이용하여 엑셀을 저장, 닫기를 하는 매크로를 배워봤습니다.

 

더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

[IT 관련 지식/VBA 공부] - 기초부터 실전까지 VBA 엑셀1 - 매크로 사용준비

[IT 관련 지식/VBA 공부] - 기초부터 실전까지 VBA 엑셀7 - Const 상수 선언

[IT 관련 지식/VBA 공부] - 기초부터 실전까지 VBA 엑셀14 - 메세지 박스 MsgBox

 

일본에서 이야기하는 한국뉴스!

[일본 뉴스] - 일본 뉴스 분석 - 日 주요 언론, 조속한 한일 정상회담 개최 촉구

[일본 뉴스] - 일본 뉴스 분석 - 아베, 이 총리에게도 "국가간 약속지켜야" 거듭 억지

 

직장인인데 일본에서 친구를 만들고 싶다고요? 👈Click!

반응형

댓글()

기초부터 실전까지 VBA 엑셀 23 - 북 열기(Open)

IT 관련 지식/VBA 공부|2019. 11. 19. 08:00
반응형
728x170

<VBA 엑셀 23 - 북 열기(Open)>

 

이번에는 VBA를 이용하여 다른 엑셀을 여는 방법에 대해 적어보겠습니다.

 

이 기능을 이용하면 여러 가지 모드(읽기, 쓰기 전용 모드 등)로 읽을 수 있으며 아직 열려있지 않은 엑셀을 열기 때문에 다른 엑셀과 연계, 데이터 참조를 하기에도 매우 유용합니다.

 


1. VBA WorkBooks.Open의 기본형

 

Workbooks.Open (FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)

 

이번 기본형 구문의 메소드는 조금 많습니다 ㅎㅎ;;;

 

그럼 각 구문에 대해 설명을 드릴 건데요. 전부는 아니고 주로 사용하는 기능에 대해서만 설명을 드리겠습니다.

 

이름 설명
FileName 실행할 엑셀의 파일 이름.
UpdateLinks 파일의 외부 참조 (링크)의 업데이트 방법을 지정합니다.
ReadOnly 책을 읽기 전용 모드로 열려면 True를 지정합니다.
Password 암호로 보호 된 통합 문서를 여는 데 필요한 암호를 지정합니다.
WriteResPassword 쓰기 보호 된 통합 문서에 기록하는 데 필요한 암호를 지정합니다.

 

이제 각각의 매소드가 의미하는 바를 알려드리겠습니다.

 

FileName

일반적으로 엑셀 파일의 전체 경로를 지정합니다.
FileName : = "C : \ User \ sample.xls"
이와 같이 지정합니다.

 

 

만약 매크로를 쓰고있는 책과 동일한 폴더 라면
FileName : = Thisworkbook.Path & "\ sample.xls"
이와 같이 지정합니다.(여기서 sample.xls는 현재 VBA와 같은 위치의 다른 파일을 의미)
Thisworkbook.Path

위와 같이 지정하면 현재 열려있는 파일의 주소(디렉터리)를 의미합니다.

 

 

UpdateLinks

외부 참조 (링크)이있는 북을 열려고 하면
링크의 업데이트 방법을 묻는 메시지가 사용자에게 표시됩니다.
0 : 외부 참조 (링크)를 업데이트하지 않습니다.
3 : 외부 참조 (링크)를 업데이트합니다.

 


UpdateLinks : = 0
이제 링크가 업데이트되지 않고 통합 문서가 열립니다.
0  False 로 표기 일도 있지만 VBA에서는 False = 0입니다.

 

 

ReadOnly

ReadOnly : = True
파일을 읽기 전용으로 엽니다.

 

 

Password, WriteResPassword

암호로 보호된 통합 문서를 열 경우,
Password : = "읽기 암호"
WriteResPassword : = "쓰기 암호"
이렇게 하면 암호 입력이 나오지 않게 됩니다.

 

300x250

 

다음으로 사용하는 방법에 대해 알아보겠습니다. 

 


Workbooks.Open Filename : = "C : \ Test \ sample.xls"UpdateLinks : = 0, ReadOnly : = True

 

위의 VBA를 실행하면 다음과 같은 설정으로 파일을 열게 됩니다.

  • 링크 업데이트하지 않음
  • 읽기 전용 모드로 열기

이를 앞에서 배운 With과 Set을 연계하여 사용할 수 있습니다.

[IT 관련 지식/VBA 공부] - 기초부터 실전까지 VBA 엑셀 20 - with 구문

 

기초부터 실전까지 VBA 엑셀20 - with 구문

이제부터는 조금 어려운 단계의 프로그래밍을 배워보도록 하겠습니다. 코딩에서 나쁜 행동중 하나는 바로 반복입니다. 우리는 반복을 피하기 위하여 For, Do~Loop 같은 반복문을 배웠습니다...

mmol.tistory.com

Dim wb As Workbook
Set wb = Workbooks.Open(Filename:="C:\User\sample.xls")

이렇게 하면 "wb"를 입력하는 것만으로도 긴 구문을 사용하지 않고 간단히 사용할 수 있습니다.

 


오늘은 이렇게 VBA의 Open 기능에 대해 알아봤습니다.

 

더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

[IT 관련 지식/VBA 공부] - 기초부터 실전까지 VBA 엑셀 1 - 매크로 사용 준비

[IT 관련 지식/VBA 공부] - 기초부터 실전까지 VBA 엑셀 7 - Const 상수 선언

[IT 관련 지식/VBA 공부] - 기초부터 실전까지 VBA 엑셀 14 - 메시지 박스 MsgBox

 

일본에서 이야기하는 한국 뉴스!

[일본 뉴스] - 일본 뉴스 분석 - 日 주요 언론, 조속한 한일 정상회담 개최 촉구

[일본 뉴스] - 일본 뉴스 분석 - 아베, 이 총리에게도 "국가 간 약속 지켜야" 거듭 억지

 

직장인인데 일본에서 친구를 만들고 싶다고요? 👈Click!

반응형

댓글()