VB 6.0으로 엑셀 핸들링하기 - 행 복사 붙여넣기, 셀 테두리선 설정 편
하는 거 같다....
반갑기까지 한데 ㅎㅎㅎ
오늘은 VB 6.0으로 엑셀 핸들링하기에 대해서
좀 기록을 남겨볼까 한다.
이게 그리 어려운건 아닌데, 안하면 자꾸 까먹는다..
-_-;;
자주자주 봐 줘야 하는데, 그게 잘 안되네..쩝..
.
.
.
우선
기본적인 준비물. 폼을 한개 열어주고,
엑셀개체를 참조한다.
그리고 다음의 문장을 사용해서 엑셀개체를 호출한다.
아는 사람은(& 눈치빠른 사람은 ㅋㅋㅋ) 다 알겠지만, 간단히 위 코드를 설명하자면 다음과 같다.
여기까지 했으면 50%는 끝났다.
그 다음으로 오늘 하려고 하는 행 복사와 셀 테두리에 대해서 정리하겠다.
1. 행복사
위 그림에서 보이듯 1~3의 모든 행을 복사해서 4~6행으로 몽땅 붙여넣기를 할 작정이다.
이렇게 하려면 다음과 같은 코드를 사용하면 된다. 주석을 바로 달겠다.
''// EntireRow.Copy.. 말 그대로 전체행을 복사하겠단 뜻. 그래서 Range의 시작점은 중요하지만, 끝점은 중요하지 않다.)
ExcelDB.Range(ExcelDB.Cells(1, 1), ExcelDB.Cells(1, 10)).EntireRow.Copy
''// 여기서는 PasteSpecial (xlPasteAll)이 키포인트. xlPasteAll에서 알 수 있듯이 그냥 닥치고 Ctrl+v란 뜻...
ExcelDB.Range(4, 1), ExcelDB.Cells(4, 10)).EntireRow.PasteSpecial (xlPasteAll)
※참고로 PasteSpecial의 인자값으로 들어가는 속성 즉, XLPasteType은 다음과 같다.
Const xlPasteAll = -4104 (&HFFFFEFF8)
Const xlPasteAllExceptBorders = 7
Const xlPasteAllUsingSourceTheme = 13
Const xlPasteColumnWidths = 8
Const xlPasteComments = -4144 (&HFFFFEFD0)
Const xlPasteFormats = -4122 (&HFFFFEFE6)
Const xlPasteFormulas = -4123 (&HFFFFEFE5)
Const xlPasteFormulasAndNumberFormats = 11
Const xlPasteValidation = 6
Const xlPasteValues = -4163 (&HFFFFEFBD)
Const xlPasteValuesAndNumberFormats = 12
이 상수들이 무엇을 뜻하는지는 역시 눈치빠른 사람은 알아 챌 것이다.
한번쯤 생각해 보고 아래를 펼쳐보도록.
2. 셀 테두리선 설정
셀 테두리도 복사해서 붙여넣기와 별반 다를게 없다.
하지만, 테두리는 사각형 기준 왼쪽, 오른쪽, 위쪽, 아래쪽 네군데를 생각해야 하고
또, 테두리 속성(선 굵기와 선 종류)까지 생각해야 하기 때문에,
자신이 구상한 그림이 나오려면 조금은 더 신경을 써야 한다.
테두리 속성을 위한 코드는 다음과 같다.
ExcelDB.Range(ExcelDB.Cells(1, 1), ExcelDB.Cells(5, 5)).Borders(xlEdgeTop).LineStyle = xlDot
ExcelDB.Range(ExcelDB.Cells(1, 1), ExcelDB.Cells(5, 5)).Borders(xlEdgeTop).Weight = xlHairline
ExcelDB.Range(ExcelDB.Cells(1, 1), ExcelDB.Cells(5, 5)).Borders(xlEdgeBottom).LineStyle = xlContinuous
ExcelDB.Range(ExcelDB.Cells(1, 1), ExcelDB.Cells(5, 5)).Borders(xlEdgeBottom).Weight = xlThin
ExcelDB.Range(ExcelDB.Cells(1, 1), ExcelDB.Cells(5, 5)).Borders(xlEdgeLeft).LineStyle = xlContinuous
ExcelDB.Range(ExcelDB.Cells(1, 1), ExcelDB.Cells(5, 5)).Borders(xlEdgeLeft).Weight = xlThin
ExcelDB.Range(ExcelDB.Cells(1, 1), ExcelDB.Cells(5, 5)).Borders(xlEdgeRight).LineStyle = xlContinuous
ExcelDB.Range(ExcelDB.Cells(1, 1), ExcelDB.Cells(5, 5)).Borders(xlEdgeRight).Weight = xlThin
여기에서 포인트는 Borders의 인자값으로 들어가는 xlEdgeTop, Bottom, Left, Right
네가지 속성과 선의 종류 LineStyle, 선 굵기 Weight 정도 이니 이해하기를 바란다.
그냥 봐도 중학교수준의 영어단어를 알고 있다면(요즘은 초등학교 무시하면 안되지만...)
그리어렵지는 않을 것이다.
그럼 LineSytle속성 상수값과 Weight속성의 상수값을 정리 해 보겠다.
(솔직히 top,bottom,left,right는 안해도 되잖아...)
==========================================================
LineStyle
Const xlContinuous = 1
Const xlDash = -4115 (&HFFFFEFED)
Const xlDashDot = 4
Const xlDashDotDot = 5
Const xlDot = -4118 (&HFFFFEFEA)
Const xlDouble = -4119 (&HFFFFEFE9)
Const xlLineStyleNone = -4142 (&HFFFFEFD2)
Const xlSlantDashDot = 13
==========================================================
Weight
Const xlHairline = 1
Const xlMedium = -4138 (&HFFFFEFD6)
Const xlThick = 4
Const xlThin = 2
역시 위 상수값들이 무얼 뜻하는지는 따로 설명하지 않겠다.
급하면 다 되게되어있다. ㅎㅎㅎ
위에서도 말했지만 해봐야 는다...
우왕....
간만에 좀 의미있는 포스팅을 해서 나름대로 뿌듯하다.
일하면서 정리하는 거라 내용이 좀 두서가 없지만 그래도 좋다...ㅋ