기초부터 실전까지 VBA 엑셀21 - PasteSpecial

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

<VBA 엑셀21 - PasteSpecial>

 

이번에는 특별한 붙여넣기 PasteSpecial에 대해 알아보겠습니다.

 

이 기능은 셀의 내용을 복사 or 잘라내여 붙여넣을 때

 

셀의 내용의 일부만 붙여넣을 수 있는 기능입니다.

 

예를 들면 수식이 아니라 그 "값"만 붙여넣거나 서식을 제외하고 수식만 붙여넣을 수 있는 기능입니다.

 


1. VBA PasteSpecial의 기본형과 매소드

 

PasteSpecial의 기본형태는 다음과 같습니다.

 

Range.PasteSpecial (Paste, Operation, SkipBlanks, Transpose)

 

그리고 각각의 매소드는 다음과 같은 기능을 포함하고 있습니다.

 

이름  지정 값 설명
Paste  xlPasteAll 모두 붙여 넣습니다.
 xlPasteAllExceptBorders 윤곽 제외한 모든 붙여 넣습니다.
 xlPasteColumnWidths 복사 한 열 너비를 붙여 넣습니다.
 xlPasteComments 코멘트를 붙여 넣습니다.
 xlPasteFormats 서식을 붙여 넣습니다.
 xlPasteFormulas 수식을 붙여 넣습니다.
 xlPasteFormulasAndNumberFormats 수식 및 숫자 서식을 붙여 넣습니다.
 xlPasteValues 값을 붙여 넣습니다.
 xlPasteValuesAndNumberFormats 값 및 숫자 서식을 붙여 넣습니다.
Operation  xlPasteSpecialOperationAdd 복사 된 데이터는 대상 셀의 값에 추가됩니다.
 xlPasteSpecialOperationDivide 복사 된 데이터는 대상 셀의 값으로 나눗셈됩니다.
 xlPasteSpecialOperationMultiply 복사 된 데이터는 대상 셀의 값에 곱셈됩니다.
 xlPasteSpecialOperationSubtract 복사 된 데이터는 대상 셀의 값에 뺄셈됩니다.
 xlPasteSpecialOperationNone 붙여 넣기 작업으로 계산되지 않습니다.
SkipBlanks  변형 (Variant) 클립 보드에있는 빈 셀을 붙여 넣기 대상으로하지 않도록하려면 True를 지정합니다.
기본값은 False입니다.
Transpose  변형 (Variant) 붙여 넣기 할 때 데이터의 행과 열을 바꾸려면 True를 지정합니다.
기본값은 False입니다.

 

사실 위에 있는 표의 기능을 전부 사용하지는 않습니다.

 

그래서 자주 사용하는 것만 말씀드리자면

 

① Paste의 xlPasteFormats, xlPasteFormulas, xlPasteValues

 

② Transpose의 Ture / False 

 

이 두 개정도만 외워두시면 사용하는데 큰 지장이 없을거라 생각됩니다.

 

그럼 다음으로 예문을 살펴보겠습니다.

 


2. VAB PasteSpecial의 예문

300x250

① 각 매소드는 ,(쉼표)를 이용하여 구분합니다.

② 각 매소드는 순서대로 적용하여야 합니다 (Paste → Operation → SkipBlanks → Transpose)

③ 단, 처음 적용하는 Paste의 경우에는 ,(쉼표)가 아니라 띄워쓰기로 사용합니다.

④ 복사한 셀과 붙여넣는 셀이 겹치면 안됩니다.

Range("A1:A10").Copy
Range("A11").PasteSpecial Paste:=xlPasteValues, Transpose:=True

위와 같이 코딩한 후, 아래와 같은 표를 만듭니다.

VBA를 실행하기 전

그리고 VBA를 실행시켜보면 다음과 같이 됩니다. 

"A11"에 행과 열이 바뀌어서 붙여넣기가 된 것을 볼 수 있습니다.

 

이렇게 행과열을 바꿀 수 있는 코딩도 만들 수 있습니다.

 


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

 

더 많은 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 엑셀18 - 셀 특성(서식) 지정

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

<VBA 엑셀18 - 셀 특성(서식) 지정>

 

이번에는 VBA를 이용해 셀의 서식을 지정하는 방법에 대해 알아보겠습니다.

 

이전 시간에 이어 또 셀의 조작에 대한 이야기입니다!

[IT 관련 지식/VBA 공부] - 기초부터 실전까지 VBA 엑셀17 - 셀 선택, 활성화, 삭제, 삽입

 

셀에 대한 내용은 별로 재미없지만, 꼭 필요한 내용이니 한번쯤 봐두면

 

나중에 아! 이런 기능이 있었지 하면서 기억이 나실겁니다.

 

프로그래밍이라는 것은 코딩을 전부 기억할 필요가 없습니다.

 

여러분이 필요할 때 인터넷 검색을 해서 찾으시면되요.

 

단지 이러한 기능이 있다는 걸 알고 있어야 검색을 할 수 있겠죠? ㅎㅎ

 


1. VBA로 셀의 표시형식 바꾸기

