0
ブックを閉じる前に実行する保護機能を呼び出そうとしていますが、機能していません。 (WorkBook_BeforeCloseに呼び出されたときに保護サブは、自分自身で正常に動作しなく)VBCのBeforeCloseイベントが呼び出されない関数を呼び出す
これは、モジュール1で見つかったコードです:
Public Sub protect()
Dim index As Integer
index = 1
Do While index <= ActiveWorkbook.Worksheets.Count
ActiveWorkbook.Sheets(index).Activate
If ActiveSheet.Name <> "README" Then
ActiveSheet.unprotect
Cells.Select
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.Range("A1").Select
End If
index = index + 1
Loop
ActiveWorkbook.Sheets(1).Activate
End Sub
これははThisWorkbookで見つかったコードです:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call protect
End Sub
StackOverflowへようこそ、コードガール。 「それは働いていない」と言ったとき、どういう意味ですか?コードが実行されている間にエラーが発生しているか、シートが保護されていないために(一見)実行されていませんか?後者の2つのケースを前提とするならば、(コードが実行されているかどうか)確かに 'MsgBox'を挿入します。また、 '_BeforeClose'イベントをどのように起動させますか?ファイルを閉じるか(Excelを開いたままにしますか)、またはExcelを終了しますか? – Ralph
私は問題のkinfdを取得すると、 'debug.print now、" Protect(または任意のモジュール名)のようなコードにここに挿入します。 –
コードがまったく実行されていません。メッセージボックスを挿入したが、ファイルを閉じる前に表示されたが、保護サブはまだ実行されませんでした:/ BeforeCloseイベントはファイルを閉じるとトリガされ、閉じる前に変更を保存するかどうか尋ねられます。保存せずにキャンセルを選択しても、保存するようメッセージが表示される前にコードが実行される –