[VBA 제 09강] 복사에 대하여Ⅰ 썸네일 이미지
[VBA 제 09강] 복사에 대하여Ⅰ
콘텐츠 타입 MS 오피스 엑셀 2003(2007, 2010가능), Windows XP 이상
용량0KB
조회1,957
즐겨찾기
[VBA 제 09강] 복사에 대하여Ⅰ를 즐겨찾기 한 횟수는 1 1입니다.
이용등급 유료 (회원권 or 단품 구매)
평생이용

엑셀쿠키는 한 번의 다운로드로 평생 이용하실 수 있습니다. 프로그램과 데이터를 고객의 PC에 저장하여 사용하는 형식이라 안전하게 사용 가능합니다. 이용 기간에 따른 추가 비용이 발생하지 않아 매우 경제적입니다.

맞춤형

중소기업의 개별 특성, 다양한 업무를 상황별로 고려하여 제작된 프로그램을 업데이트합니다. 분야별 5,000여 개의 프로그램 중 내 업무에 맞는 프로그램을 다운받는 맞춤형 서비스입니다.

쉬운 활용

쿠키 프로그램은 MS Excel의 기본 사용법만 알면 즉시 사용할 수 있는 매운 쉬운 프로그램으로 누구나 손쉽게 배우고 사용할 수 있습니다.

중소기업의 모든 업무자동화!

엑셀쿠키로 모두 해결하세요!
1 Vector 11
image 59
image 60
image 56
Pro display XLS Vector 12
Microsoft Excel 표준

쿠키의 업무자동화 프로그램은 VBA 코드로 개발된 제품으로
MS Excel 프로그램 기반으로 사용 가능하며,
자체적으로 개발한 기능은 물론,
MS Excel의 강력한 기능을 모두 사용하실 수 있습니다.

241202_coukey_BI_white2_07

엑셀쿠키는 기업의 생산성을 높이는 업무자동화 지원 프로그램입니다.

image 62 image 70 image 61 image 71 image 65 image 66 image 64 image 68
image 63 image 69
제품 상세정보

 




[ 기초 강좌 ]

 

제 9강

복사에 대하여Ⅰ

 

VBA - 복사

그 사용법을 알아봅니다.

이럴 때 필요해요

"복사" , "붙여넣기" 를 수행하는 방법에 대해 알고 싶을 때

이렇게 사용해요

오늘은 VBA로 "복사"하여 "붙여넣기" 까지를 수행하는 방법에 대해 알아 보겠습니다.

※ 복사기의 "복사"와 엑셀의 "복사"는 같다???

여러분의 생각은 어떠신가요

"같다"라고 해도 틀린 것은 아닐 것 입니다. 또한 "같지 않다"라고 해도 틀린 것은 아닙니다.

"같다"라고 한다면, "원본과 같은(동일한) 사본을 만든다"는 것을 말하는 것이겠지요.

 

"같지 않다"라고 한다면 복사기는 원본에 빛을 쏘아, 동일한 형상의 사본을 만들고 엑셀에서의 복사는

선택한 개체(복사기의 원본과 같음) 를 컴퓨터의 메모리 영역에 임시로 저장했다가 사용자가 사본을 출력하고자

하는 위치에 원본과 같은 것을 출력해 준다 뭐 그런차이가 아닐까 생각합니다.

 

먼저 복사할 셀을 선택하고 "복사"한 다음, 사용자가 지정한 다른 셀에 "붙여넣기"하는 아래의

매크로 버튼(<방법1>)을 눌러 보시기 바랍니다.

 

<방법1>

가장 기본적인 방법으로써 매크로의 진행 과정은 다음과 같습니다.

 

 Range("B25").Select                                                            셀(B25)을 선택한다.

    Selection.Colpy                                                               선택한 셀을 복사한다.

 Range("D25").Select                                          ⇒        ?복사한 것을 붙여넣을 셀(D25)을 선택한다. 

    ActiveSheet.Paste                                                            복사한것을 붙여넣는다.

 Application.CutCopyMode = False                                         복사한 셀의 사방에 생긴 점선을 지워버린다.

 

<방법2>

다음은 방금 출력한 D25셀의 내용을 지운 다음 위 <방법2>의 Macro 실행버튼을 눌러보시고 나타나는 결과를

비교해 보시기 바랍니다. 아마 <방법1>과 마찬가지의 결과가 나타 날 것입니다.

단지 차이가 있다면 소스가 아래와 같이 단 한줄로 코딩되어 있다는 것입니다.

 

 Range("B25").Copy Destination:=Range("D25")

?

 

<방법2>

5줄의 코드를 읽고 실행하는 것 보다는 한 줄의 코드를 실행하는 것이 수행속도면에서 빠를 뿐만 아니라 효율적입니다.

앞에서의 <방법1>과 같이 셀을 선택해서 복사하고 다시 붙여넣기 할 셀을 선택한 다음, 복사한 내용을 다시 붙여넣기

하는 것이 아니고 곧장 B25 셀을 복사해서 D25셀에 붙여넣기 합니다

위 코드에서 "Destination:="은 생략해도 무방합니다.

즉, Range("B25").Copy Range("D25")로 코딩해 주어도 같은 결과를 구할 수 있습니다.

