12월 첫째주|
UNO_WEEKLY |UNO_ZEN_029
x20131202_0800_UNOZEN_029.
UNO_WEEKLY|Excel_Baby_029 [ROUNDUP,ROUNDDOWN,ROUNDUP,RIGHT,ARRAY]
VBA프로그래밍기본에서 한 어떤 값에서 천자리미만의 값만
뽑아서 합치는 문제를 수식으로 처리해 보도록 하자
어떤 하나의 결과값을 얻기 위하여
같은 수식을 반복하여 여러개를 사용할때는
별것도 아닌데 화일이 지저분해진다
무언가 간단한 방법이 없을까??
라는 의문과 문제에 대한 해법이 바로 배열수식이다
배열과 배열수식을 이해하게 되면 엑셀의 성질머리를 점점
더 잘 이해하게 되는 셈이다
x20131202_0800_baby_029.
UNO_WEEKLY|VBA+ExcelProgramming_028
이런 문제가 있다
주어진 범위의 숫자를 천자리 미만의 값만
모두 합계를 내고 싶은데 어떻게 하면 좋을지..??
1) Round함수(VBA에는 없고, 워크시트함수)를 사용하여
천자리이하를 끊은 값을 본래의 값에서 뺀것을 합친다
2)문자열정보함수를 사용하여 뒷자리 3개를 끊어내어 합친다
프로그래밍은 문자열정보의 처리에 능숙한 것이 좋다고 자주 이야기했었다
문자열처리.. 에 관심을 갖는 것이 좋을 것이다
두개 모두 해보자
문자열 정보를 좀더 다양하게 다루기 위하여서는 배열은 필수적이다
문자열정보를 배열화하는 함수를 사용해 보도록 하자
아하..배열을 사용하면 이렇게 다양한 작업을 할수 있구나...
x20131202_0800_vba_XLprogramming_029.
UNO_WEEKLY |Programming_QandA
선택한 범위를 다른 곳에 옮기고 싶다
뭐..이런 저런 복잡한 것 말고 그냥 선택한 범위만 옮기고 싶다
이것이 참 애매한 말이다
선택한 범위를 옮기고 싶다??
어디로,
현재시트의 어떤 범위로?,
새시트를 만들어서?
기존특정시트에 연속하여 붙여넣기?
선택범위의 열머리는 갖여 갈까,말까??
아무리 간단해도 이런,저런 조건이 필요하게 된다
당연히 UserForm같은 것을 사용하면 복잡할 것이니까.
가장 기본적인 대화상자인 MsgBox를 최대한 활용하여
선택범위를 적절히 옮겨 보자
x20131202_0800_CopyPasteWithMsgBox.
UNO_WEEKLY|VB.Net_064
지난 파일에서 CSV화일을 만들고 데이터를 저장했었다
그리고 TextBox에 문자열을 통째로 불러 들였지만
이번 파일에서는
DataTable에 문자열을 불러다가 토막을 쳐서
DataTable의 DataColumn을 추가하고 이곳에
CSV화일을 불러 들여서 DataTable이 받아먹을수 있는
적절한 형식으로 처리해본다
DataTable을 만드는 것은 이미 많이 했었다
DataTable을 만드는 이유는 VB.Net의 윈도우컨트롤들이
모두 DataSource로 DataTable을 가장 궁합이 맞게 설계된 것이라서
항상 DataTable을 사용하는 습관이 좋은 것이다
엑셀에서 Range개체를 이렇게 해보고, 저렇게 해보면서
손에 익숙해지듯이 VB.Net에서 데이타를 다루려면 DataTable의
처리에 익숙해지는 것이 가장 중요할 것이다
한번 두번 해서는 손에 익숙하지 않다
이번 파일에서 다시 또 경험하면서 손에 익히도록 하자
x20131202_0800_VB.Net_064.
VB.Net다운 받으실때 같이 받아서 바탕화면에 풀어 놓으셔야 합니다/NorthWind.mdb