기초부터 실전까지 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 엑셀20 - with 구문

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

<VBA 엑셀20 - with>

 

이제부터는 조금 어려운 단계의 프로그래밍을 배워보도록 하겠습니다.

 

코딩에서 나쁜 행동중 하나는 바로 반복입니다.

 

우리는 반복을 피하기 위하여 For, Do~Loop 같은 반복문을 배웠습니다.

 

하지만 이번에는 코딩을 더욱 간략하게 하는 With 이라는 구문에 대해 배워보겠습니다.

 


1. VAB With의 기본형

 

다음은 With의 기본 사용법입니다.

 

With 오브젝트
  .오브젝트 = 값 
  .메소드 
End With

 

300x250

아마 이렇게만 보시면 이해가 잘 가지않으리라 생각합니다.

 

그래서 바로 예제로 설명을 해보겠습니다.

 


2. VBA With의 예문

 

다음은 결과가 같은 예문을 한쪽은 With구문을 사용하지 않고

 

다른 한쪽은 With 구문을 사용하여 표현해보겠습니다.

 

아래의 코딩은 With 구문을 사용하지 "않은" 코딩입니다.

Worksheets(1).Cells(1, 1) = 1
Worksheets(1).Cells(2, 1) = 2

 

다음은 With 구문을 "사용한" 예문입니다.

With Worksheets(1)
  .Cells(1, 1) = 1
  .Cells(2, 1) = 2
End With

 

둘 다 Sheet(1)의 "A1", "B1"에 각각 "1", "2"를 넣는 코딩이지만

 

그 과정이 조금 다릅니다.

 

위의 예문의 경우 조금 짧기 때문에 With 구문을 사용한 예문이 좀 더 복잡하게 보입니다.

 

그럼 실제로 사용하는 예를 한번 보겠습니다.

With Range("A1").Font
  .Bold = True
  .Color = vbRed
  .Size = 12
End With

이번에는 좀 더 확 와닿을거라 생각합니다.

 

우리는 With Range("A1").Font만 보고 이제부터 "A1"의 Font에 대해 뭔가를 설정할 것이라는 것을 알 수 있습니다.

 

그리고 그 설정은 Bold / Color / Size라는 것도 알 수 있습니다.

 

이 처럼 With 구문을 사용할 때에는 한개의 오브젝트(Range("A1").Font)에 여러개의 매소드(.Bold 등)를 사용할 때 효과적이라는 것을 알 수 있습니다.

 

또한 With 구문을 사용할 경우 프로그래밍의 처리속도도 빨라지게 됩니다.

 

단, 사용하는 매소드가 적은데 With 구문을 사용할 경우 오히려 가독성이 떨어지게 됩니다.

 

또한 With 구문을 사용했을 경우에는 마지막에 "End With"을 반드시 적어야합니다.


오늘은 여기까지 하겠습니다.

 

다음에는 붙여넣기의 새로운 방법에 대해 알아보겠습니다.

(보니까 포스팅 하는 것을 까먹었더라고요....)

 

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

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

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

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

 

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

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

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

 

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

반응형

댓글()

기초부터 실전까지 VBA 엑셀15 - 입력 상자 InputBox

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

<실전까지 VBA 엑셀15 - 입력 상자 InputBox>

 

이번에는 텍스트를 입력할 수 있는 입력 상자에 대해 알아보겠습니다.

 

메세지 박스가 이용자에게 경고, 알림을 하기 위한 것이었다면

 

입력 상자는 사용자로부터 정보를 얻기 위해 사용합니다.

 

이것을 배우고 나면 이제 여러분은 수치를 입력하고

 

VBA 매크로를 통해 결과를 받아볼 수 있는 프로그램을 만들 수 있게 됩니다.

 

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


1. 입력상자의 개념

InputBox (prompt [, title] [, default] [, xpos] [, ypos] [, helpfile, context])

 

각 구문의 설명은 다음과 같습니다.

 

prompt 반드시 지정합니다.
대화 상자에서 메시지로 표시되는 문자열을 나타내는 문자열 식을 지정합니다.
명명 된 인수 prompt로 최대 길이는 1 바이트 문자로 1,024 자입니다.
title 선택 사항입니다.
대화 상자의 제목 표시 줄에 나타나는 문자 식을 지정합니다.
명명 된 인수 title을 생략하면 제목 표시 줄에는 응용 프로그램 이름이 표시됩니다.
default 선택 사항입니다.
사용자가 아무것도 입력하지 않을 경우 텍스트 상자에 기본값으로 표시하는 문자열 식을 지정합니다.
명명 된 인수 default를 생략하면 텍스트 상자에 아무것도 표시되지 않습니다.
xpos 선택 사항입니다.
화면의 왼쪽 가장자리에서 대화 상자의 왼쪽 가장자리 사이의 수평 거리를 twip 단위로 나타내는 수식을 지정합니다.
명명 된 인수 xpos를 생략하면 대화 상자는 수평 방향에 대해 화면의 중앙 위치에 배치됩니다.
ypos 선택 사항입니다.
화면 상단에서 대화 상자의 상단까지의 수직 거리를 twip 단위로 나타내는 수식을 지정합니다.
명명 된 인수 ypos 생략하면 대화 상자는 수직에 화면의 상단으로부터 약 1/3 위치에 배치됩니다.
helpfile 선택 사항입니다.
대화 상자에 상황에 맞는 도움말을 설정하기 위해 사용하는 도움말 파일의 이름을 나타내는 문자열 식을 지정합니다.
이 인수는 표시하는 대화 상자의 설명을 도움말을 사용하여 볼 때 지정합니다.
명명 된 인수 helpfile을 지정한 경우 명명 된 인수 context도 지정해야합니다.
context 선택 사항입니다.
도움말 항목에 지정된 컨텍스트 번호를 나타내는 수식을 지정합니다.
명명 된 인수 context를 지정하면 명명 된 인수 helpfile도 지정해야합니다.