참고로 제대로 하자면 Destination:=Worksheets("강좌").Range("D25")로 코딩해야 합니다만, 여기에서 시트명(Worksheet개체)

을 생략하면, 현재 열려 있는 시트(Active Sheet)를 기본 값으로 인식합니다.

또한, 현재 시트의 특정 셀의 갑을 다른 시트에 붙여넣기 하는 방법 역시 간단합니다.

 

먼저, 예제Sheet를 살펴 보시고 오시기 바랍니다.

 <다른 시트에 붙여넣기> 버튼을 눌러 보시기 바랍니다.

 

[VBA 제 09강] 복사에 대하여Ⅰ


앞서 설명드린 <방법2>의 코드에서 붙여넣기할 시트 및 셀의 주소만 지정해 주면 한줄의 코드로 해결됩니다.

 

 

 Range("B61").Copy Destination:=Sheets(2).Range("C5")

 

그런데 만약 붙여넣기할 셀의 위치를 다른 시트의 데이터가 없는 마지막 셀로 지정할 경우에는 어떻게 해야 할까요?

 

매크로버튼을 눌러 보시기 바랍니다.

 

[VBA 제 09강] 복사에 대하여Ⅰ 

?코드는 아래와 같습니다.

 Range("B73").Copy Destination:=sheets(2).Range("A65536").End(xIUp).Offset(1,0)

     Sheets(2).Select

     Sheets(2).Range("A65536").End(xIUp).Select

 

위 코드를 해석하자면

Range("B73").Copy Destination:=Sheets(2).Range("A65536").End(xIUp).Offset(1,0)

B73셀 값을 복사한 다음, 시트2(Sheet(2))의 A열 마지막 셀 (A65536) 위치에서 위쪽으로 데이터가 있는

셀(End(xIUp))을 선택하고 다시 한칸 아래의 셀 (Offset(1,0))에 값을 붙여넣기 하시오

         Sheets(2).Range("A65536").End(xIUp).Select

시트2를 선택하고(실전에서는 별로 사용하지 않지만 강좌의 편의를 위해 지정했습니다.)

   Sheets(2).Range("A65536").End(xIUp).Select

시트2의 마지막 셀을 선택하시요.

 

위 코드를 보다 세련되게 만들면 아래와 같이 할 수도 있습니다.

 

      복사된 것을 붙여넣기할 위치를 기억시킬(참조시킬) 변수를 선언

      변수의 데이터 형식은 셀을 참조할 것이므로 Range Object가 됨

Dim rngPosition As Range

      시트2에서 데이터가 없는 마지막 셀을 변수에 참조시킴

Set rngPosition = Sheets(2).Range("A65536).End(xIUp).Offset(1,0)

     붙여넣기할 위치에 변수 rnsPosition을 지정하면 끝

Range("B73").Copy rngPosition

Sheets(2).Select

rngPosition.Select

 

이와 같이 변수를 사용하면 코드가 간결해지고 가독성이 훨씬 좋아집니다.

 

자 그런데 이쯤에서 매크로 기능을 사용하여 복사하고 붙여넣기를 할 수 있다면 혹시 WorkSheet에서의

[선택하여 붙여넣기]-[값], 또는 [선택하여 붙여넣기]-[수식]과 같은 기능도 실행할 수 있지 않을까?

라는 의문이 드실 수도 있습니다.

 

[VBA 제 09강] 복사에 대하여Ⅰ

 

같은 결과가 출력되었습니다. 그러나 방금 결과값이 출력된 셀들을 차례로 선택해서 '수식입력줄'을 살펴 보시면

분명한 차이가 있음을 아실 수 있을것입니다.

 

 <값 붙여넣기>

Range("복사범위").Copy

Range("붙여넣을 위치").PasteSpecial xIPasteValues

Application.CutCopyMode = False

  일단 범위를 복사하기

  선택하여 붙여넣기(PasteSpecial)

  값만 붙여넣기(xIPasteValues)

  복사된 셀의 점선 테두리를 없애기

 <수식 붙여넣기>

Range("복사범위").Copy

Range("붙여넣을 위치").PasteSpecial Paste:=xIPasteFormulas

 

일단 범위를 복사하기

선택하여 붙여넣기 - 수식으로 붙여넣기(xIPasteFormulas)

복사된 셀의 점선 테두리를 없애기

 

 


※위 두 코드의 차이점을 잘 살펴 보시기 바랍니다.

 

저작권정보
1. 콘텐츠의 저작권은 쿠키(www.coukey.co.kr)에 있으며, 사용권한은 1인 1카피입니다.
2. 다운로드 받은 콘텐츠는 본인(본인회사)만 사용할 수 있습니다.
3. 다른 사람과 공유하거나 원본 또는 수정 후 무단전제,무단배포,무단판매,무단 공유할 수 없습니다.
4. 웹상에서 배포는 상업,비상업적 목적을 불문하고, 손해배상등 가중처벌됩니다.
[VBA 제 09강] 복사에 대하여Ⅰ
이용후기

업무자동화 맞춤제작

고객님의 상황에 100% 맞춘 콘텐츠 제작 전문 서비스를 이용해 보세요.
프리미엄 무료 이벤트 중