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

Range|CommandBar|EventProcedure|CommandBars|Controls|FaceID|
|OnAction|Caption|Add|Column|CurrentRegion|
|Columns|Collection|Offset|Intersect|Mid()|Split()|Array()|

명령줄을 이용하여 입력장치로 활용하기

유효한 정보를 입력하기 위하여
사용해 보고
사용해 보았다
하나만 더 해 보도록 하자
이런 자원,저런 자원 이런 상황에서..저런 상황에서
자꾸 응용을 해보아야 자기의 것이 된다

이번에는 명령줄을 사용하여 같은 효과를 얻어보도록 한다
마우스로 셀을 선택하고 셀의 내용에 대한 작업을 하기 위한
단축메뉴(ShortCut Menu)가 있다
아무셀이나 오른쪽마우스를 크릭하면 나타나는 단축메뉴



이것을 이용하여 입력도구로 만들어 보는것이다
위의 명령줄에 있는 모든 버튼을 없애고 싶다면
아래의 버튼에 아래의 프로시져를 연결하고 크릭하면
버튼이 모두 사라지고 빈탕의 명령줄이 보인다



다시 기존의 메뉴의 Caption속성에 문자열을 추가 시켜보면
아래의 그림과 같이



마음내키는 대로 작업할수 있는것이다
이런 요령으로 FaceID속성을 이용하고 문자열을 적절히 가공하여
아래와 같이 함수를 만들어 활용하는 연습을 해본후

Function getString()
Dim iX As Integer
Dim sTemp As String
For iX = 1 To 7
   sTemp = sTemp & _
                Mid("ABCDEFGHIJKLMNOPQRSTUVWXYZ", Int(Rnd() * 26) + 1, 1)
Next
getString = sTemp
End Function



아래와 같이 목적하는 결과를 만들수 있겠다



노랑색외의 범위를 선택하면 기존의 정상적인 명령줄
노랑색범위내를 선택하면 용도에 맞는 명령줄을 만들어 보여준다

아래의 화일에서는

  • 유효한 범위의 선택을 확인하고/SelectionChange이벤트
  • 열을 선택할때마다 필요한 정보를 얻어오고/Range오브젝트
  • 알파벳을 선택할때마다 해당하는 FaceId속성을 얻어오고/배열의 활용
  • CommandBar오브젝트를 만들어서 크릭할때 어떤 작업을 시킬지 결정한다


Refresh ShortCut Menu On Selection