위에서 주로 사용되는 것은 prompt, title, default 이렇게 3개입니다.

 

입력 상자의 경우 사용자가 입력한 값을 받아야하기 때문에 그에 따른 변수가 필요합니다.

 

이는 다음 예문에서 살표보겠습니다.

300x250

2. InputBox의 예문

먼저 InputBox의 가장 기본적인 사용법부터 시작하겠습니다.

 

① VBA InpuBox 기본 활용법

Sub inputbox1()

Dim strIn As String
strIn = InputBox("값을 입력해주세요")

End Sub

 

결과

이 입력상자에 무언가를 입력할 경우

 

그 값이 위에서 지정한 strln이라는 변수 안으로 들어간다.


② VBA InputBox 응용 활용법

Sub inputbox2()

Dim strIn As String
strIn = InputBox("값을 입력해주세요" & vbLf & "숫자만 가능합니다.", "Only Number", "10")

End Sub

 

결과

 

이번에는 입력 상자의 텍스트에 줄바꿈과 Title 변경, 초기값을 입력해봤습니다.

 

지금은 "숫자만 가능합니다."라고 써놨어도 아무거나 입력 가능하지만

 

나중에 진짜 숫자만 입력 가능하게 하는 방법도 하나씩 알려드리도록 하겠습니다.

 


이번에는 VBA에서 InputBox에 대해 알아봤습니다.

 

다음에는 VBA를 이용하여 셀을 다루는 법에 대해 알아보겠습니다! 

 

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

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

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

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

 

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

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

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

반응형

댓글()

기초부터 실전까지 VBA 엑셀13 - 조건문 Select Case

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

<VBA 엑셀13 - 조건문 Select case>

 

이번에는 if 조건문과 조금 다른 Selece Case라는 조건문에 대해 알아보겠습니다.

 

사실 이 Select ~ Case는 ElseIf과 매우 비슷합니다.

 

하지만 조건이 많을 경우 Select Case가 훨씬 유리한데요

 

그 이유는 코딩이 짧아지고 직관성이 높아지기 때문입니다.

 

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

 


1. 기본형

 

기본 형태는 아래와 같습니다.

 

그럼 이제 하나씩 살펴보도록 하죠

Select Case testexpression
    [Case expressionlist-n
        [statements-n]]
    ...
    [Case Else
        [elsestatements]]
End Select

 

testexpression 반드시 지정해야합니다.
주로 변수를 지정합니다.
expressionlist-n "testexpression"에서 지정한 변수가 만족할 조건을 입력합니다.
statements-n 선택 사항입니다.
"expressionlist-n"이 만족될 경우 실행할 코딩을 적는 구간입니다.
elsestatements 선택 사항입니다.
인수 testexpression이 모든 Case 절과 일치하지 않을 때, 실행할 코딩을 적는 구간입니다.

 


2. 예문

 

① 기본형

Select Case i `i는 여기서 변수
  Case 1
    'i=1일때 처리
  Case 2
    'i=2일때 처리

  Case Else
    'i가 위의 조건을 만족하지 않을때 처리
End Select

 

② Or 조건

 

Select Case i `i는 여기서 변수
  Case 1, 2
    'i=1 or 2일때 처리
  Case 3, 4
    'i=3 or 4일때 처리

  Case Else
    'i가 위의 조건을 만족하지 않을때 처리
End Select
300x250

 

 

③ 범위 지정

 

Select Case i `i는 여기서 변수
  Case 1 To 3
    'i= 1~3일때 처리
  Case 4 To 6
    'i= 4~6일때 처리

  Case Else
    'i가 위의 조건을 만족하지 않을때 처리
End Select

 

④ 부등호 사용

 

Select Case i `i는 여기서 변수
  Case Is < 2
    'i < 2일때 처리
  Case Is >=5
    'i >= 5일때 처리

  Case Else
    'i가 위의 조건을 만족하지 않을때 처리
End Select

 

주로 위와 같이 4개의 경우를 이용하여 사용할 수 있습니다.

 

그럼 마지막으로 If 조건문에서 사용한 예제를 Select Case를 이용하여 표현해보고 마치겠습니다.

 

<If절을 사용한 조건문>


Sub if1()

    If Cells(1, 1) >= 100 Then
        Cells(1, 2) = "○"
    Else
        Cells(1, 2) = "×"
    End If

End Sub

 

<Select Case를 사용한 조건문>

Sub select1()

    Select Case Cells(1, 1)
    
        Case Is >= 100
            Cells(1, 2) = "○"
        
        Case Else
            Cells(1, 2) = "X"
    End Select
    
End Sub

 

위와 같이 동일한 결과를 다른 프로그램을 이용하여 만들 수 있습니다.


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

 

다음에는 신기한 MsgBox라는 것에 대해 알아보겠습니다!

반응형

댓글()