먼저 VBA가 아니라 엑셀에서 이를 어떻게 수정하는지 보겠습니다.

 

엑셀에서 셀을 클릭한 후 Ctrl+1을 눌러봅시다.

 

그럼 아래와 같은 화면을 볼 수 있는데, 이게 셀의 표시형식입니다.

 

이 항목을 이용하면 간편하게 숫자의 단위, 날짜, 통화 등을 설정할 수 있습니다.

 

그럼 이제 VBA에서 이를 실행하는 방법을 보겠습니다.

 

Range("A1").NumberFormatLocal = "표시 형식 문자"

 

여기 있는 "표시 형식 문자"의 경우 아래의 인덱스를 의미합니다.

 

형식 문자 설명
G / 표준 표준 형식입니다.
_ (언더 바) _ (언더 바)에 계속되는 문자의 폭만큼 간격을 확보 할 수 있습니다.
@ 입력 값을 문자열로 그대로 표시합니다.
# 소수점 중 측에서도 형식의 # 기호의 수보다 적은 경우 0이 표시되지 않습니다.
0 숫자의 자릿수를 의미합니다. 
? 유효 자리가 아닌 0에 공백이 삽입되기 때문에 열에서 소수점의 위치가 정렬됩니다.
. (마침표) 수치에 소수점을 표시합니다.
(쉼표) 숫자 구분 기호를 표시합니다.
yy 연도를 두 자리 숫자로 표시합니다.
yyyy 연도를 네 자리 숫자로 표시합니다.
m 개월 수를 표시합니다. 1 ~ 12을 표시 할 수 있습니다.
mm 01 ~ 12를 표시 할 수 있습니다. 1 ~ 9 01 ~ 09과 0 첨부로 표시됩니다.
mmm Jan ~ Dec
mmmm January ~ December
d 일자를 표시합니다. 1 ~ 31을 표시 할 수 있습니다.
dd 01 ~ 31를 표시 할 수 있습니다.
ddd Sun ~ Sat
dddd Sunday ~ Saturday
aaa 일 ~ 토
aaaa 일요일 ~ 토요일
h 시간을 표시합니다. 0 ~ 23가 표시됩니다.
hh 00 ~ 23를 표시 할 수 있습니다.
m 분을 표시합니다. 0 ~ 59가 표시됩니다.
mm 00 ~ 59를 표시 할 수 있습니다.
s 초를 표시합니다. 0 ~ 59가 표시됩니다.
ss 00 ~ 59를 표시 할 수 있습니다.
[h] 24시를 넘는 시간을 표시합니다.
[m] 60 분 이상의 분을 표시합니다.
[s] 60 초 이상 초를 표시합니다.

즉, 

Range("A1").NumberFormatLocal = "yyyy/mm/dd"

 

이렇게 코딩을 한 후 

 

"A1"에 19450812라고 입력하면 자동으로

 

1945/08/12라고 나오게 됩니다.

 

300x250

2. VBA로 셀 내용 배치하기

주로 사용하는 가로의 배열만 알려드리겠습니다.

 

먼저 기본형의 경우 다음과 같습니다.

 

Range.속성 = 설정 값

여기서

속성 = HorizontalAlignment

설정값 = xlCenter

이렇게 지정해주시면 됩니다. 

HorizontalAlignment  xlCenter 중앙
 xlDistributed 균등 분할
 xlJustify 맞춤
 xlLeft 왼쪽
 xlRight 오른쪽

즉, Ragne("A1").HorizontalAlignment=xlCenter

로 설정시 "A1" 셀은 중앙정렬의 상태가 됩니다.

 


3. VBA로 셀 색채우기

먼저 기본형입니다.

 

Range.Interior.속성치= 설정치

 

속성치 = Color

설정치 = 인덱스 또는 RGB

속성 속성 설명 속성 설정 값 및 설명
Color 채우기 색 RGB 값을 나타내는 상수
ColorIndex 채우기 색 56 색 팔레트의 인덱스

 

이를 다음과 같이 2가지로 사용할 수 있습니다.

 

① Color 속성사용

vbBlack 검정
vbRed 빨랑
vbGreen 초록
vbYellow 노랑
vbBlue 파랑
vbWhite 화이트

Ragne("A1").Interior.Color = vbBlack

 

이렇게 하면 "A1" 셀은 검은색으로 칠해질 것입니다.

 

② 팔레트를 이용

 

팔레트를 이용할 경우 다음과 같이 RGB 함수를 이용해야합니다.

 

RGB (red, green, blue)

 

이를 활용하여 다음과 같이 나타냅니다.

 

Ragne("A1").Interior.Color = RGB(0, 0, 0)

 

RGB(0, 0, 0)의 경우 vbBlack과 마찬가지로 검은색을 나타냅니다.

 


이렇게 오늘은 셀의 서식에 대해 공부했습니다.

 

오늘 힘드네요 ㅎㅎ

 

다음에는 셀을 복사, 붙여넣기 하는 방법을 배워보도록 하겠습니다.

 

더 많은 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

 

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

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

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

반응형

댓글()