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

Application_4|EnableEvents|End|SelectionChange|OnKey|
|MoveAfterReturnDirection|Intersect|End|EntireColumn|

셀을 선택할때 발생하는 이벤트

셀을 선택할때 발생하는 이벤트를 SelectionChange이벤트라고 한다
이런 것을 어디에 써먹을까??
아래의 그림과 같은 예를 하나 보자
언젠가 성격분석툴을 만들어준 적이 있다..그중에서
Worksheet오브젝트의 SelectionChange이벤트와
Application오브젝트의 EnableEvents속성을 활용한 소루션의 예로서 일부만
뜯어 내어 보도록 한다




아래와 같이 만들고 싶다

  • 회색부분의 체크할수 있는 셀만 선택가능하게 한다
  • 그 외의 범위는 선택해도 특정셀로 이동하게 강제한다
  • 각각의 문항의 최고와 최저열을 선택하면
  • 해당열은 모두 지워지고 새로 선택한 셀만 체크표시가 있도록 한다


Use SelectionChange Event

엔터키를 친후 선택위치의 방향을 상황에 따라서 바꾸기

프로그래밍은 목적한바 사용하기 편하게 하기 위함이다
정보를 입력하고 엔터키를 치면 기본적으로 셀의 이동은
아래 방향으로 이동한다
그러나 상황에 따라서 오른쪽으로 이동을 하고 싶기도 하고
또 어떤때는 왼쪽으로 이동을 하도록 하고 싶기도 하고



그림과 같이 수동으로 지정할수 있겠지만 상황에 따라서 방향을
바꾸게 하려면 프로그래밍을 하면 융통성이 있고 편리할것이다




아래와 같이 만들고 싶다

  • 체크박스를 체크하면 방향키를 전혀 쓸수없게 한다
  • 엔터키를 치면서 오른쪽으로 돌아서 마지막셀에서
  • 한칸내려와서 왼쪽으로 돌아서 다시 내려와서
  • 오른쪽으로 이동한다
  • 한바퀴 돈후에는 다시 처음셀로 돌아간다
  • 선택된 셀은 항상 색상을 다르게 한다


Application오브젝트에서 설정하는 옵션이나
자판의 키의 설정등은 엑셀전체 통합문서에
영향을 주게 된다
특정 통합문서나 특정시트을 위한 설정은 그곳을 벗어날때는
원상복귀시키는 습관을 갖는것이 좋다
체크박스등을 사용하여 체크를 지워주고 다른 통합문서나
시트로 이동하던가..
앞으로 계속 진행될 적당한 이벤트에서 원상복귀하는 장치를
하여야 할것이다..이런 작업을 얼마나 세심하게 잘하는가??
라는것인 경험있는 프로그래머인가..아닌가??를
결정하게 된다


Set MoveAfterReturnDirection Property