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

Excel & VBA---Brain Training




예전에 한번 하였던 것인데 안해보면 감각이 없어지니까..또 하나 더 해본다
이런 문제가 있었나 없었나 긴가민가하면 이전 화일 찾아보시고..
참 많은 질문을 하는 주제이다
"콘트롤을 런타임에 생성하고 이벤트프로시져를 작성하는 방법이 뭐지요??"
라는 많은 질문의 것이니 하나 더 해보자
VBA 편집기를 열고 UserForm을 하나 삽입하고



UserForm의 UserForm_Initialize 이벤트프로시져에
아래와 같이 작성하고

Private Sub UserForm_Initialize() Dim iX As Integer Dim iY As Integer Dim oBtn As MSForms.CommandButton Dim iStartLeft As Integer, iStartTop As Integer Dim iSize As Integer, iZ As Integer Dim iCol As Integer, iRow As Integer iCol = 10 iRow = 10 iSize = 18 iStartLeft = 10: iStartTop = 10 For iX = 1 To iRow For iY = 1 To iCol iZ = iZ + 1 Set oBtn = Me.Controls.Add("forms.commandbutton.1") With oBtn .Left = iStartLeft + iY * iSize .Top = iStartTop + iX * iSize .Width = iSize .Height = iSize .Caption = _ Mid("ABCDEFGHIJKLMNOPQRSTUVWXYZ", Int(Rnd() * 26) + 1, 1) .Font.Name = "courier new" End With Next Next Me.Height = iSize * iRow + 80 Me.Width = iSize * iCol + 60 Me.Caption = "UNO-XL-PROGRAMMIN Add Ctl on RunTime" End Sub

일반 모듈시트에서 UserForm.

Sub createControlsOnRuntime() UserForm1.Show End Sub

를 작성하여 실행시키면 아래의 그림과 같이 사용자정의폼에
콘트롤이 줄줄이 만들어진다



문제는 이 버튼을 크릭하면 어떤 일을 하게 만들라는 것
위의 콘트롤은 허당이다..크릭해보았자 아무일도 못하는 멍텅구리다
해당콘트롤을 생성하면서 지능도 삽입시키라는 문제다
문제를 풀면 여러분은 더 이상 초보가 아닌 고수!!!

지능은 어느것을 만들어 넣어도 좋다
크릭하면 해당 버튼의 글자색이 빨강색으로 바뀌어도 좋고
한장의 시트를 만들고 해당켑셥을 시트에 꽉채워도 좋고
그냥 메시지 박스를 하나 덜렁 띄워도 좋고
아무일이나 여러분이 시키는대로 하는 지능을 심으라는 문제다




BrainTraining_058_AddCtlWithEvent.