2017-05-05 2 views
0

저는 WScript.CreateObject ("WScript.Shell")를 사용하여 사용자 정의 폼의 명령 단추에 대해 멀티 - 라인, 호버 - 오버, 5 초 팝업을 만드는 방법을 연구했습니다. 나는 이것이 잘 작동해야한다는 것을 알 수 있지만 "변수는 정의하지 못함"오류를 내고 있습니다. 디버깅시 SET 줄의 "WScript"를 문제로 강조 표시합니다. 제가 길을 잃지 않도록 도와주세요.Excel에서 WScript.CreateObject 사용

Private Sub CB1604A_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) 

Dim WshShell 
Dim BTN 
Set WshShell = WScript.CreateObject("WScript.Shell") 

BTN = WshShell.PopUp("What do you want to do?", 5) 

Select Case BTN 
    Case 6 
     WScript.Echo "Do it now." 
    Case 7 
     WScript.Echo "Do it later." 
    Case -1 
     WScript.Echo "Cancel all actions?" 
End Select 

최종 하위

답변

1

당신이 사용하는 WScript에 대한 참조를 추가해야 그 CreateObject -하지만 당신은 할 필요가 없습니다;

Set WshShell = CreateObject("WScript.Shell") 
BTN = WshShell.PopUp("What do you want to do?", 5) 

을 그리고 이후 WScript.Echo 대신 MsgBox를 사용 : 대신 .Shell의 인스턴스를 생성 VBA의 CreateObject를 사용

... 
MsgBox "Do it now." 
+0

나는 당신의 제안을 시도하고 몇 가지 결함을 가지고 있었다. 그것은 거의 200 msgbox를 만들었습니다. 명령 버튼을 계속 움직이게했는데 팝업이 나타나지 않았습니다. – Hareborn

+0

MouseMove 이벤트를 사용하고 있기 때문에 마우스가 컨트롤 경계 내에서 움직일 때마다 트리거됩니다. 누락 된 참조 문제를 겪지 않았다면 원래 코드에서도 같은 결과가 발생합니다. –

관련 문제