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

Excel & VBA---Brain Training


아래의 프로시져를 복사하여 붙여 넣고 실행시키면

Sub MakeQuestion() Dim iX As Integer Dim iY As Integer Dim sQ As String, sC As String Dim iLen As Integer Dim iL As Integer Dim shtX As Worksheet sQ = " 가나나라마바사아자차카타파하 " & _ " ABCDEFGHIJKLMNOPQRSTUVWXYZ " & _ " 123456789 abcdefghijklmnopqrstuvwxyz " iLen = Len(sQ) Set shtX = Worksheets.Add For iX = 1 To 100 For iY = 1 To 30 sC = "" For iL = 1 To 10 sC = sC & Mid(sQ, Int(Rnd() * iLen) + 1, 1) Next shtX.Cells(iX, iY) = sC Next Next With shtX.UsedRange .Font.Name = "tahoma" .Font.Size = 10 .Columns.AutoFit .Parent.Name = "Original" End With End Sub

아래의 그림과 같이 하나의 셀에 10개의 문자가
한글,영문,숫자 그리고 빈문자로 만들어져서 여러개의 셀에 만들어진다



위에서 변수를 사용하는 것과 아래와 같이 셀에 직접값을 전달하는것을
비교하여 보시기 바란다..

For iX = 1 To 100 For iY = 1 To 30 For iL = 1 To 10 shtX.Cells(iX,iY) = _ shtX.Cells(iX,iY) & Mid(sQ, Int(Rnd() * iLen) + 1, 1) Next Next Next

얼핏보기에는 이것이 효율적일것 같다는 생각도 들수 있을것이다
아마도 속도도 떨어지고..무언가 문제도 발견할수 있을것이다
잘 관찰하여 보시고..

문제는
워크시트를 3장을 만들고
각각의 시트명을 "ENG","KOR","NUM"으로 붙이고
셀들에 만들어진 각각의 문자값을
한글,영문,숫자로 분리하여 각각의 시트의 Range("A1")에서 부터 아래로
(행방향으로)차례대로 옮긴후 각시트를 오름차로 정렬시킨다



이때..
스스로 고참이라고 자부하시는 분들은
배열로 모아서 배열을 정렬후 이것을 한꺼번에 각각의 시트에
옮겨보시기 바란다
초보님들은 그냥 차례대로 하나씩 각각의 시트의 해당셀에
옮겨보시고



해설화일에서
아래와 같이 추가적으로 배열로 처리하는것과 비교하도록 한다





Braintraining_024.