2014-07-16 1 views
0

사용자가 매크로를 사용하도록 설정하는 일부 vba 코드 온라인이 나타났습니다. 매크로가 꺼져있을 때 "Sheet1"만 표시되며 켜져 있으면 "Sheet1"이 숨겨지고 작업 시트 숨김이 해제됩니다. 이것은 매우 독창적 인 코드이지만 한 가지 단점이 있습니다. 파일을 닫을 때 파일을 저장할지 묻지 않습니다. 나머지 시트를 숨기도록 자동으로 저장됩니다. 나는이 문제를 해결할 방법이 있는지 알고 싶습니다. 즉, "저장하지 않고 저장/저장"프롬프트를 활성화하고 "Sheet1"을 제외하고 시트를 숨긴 채로 유지하는 것입니다.통합 문서를 닫기 전에 저장 확인

아래 코드는 다음과 같습니다.

Private Sub Workbook_BeforeClose(Cancel As Boolean) 

'Step 1: Declare your variables 
Dim ws As Worksheet 

'Step 2: Unhide the Starting Sheet 
Sheets("Sheet1").Visible = xlSheetVisible 

'Step 3: Start looping through all worksheets 
For Each ws In ThisWorkbook.Worksheets 

'Step 4: Check each worksheet name 
If ws.Name <> "Sheet1" Then 

'Step 5: Hide the sheet 
ws.Visible = xlVeryHidden 
End If 

'Step 6: Loop to next worksheet 
Next ws 


'Step 7: Save the workbook 
ActiveWorkbook.Save 

End Sub 


Private Sub Workbook_Open() 

'Step 1: Declare your variables 
Dim ws As Worksheet 

'Step 2: Start looping through all worksheets 
For Each ws In ThisWorkbook.Worksheets 

'Step 3: Unhide All Worksheets 
ws.Visible = xlSheetVisible 

'Step 4: Loop to next worksheet 
Next ws 


'Step 5: Hide the Start Sheet 
Sheets("Sheet1").Visible = xlVeryHidden 

End Sub 
+1

그냥 매크로를 사용하는 사용자를 강제 할 수있는 방법에 대해 언급이 대부분의 일반 사용자를 위해 일하는 것이 있지만, 그것은 매우 쉽게 사용자가 나머지 시트를 숨길 수 있도록하기 위해 f 의도는 단순히 유용성을 개선 한 다음 좋지만 그렇지 않으면 보안/복사 방지 조치로서 많은 것을 남겨 둘 수 있습니다. – hnk

+0

이 코드에 대한 어떠한 내용도 사용자가 매크로를 활성화하도록 강요하지 않으며, 통합 문서 수준 이벤트 (표준 모듈의 일반 프로 시저가 팝업 대신 메뉴 모음에 경고 함)로 인해 매크로를 활성화하라는 메시지 만 표시합니다. 프롬프트에서 매크로를 비활성화 상태로 유지할 수 있습니다. 이에 따라이 게시물의 제목을 개정하고 있습니다. –

+0

n/m, 다른 누군가가 이미 질문 제목을 수정 한 것 같습니다 : –

답변

1

당신과 같이 당신의 자신의 메시지와 함께 ActiveWorkbook.Save을 포장 할 수 있습니다

If MsgBox("Would you like to save?", vbYesNo + vbQuestion, "Save Workbook") = vbYes Then 
    ActiveWorkbook.Save 
End If 
+0

아니요 작동하지 않습니다. 사용자가 통합 문서를 저장하지 않기로 결정한 경우 통합 문서를 다시 열면 시트가 숨겨지지 않습니다. – user3125707

+0

어떤 경우에는, 이것은 나에게 이해가되지 않습니다. 통합 문서가 사용자가 다음에 열 때 시트를 숨기도록 유지하려면 사용자에게 이미 저장 한 옵션을 제공하고 간단하게 저장하지 않아야합니다. 실제 문제는 무엇입니까? – Gareth

+0

죄송합니다. 나쁘다고 언급하는 것을 잊어 버렸습니다. 문제는 사용자가 우연히 또는 실수로 일부 텍스트를 입력하면 사용자가 실제로 파일을 저장하지 않더라도 사용자가 모르게 클릭을하면 (프롬프트가 표시 될 수 있다고 생각할 때) 변경 사항이 저장됩니다. – user3125707

관련 문제