Excel 如何使用工作簿自动激活应用程序类事件

Excel 如何使用工作簿自动激活应用程序类事件,excel,vb.net,excel-interop,Excel,Vb.net,Excel Interop,我需要工作簿激活应用程序类事件代码,它可以在激活工作簿时最小化“工作簿窗口” 因此,每当激活C:\Book1.xlsx时,将“工作簿窗口”最小化 以下代码仅用于测试开始 Imports Microsoft.Office.Interop Public Class Form1 Public WithEvents wb1 As Excel.Workbook Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handle

我需要工作簿激活应用程序类事件代码,它可以在激活工作簿时最小化“工作簿窗口”

因此,每当激活
C:\Book1.xlsx
时,将“工作簿窗口”最小化

以下代码仅用于测试开始

Imports Microsoft.Office.Interop

Public Class Form1

Public WithEvents wb1 As Excel.Workbook

Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load

    Dim xlApp As New Excel.Application
    xlApp.Visible = True

    Threading.Thread.Sleep(10000)

    Dim wb1 As Excel.Workbook
    wb1 = xlApp.Workbooks.Open("C:\Book1.xlsx")

    Threading.Thread.Sleep(100000000)
End Sub

End Class
以下链接可能支持您


要做的第一件事是将
xlApp
的声明移动到类级别,并用事件声明

Private WithEvents xlApp As New Excel.Application
现在,我们可以利用
Excel.Application
附带的事件,特别是:

在激活任何工作簿窗口时发生

以及:

调整任何工作簿窗口的大小时发生

如您所见,在这些处理程序中,我将
WindowState
属性设置为
xlMinimized
。这意味着每当我尝试打开
工作簿时,它就会再次最小化

总的来说,您的代码看起来与此类似:

Public Class Form1

    Private WithEvents xlApp As New Excel.Application

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load

        xlApp.Visible = True

        Dim wb1 As Excel.Workbook
        wb1 = xlApp.Workbooks.Open("C:\Book1.xlsx")

    End Sub

    Private Sub xlApp_WindowActivate(Wb As Excel.Workbook, Wn As Excel.Window) Handles xlApp.WindowActivate
        xlApp.WindowState = Excel.XlWindowState.xlMinimized
    End Sub

    Private Sub xlApp_WindowResize(Wb As Excel.Workbook, Wn As Excel.Window) Handles xlApp.WindowResize
        xlApp.WindowState = Excel.XlWindowState.xlMinimized
    End Sub

End Class
Private Sub xlApp_WindowResize(Wb As Excel.Workbook, Wn As Excel.Window) Handles xlApp.WindowResize
    xlApp.WindowState = Excel.XlWindowState.xlMinimized
End Sub
Public Class Form1

    Private WithEvents xlApp As New Excel.Application

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load

        xlApp.Visible = True

        Dim wb1 As Excel.Workbook
        wb1 = xlApp.Workbooks.Open("C:\Book1.xlsx")

    End Sub

    Private Sub xlApp_WindowActivate(Wb As Excel.Workbook, Wn As Excel.Window) Handles xlApp.WindowActivate
        xlApp.WindowState = Excel.XlWindowState.xlMinimized
    End Sub

    Private Sub xlApp_WindowResize(Wb As Excel.Workbook, Wn As Excel.Window) Handles xlApp.WindowResize
        xlApp.WindowState = Excel.XlWindowState.xlMinimized
    End Sub

End Class