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

Window_2|DisplayFullScreen|CommandBars|Enabled|
|Zoom|NamedParameters|Borders|LineStyle|
|Application.InputBox|Address|TypeName()|BorderAround|

엑셀화면 최대한 크게 열기

화면을 최대한 크게 사용하고 싶을때가 있다
손으로 화면을 최대한 크게 하고 싶다면 보기/도구모음/사용자지정 메뉴에서



와 같이 선택하여 끌어서 툴바에 올려놓고 대화상자를 닫은후
크릭하면 화면이 최대한 커진다
이것을 프로그래밍적으로 처리한다면 아래와 같다

Application.DisplayFullScreen = True

아래의 그림과 같은 상황이 된다



이 상태에서 기본메뉴마저 눈에 보이지 않게 하고 싶을수도 있다
이럴때는 아래의 구문을 하나 더 실행한다

Application.CommandBars(1).Enabled=False

아래의 그림과 같이 메뉴마저 사라진것을 보게 된다



프로그래밍을 모르는 분들은 겁이 덜컹난다..뭐가 다 망가졌나 싶어서
하나도 겁먹을 것이 없다
눈에 보이지 않고 모두 숨어 있는 것이다
열머리,행머리마저 없애 버리면 워크시트는 셀만 화면에 꽉차게 된다

ActiveWindow.DisplayHeadings=False

아래의 그림과 같이 셀부분의 화면만 남고 모두 사라진다


이때 다른 통합문서로 이동해서 보면
다른 통합문서의 행|열머리는 그대로 보인다
통합문서레벨에서의 설정과 Application레벨에서의 설정이 서로
다르다는 점을 잘 이해하셔야 한다

다시 복구시키는것은 위의 속성(Toggle값)을 반대로 실행하면 되는것이다

화면에 메뉴도 없고 시트탭도 없고 이때 통합문서간의 이동은
Ctrl+Tab키를 누르면 되고
프로그램과 프로그램간의 이동은 Alt+Tab키를 반복하여 누르면 되고
워크시트와 워크시트간의 이동은 Ctrl+PageDown|PageUp키를 누르면 된다

화면 Zooming

화면의 크기를 비율로 줄였다 늘렸다 하는것을 해보자
초보님들은 순환문을 연습할겸 아래의 구문을 실행해보시기 바란다

Sub Zooming()
Dim iX As Integer
Dim lX As Long
For iX = 100 To 20 Step -1
    ActiveWindow.Zoom = iX
Next
For iX = 20 To 100
    ActiveWindow.Zoom = iX
Next
End Sub

Window오브젝트의 Zoom속성에 값을 주면 된다

특정범위외에 다른곳으로 이동못하게 하고 싶다


어떤 테이블이나 어떤 특정 범위밖으로는 절대로 이동을 하지
못하게 하고 싶을때도 있을것이다
사용자가 입력할수 있는 입력범위만 사용가능하게 하고
그외의 영역에는(중요한 데이타를 숨겨놓거나)이동할수 없게 할수도 있다
이것은 Window오브젝트에서 관리하지 않고
Worksheet오브젝트의 ScrollArea라는 속성을 전달하면 된다



Activesheet.ScrollArea=Selection.Address
해제할때는
Activesheet.ScrollArea=""

아주 편리하고 유용한 기능이다
아래의 화일에서 아래와 같은 작업으로 응용해보자

  • InputBox를 통해서 설정하고 싶은 범위를 얻자
  • Named Parameter는 이럴때 편리하다
  • 범위를 선택할때마다 시각적 효과를 위하여
  • 해당범위에 테두리선을 만들어 주자
  • 전달받은 정보가 필요한 타입의 정보인지 알아보는 TypeName함수,Address속성
  • 이런때는 매개변수를 Variant타입으로 해주는것이 좋다
  • 테두리선을 그릴때 Borders오브젝트와 BorderAround 메소드는 어떻게 틀리나?


Limit Using Area