1. 아별툴
  2. 아별툴 패밀리
  3. 엑셀 질문하기
  4. 엑셀 강좌
  5. 엑셀 팁
  6. 엑셀 자료실
  7. 엑셀 연구과제
  8. 엑셀 북마크
  9. 관련 프로그램 소개

스스로 사라지는 메시지 박스

조회 수 5666 추천 수 0 2009.05.07 13:37:09
출처 : 엑사모_팁

관련파일 : VBA_927_SelfCloseMsgBox.zip



 Option Explicit

' 윈도우를 찾아 핸들값을 반환
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
        (ByVal lpClassName As String, _
        ByVal lpWindowName As String) As Long
' 타이머를 설정
Private Declare Function SetTimer Lib "user32" _
        (ByVal hwnd As Long, _
        ByVal nIDEvent As Long, _
        ByVal uElapse As Long, _
        ByVal lpTimerFunc As Long) As Long
' 타이머를 종료
Private Declare Function KillTimer Lib "user32" _
        (ByVal hwnd As Long, _
        ByVal nIDEvent As Long) As Long
' 메시지를 윈도우에 전송
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
        (ByVal hwnd As Long, _
        ByVal wMsg As Long, _
        ByVal wParam As Integer, _
        ByVal lParam As Any) As Long

Private strTitle As String
Private lngTimerID As Long
Sub dhMain()
Dim iResult As Integer ' VbMsgBoxResult
Dim strPrompt As String
Dim sTitle As String
Dim lngInterval As Long
        strPrompt = "버튼을 누르거나" & vbCr & _
                  "누르지 않더라도 2초 뒤에 이 메시지 상자는 닫힙니다."
        sTitle = "MagicSheet & 엑사모"
       
        '실행할 시간
        lngInterval = 2000
        StartTimer lngInterval
            strTitle = sTitle
            iResult = MsgBox(strPrompt, vbOKCancel + vbInformation, sTitle)
        EndTimer

End Sub

'아래의 코드는 VBA 877 타이머를 만들려면이란 예제를 참고하라
Function EndTimer() As Boolean
    If lngTimerID Then
        lngTimerID = KillTimer(0&, lngTimerID)
        lngTimerID = 0
        EndTimer = True
    End If
End Function

Sub StartTimer(llngInterval As Long)
    If lngTimerID Then
        EndTimer
    End If
    lngTimerID = SetTimer(0, 0, ByVal llngInterval, AddressOf TimerProc)
End Sub

Private Sub TimerProc(ByVal lhwnd As Long, _
                        ByVal lMsg As Long, _
                        ByVal lIDEvent As Long, _
                        ByVal lTime As Long)
    Const WM_CLOSE = &H10
    Dim lHwndMsgbox As Long
   
    lHwndMsgbox = FindWindow(vbNullString, strTitle)
    SendMessage lHwndMsgbox, WM_CLOSE, 0, ByVal 0&
End Sub





댓글 '1'

구름바다

2015.09.12 15:18:59
*.1.132.10

안녕 하세요.

개발에 많은 도움을 받고 있습니다. 감사 합니다

올려주신 윈도우 timer를 사용하려 하는데 첨부파일을 똑같이 올리고 돌리는데

SetTimer에서 "컴파일 오류=> 형식이 일치하지 않습니다" AddressOf TimerProc

이부분에서 오류가 납니다.

혹시 도구 => 참조에서 뭘 더 추가해야 하나요?

아니면 제가 뭘 빼먹고 돌리는지 궁금 합니다.

답변 부탁 드립니다.

감사 합니다.

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 기타 엑셀 VBA 간단한 팁 모아놓기.. +_+ [레벨:30]아별 2007-01-24 34284
45 기타 [ VBA Tip ] 엑셀 VBA로 사진(JPG)의 EXIF 정보(GPS 포함) 불러 들이기.. imagefile [6] [레벨:30]아별 2012-02-27 8175
44 기타 엑셀 기본 제공 대화 상자 인수 목록 file [레벨:30]아별 2009-11-04 8116
43 [VBA팁] 화일이 존재하는지 확인하기 [레벨:30]아별 2009-07-31 8067
42 기타 [VBA] 엑셀 파일을 PDF로 저장(EXPORT) 시키기 [1] [레벨:30]아별 2015-01-21 7647
41 기타 엑셀 2013에서 웹 브라우저 컨트롤(ActiveX, web browser)을 시트에 삽입할 수 없는 문제.. imagefile [레벨:30]아별 2014-01-19 7640
40 기타 엑셀에서 소리 내기(재생) _ sound play file [1] [레벨:30]아별 2010-12-13 7607
39 엑셀VBA 텍스트 박스에서 여러줄 입력하기 [레벨:30]a☆ 2004-11-15 7502
38 Excel에서 메뉴 및 메뉴 모음을 사용자 지정하는 방법 image [레벨:30]아별 2009-11-04 7493
37 [엑셀VBA] ERROR CODE file [레벨:30]아별 2008-08-28 7440
36 엑셀 추가 기능 만들기 [레벨:30]a☆ 2006-01-19 7420
35 현재 엑셀 파일의 색상표(Color Chart) 확인용 코드 [레벨:30]아별 2009-12-24 7322
34 엑셀의 사용자 정의 날짜/시간 형식(Format 함수) [레벨:30]a☆ 2004-11-12 7223
33 [엑셀VBA] 메시지 박스 활용하기 [레벨:30]아별 2004-12-22 7148
32 기타 헷갈리기 쉬운 워크시트 함수와 VBA함수 비교표 imagefile [레벨:30]아별 2010-10-05 6904
31 기타 VBE에서 휠마우스 사용가능하게 하기SpeedVB4 file [레벨:30]아별 2005-07-22 6843
30 [펌] Excel Macro(VBA) 입문자를 위한 소개자료 image [레벨:30]아별 2008-12-19 6696
29 엑셀에서 서식 지정하기.. 숫자를 한글로 표시하기 등.. [1] [레벨:30]a☆ 2004-09-24 6668
28 기타 기본 제공 대화 상자 실행하면 초기 값 설정 imagefile [레벨:30]아별 2010-08-25 6573
27 엑셀에서 매개변수의 전달과 외부함수 호출 [레벨:30]a☆ 2004-10-27 6519
26 엑셀에서 날짜 함수 컨트롤 하기 [레벨:30]a☆ 2004-10-29 6334