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

Members - Question and Answer


엑셀을 열면 사용자정의 폼이 먼저 나타나게..



엑셀을 시작할 때 타이틀로고를 1~초정도 띄우고
엑셀을 실행 시키는 법좀 알고 싶네요.
초기 버전화일에 있었던거 같던데 오랜만에 찾아뵈니 보이지 않는 군요..
Splash Form이라고 하는 것을 구현하시고 싶으신것 같다

다양한 방법이 있겠지만..
원칙은 통합문서가 열릴때 어디에서 실행을 시킬것인가가 문제일것이다
이벤트프로시져를 이해하고 활용하면 된다
통합문서가 열릴때..
WorkBook_Open()
에서 구현시키면 된다

Private Sub Workbook_Open() UserForm1.Show End Sub

그러면 엑셀이 열리면서 UserForm이 나타나게 되고
UserForm의 Activate이벤트에서 일을 하고 스스로
끝내면서 엑셀이 다시 나타나게 하면 된다

그냥 폼만 띄워주는 답만 드리면 될텐데..
쓸데없는 것을 추가하는 것이 취미니..
이런 저런 기능을 추가하여 보자
질문하신 분은 알아서 챙기시기 바란다
물어 본것만 갈쳐주면 되지..뭔 말이 이렇게 많나??하지 마시고..
우선 UserForm을 하나 입맛에 맞게 모듈시트에서 만들고
아래와 같이



선택된것은 라벨콘트롤이고 이곳에 심심하니 이런 저런
정보가 나타나게 하면 되겠는데 ..여기에서는 아래와 같이
시트상에 나타내고 싶은 정보를 주욱 리스트를 만들어 놓고



물론 응용하셔서 오늘의 매출정보 라던가..
오늘의 할일이라던가..
여러분의 상상력과 엑셀 능력이면 재미있게 만들수 있을 것이다

또한 userform상의 파랑색도 역시 라벨콘트롤이고
시간이 진행함에 따라서 파랑색 바가 길어지고 짧아지는
에니메이션을 하게 하면 좋을 것이고..

아래와 같이 호출된 UserForm의 Activate프로시져에 코딩을 해주면

Private Sub UserForm_Activate() Const BAR_WIDTH As Single = 332 Dim iX As Integer, lX As Long, lDummy As Long Dim arrX As Variant Application.Visible = False arrX = Me.getDataToDisplay For iX = 1 To UBound(arrX) Me.lblMsg.Caption = arrX(iX) Me.lblBar.Width = 0 For lX = 1 To 5000 Me.lblBar.Width = Me.lblBar.Width + BAR_WIDTH / 5000 Debug.Print Me.lblBar.Width DoEvents For lDummy = 1 To 800 Next Next Next Application.Visible = True Unload Me End Sub

화일을 열면 엑셀이 사라지고 UserForm만 살아서 움직이다가
위의 정보를 몇개 보여준후 UserForm이 사라진후
엑셀이 다시 나타난다



많이 응용해 보시기 바란다



vbaQandA_008_flashForm.