엑셀/VBA

VBA - 창 모두 저장 후 닫기 / 창 모두 닫기 / 창 한개 빼고 닫기

gongdol 2021. 8. 17. 23:05
300x250

매크로를 돌리다보면 엑셀창이 너무 많이 열려 닫기가 힘들때가 있다. 

 

한번에 저장하는 VBA가 있으면 참 편리할것 같다. 

 

우선 처음 시도는 모든창을 저장하고 닫는거였다. 그랬더니 VBA를 실행후에 다 저장이 되긴했다. 

저장 후 엑셀 창을 다끄고 다시 켜려고 하니 파일이 켜지지가 않는다....

 

뭔일인지 모르겠지만 그냥 VBA 실행한 엑셀 창 한개를 놔두고 닫아주기로 한다. 

 

지금 VBA를 실행한 엑셀 창 한개 남기고 다 저장하고 종료하기 코드는 아래와 같다. 

 


Sub 열린파일모두저장하기()

Dim ms As Workbook

For Each ms In Application.Workbooks
    If ms.Name <> ThisWorkbook.Name Then
        ms.Save
        ms.Close
    End If

    
Next
MsgBox ("저장완료")
End Sub


열려있는 엑셀 창들을 ms 라는 워크북 변수에 다 넣어버리고 for문을 돌려 하나하나 save, close 해버린다

 

조건은 나자신 제외하고 저장해버린다. 

 

다 저장하면 메세지 박스로 저장완료!!!를 써버린다. 

 

근데 왜 저장완료하면 다른작업하다가도 떴으면 좋겠는데 왜 안뜨는것인지 모르겠다. 

 

어쨋든 끝 

300x250