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

Application_2|Application.Caller|Application.Wait|ColumnWidth|Array()|
|BorderAround|HorizontalAlignment|Buttons.Add|Characters|
|Caption|OnAction|Val()|Replace()|Round()|

유용한 Caller속성

앞에서 잠깐 Caller속성에 대하여 이야기 했었다
만약 콘트롤 도구상자의 CommandButton오브젝트의 사용에 있어서는..


다시 이야기 하면 콘트롤도구상자는
Application.Caller속성과는 상관이 없는것이니
헷갈리지 마시기 바란다
실은 콘트롤도구상자의 콘트롤들은 Application.Caller보다는
더 효율적속성들이 많이 있으므로 섭섭해할 필요가 없다
그러나 엑셀자체의 콘트롤 양식에서 제공하는 콘트롤들은 성능이 별로 이지만
훨씬 가볍고 융통성있는 녀석들이다
가볍게 한번 크릭이나 하는 기능이 필요한 콘트롤이라면 구태여 콘트롤도구상자의
콘트롤은 사용할 필요가 없다는 이야기다
간단하게 아래와 같은 경우에는 양식의 버튼이 좋다
아래와 같은것은 콘트롤도구상자의 버튼(CommandButton)으로 하면 쓸데없이
자원을 많이 낭비하는 셈이다

흔하게 순환문도 익히고 조건문도 익히고
필요한 오브젝트의 속성이나 메소드를 살펴보는 간단하고 싱거운 께임을 만들어 보자



위와 같이 만들기 위한 구문으로 필요한것은

  • 폭조정:Range.ColumnWidth=Value
  • 알파벳찾기:Range.Value=Array(Int(Rnd()*5)),Array()
  • 테두리선:Range.BorderAround BorderType
  • 문자위치서식:Range.Horizontal(Vertical)Alignment=Type
  • 완료후 잠시대기:Application.Wait Now + (1 / 24 / 60 / 60 * 3)



위와 같이 만들기 위한 구문으로 필요한것은

  • 버튼생성:Worksheet.Buttons.Add(Range.Left,Range.Top,Range.Width,Range.Height)
  • 버튼캡션:Button.Caption=Array(Int(Rnd()*5))
  • 버튼캡션서식:Button.Characters.Font.Name="Tahoma"
  • 크릭하면 실행될 프로시져연결:Button.OnAction="프로시져이름"



버튼에 연결된 프로시져는

  • 어떤 버튼을 크릭했나?:Worksheet.Buttons(Application.Caller)
  • 버튼이 위치한 셀:Button.TopLeftCell
  • 값이 맞으면 삭제:Button.Delete
  • 각각의 계산값을 해당 셀을 찾아서 기록해 나간다
  • 문자열에서 숫자만 빼서 계산하기:Val(),Replace()
  • 소숫점 두자리 숫자로 서식:Round(Value,2)

잠시 실행 대기..Wait메소드


Application오브젝트는
Wait메소드,Caller속성등 유용한 유티리티기능을 제공한다

Application Provide Useful Utilities