programing

VBA를 사용한 Excel 응용 프로그램 닫기

lovejava 2023. 4. 9. 20:55

VBA를 사용한 Excel 응용 프로그램 닫기

저는 아래를 사용했지만 성공하지 못했습니다.활성 워크북은 닫히지만 Excel 창은 열린 상태로 유지됩니다.

Application.ActiveWindow.Close SaveChanges:=False
ActiveWorkbook.Close SaveChanges:=False

응용 프로그램을 종료하는 명령어는 무엇입니까?

편집

좀 더 자세히 설명하자면:워크북 열기 이벤트에서 매크로를 실행합니다.나는 그 매크로가 끝나면 애플리케이션을 종료하고 싶다.이것도 해봤는데 안 되더라고요.

Private Sub Workbook_Open()
   Macro_MyJob
   Application.Quit
End Sub

이 어플리케이션은 어디에 둘까요?명령어를 종료하시겠습니까?

응용 프로그램을 종료하라는 명령을 보내기 전에 매크로를 호출하는 문서를 닫는 것이 문제인 것 같습니다.

이 경우 워크북을 닫는 명령을 보내지 않는 것이 해결책입니다.대신, 워크북의 "저장됨" 상태를 참으로 설정하면 저장되지 않은 책을 닫는 것에 대한 메시지를 피할 수 있습니다.참고: 워크북은 저장되지 않고 저장된 것처럼 보일 뿐입니다.

ThisWorkbook.Saved = True

그리고 나서 바로

Application.Quit

Save 프롬프트메시지를 회피하려면 , 이러한 행을 삽입할 필요가 있습니다.

Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True

작업 저장 후 이 줄을 사용하여 Excel 응용 프로그램을 종료해야 합니다.

Application.Quit

올바른 조건 체크를 하지 않으면 단순히 Private Sub Workbook_Open()에 이러한 행을 넣지 마십시오.그렇지 않으면 Excel 파일이 망가질 수 있습니다.

안전을 위해 실행할 모듈을 생성하십시오.다음은 제가 입력한 코드입니다.

Sub testSave()
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
End Sub

그것이 문제 해결에 도움이 되기를 바랍니다.

Sub TestSave()
Application.Quit
ThisWorkBook.Close SaveChanges = False
End Sub

저장하기 전에 앱을 종료하는 것처럼 보여도 저는 이 방법이 효과가 있는 것 같습니다만, 보존이 됩니다.

Application.Quit 

효과가 있을 거야.

다음과 같이 동작하는 것처럼 보이는 시퀀스를 시험해 보았습니다.

ThisWorkbook.Saved = True
Application.Quit
Application.ActiveWindow.Close SaveChanges:=False
ActiveWorkbook.Close SaveChanges:=False

시험해 보세요

ThisWorkbook.Save
ThisWorkbook.Saved = True
Application.Quit

저 같은 경우에는 어플리케이션 전체가 아니라 하나의 Excel 창만 닫아야 했기 때문에 어느 창을 정확히 닫아야 하는지 알려줘야 했습니다.

다음 행은 정상적으로 동작합니다.

Sub test_t()
  Windows("yourfilename.xlsx").Activate
  ActiveWorkbook.Close SaveChanges:=False
End Sub
Sub button2_click()
'
' Button2_Click Macro
'
' Keyboard Shortcut: Ctrl+Shift+Q
'
    ActiveSheet.Shapes("Button 2").Select
    Selection.Characters.Text = "Logout"
    ActiveSheet.Shapes("Button 2").Select
    Selection.OnAction = "Button2_Click"
    ActiveWorkbook.Saved = True
    ActiveWorkbook.Save
    Application.Quit
End Sub

언급URL : https://stackoverflow.com/questions/3628252/closing-excel-application-using-vba