0

保存する前に、Excel で開いている各ファイル (*.xls、*.xlsx、*.xlsb、...) を検出する必要があります。

*.xlsm ファイルに Workbook_BeforeSave() を thisWorkbook に含めますが、thisWorkbook でのみ使用できます。

*.xlam ファイルにグローバル イベントを含めたいのですが、その方法がわかりません。

4

2 に答える 2

2

Charles リンクが示すように、クラス モジュールを使用して、他のオブジェクトからのイベントをキャッチする必要があります。

私の提案は、ThisWorkbookオブジェクトを再利用することです:

'App variable which should be assigned to current Application instance:
Public WithEvents App As Excel.Application

'Use open event on your workbook to assign App
Private Sub Workbook_Open()
    Set App = Application
End Sub

'Code catching WorkbookBeforeSave event on App
Private Sub App_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Debug.Print "Workbook "; Wb.Name; " is about to be saved..."
End Sub
于 2013-10-17T07:56:06.387 に答える