엑셀을 사용하다가 복사를 하고 싶은데.. 서식이 언제나 같이 붙어서 다닌다.
특히 표를 만들어 두었는데 표의 테두리가 같이 따라오는 것이 영 불편하다..
뭐... 핫키를 이용해서 사용할 수도 있고, 붙여넣기 옵션이 있지만..
영 불편하다..
그래서 VBA으로 복사영역을 따오고.. 값만 현재 선택한 셀에 붙여넣기 하려고 Script를 작성했다.
Sub CopyValues()
ActiveCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationNone, SkipBlanks:=True
End Sub
ActivCell은 현재 선택된 Cell을 의미하고
PasteSpecial은 복사영역을 가져온다
그냥 복사하기 위해서는
Active.PasteSpecial를 사용하면 된다.
그래서 옵션으로
Paste:=xlPasteValues 값을 지정하게 된다.
그러면 값만 복사해주게 된다.
뭐.. 그냥 편히 쓰고 싶으시면 위의 매크로를 Copy&Paste하시고,
매크로를 등록하고 Ctrl + B 정도의 핫키를 쓰시면 됩니다.
(다만 사용시에 복사영역이 없을 경우에는 오류를 출력합니다;;)
==아래는 조사하면서 알게 된 PasteSpecial의 매개변수이다. ==
Paste
붙여넣을 값을 정의하는 부분이다.
xlPasteAll | |
xlPasteColumnWidths | |
xlPasteComments | |
xlPasteFormats | |
xlPasteFormulas | |
xlPasteFormulasAndNumberFormats | |
xlPasteValidation | |
xlPasteValues | |
xlPasteValuesAndNumberFormats | |
xlPasteAllExceptBorders |
http://msdn.microsoft.com/ko-kr/library/microsoft.office.interop.excel.xlpastetype(VS.80).aspx
Operation
붙여넣기할 때 하는 작업 방식이다.
xlPasteSpecialOperationAdd | |
xlPasteSpecialOperationDivde | |
xlPasteSpecialOperationMultiply | |
xlPasteSpecialOperationNone | |
xlPasteSpecialOperationSubtract |
http://msdn.microsoft.com/ko-kr/library/microsoft.office.interop.excel.xlpastespecialoperation(VS.80).aspx
SkipBlanks
복사해서 넣을 때 빈 셀을 같이 붙여 넣을 경우 True, 아닐 경우 False
(빈 셀을 클립보드에 포함할지 아닐지를 결정하는 옵션)
Traspose
범위를 붙여넣을 때에 행과 열을 바꾸면 True, 아닐 경우 False
---
각 옵션들의 설명은 나중에 추가로 포스팅하겠습니다.
일단은 msdn을 확인해보시길...
'It205 > VBA' 카테고리의 다른 글
VBA의 Break문 Exit (0) | 2011.01.27 |
---|---|
엑셀 VBA를 이용한 파일 존재 유무 확인 (2) | 2011.01.26 |
VBA에서 엑셀 함수 이용하기. (0) | 2011.01.21 |
[엑셀]10억을 1로 표시하는 방법, 천을 1로 표시하는 방법 (0) | 2010.05.31 |