Skip Navigation Links.
Expand VBAVBA
엑셀프로그래밍이 필요한 이유
Expand ExcelExcel
Expand External LibraryExternal Library
Expand SolutionSolution
Expand EssayEssay

Excel & VBA---Brain Training




아래 프로시져를 실행하면

Sub makeSample() Dim iCol As Integer, iRow As Integer Dim iZ As Integer Cells.Clear For iRow = 1 To 30 For iCol = 1 To 10 For iZ = 1 To 5 Cells(iRow, iCol) = _ Cells(iRow, iCol) & IIf(iZ = 1, "'", "") & _ Mid("AB2C3D4Q5F6G7V4I8JZ" & _ "K", Int(Rnd() * 20) + 1, 1) Next Next Next End Sub

별의미 없는 문자와 숫자가 섞인 정보가 셀을 채운다
문제는 이렇게 생성된 정보를
각문자를 문자번호를 하나씩 변경하여 텍스트화일로 변환한후
다시 이것을 엑셀에 원상태로 갖여 오기
뭔소리냐 하면
chr(asc("A")+1)
를 하면A라는 문자를 B로 바꿔준다.
이렇게 죄다 바꿔서 텍스트문서로 만들어서 저장한후
이것을 다시 열어서 읽어서 다시 원상태로 변환시켜서 엑셀시트에
뿌려준다는 것..

문자열연습, 순환문 연습, File I/O함수 연습..
문자열다루기 내공을 쌓는데 많은 도움이 될 것이다


BrainTraining_067_4.





프로그래밍언어를 하나를 완전히 잘 이해하면 다른 언어를
만나도 무리없이 소화시킬수 있다
프로그래밍의 컨셉은 같은 것이고 단지 문법체계가 좀 상이할 뿐이다

JavaScript같은 언어나 VB.Net같은 언어에서도 문자열을 다루는 함수들이
다양하다..함수가 아니고 그들은 String오브젝트의 메소드라고 하지만..
아무튼 그들이 사용하는 메소드를 VBA에서도 구현해보자
없으면 만들어서 사용하면 되는 것이다

비교하면서 하면 좀 더 학습효과가 있을 것으로 생각된다

문자열을 다루려면 기본적인 함수들을 챙겨야 하니까..
미심쩍은 함수들은 이참에 잘 챙기시기를..

JavsScrpt에 있는 String오브젝트의 indexOf라는 것이 있다
어떤 문장에서 어떤 단어가 몇번째에 위치하는가??를 알아내준다
VBA에 그런 함수가 있던가???
곰곰 생각해 보시기를..@!#
InStr함수가 있다



주어진 문장의 몇번째 있는 문자가 원가를 알아내는 일을
Javascript 에서는 charAt메소드가 있고
VB.Net에서는 chars()메소드가 있고
VBA에는 어떤 함수가 있더라???
Mid함수가 있다



문자의 갯수를 알아내는 함수는
VB.Net이나 Javascript 모두
Length 라는 메소드가 있다
VBA는 Len()이라는 함수가 있고..

어떤 문장의 몇번째 문자에서 몇개의 글씨를 얻어내고 싶을때는
VB.Net에서는 subString 메소드
Javascript에서도 subString 메소드
VBA에서는 Mid함수로 처리되고
참..VB.Net에서도 물론 VBA의 함수를 모두 사용할수 있다
왜냐면 VB.Net의 이전 버전 Visual Basic의 함수들도 모두 사용할수 있어야
하니까..당연히 사용 할 수 있다
왜 구태여 VB.Net의 것을 이야기 하냐하면
궁극적으로는 VSTO등으로 Visual Studio 에서 엑셀을 프로그래밍할때
적응하기 쉽도록 자꾸 이야기하도록 할 것이다


위의 메소드..(VBA에서는 함수)들을 활용하여 아래와 같은 에니메이션을
만들수 있다..
자!!문제..이것을 엑셀에서 구현해 보시기 바란다
함수는 위에서 이야기 한것을 사용하면 된다
문제 하나 잘 내려고 용썼다!!




BrainTraining_067_5.