ERLANDSEN DATA CONSULTING Excel & VBA Tips   Information in English / Informasjon på engelsk

Disse websidene oppdateres ikke lengre og er kun tilgjengelig for historikken sin skyld.

Klikk her for å gå til den oppdaterte informasjonen.

Programobjekthendelser

Programobjekthendelser forekommer når en arbeidsbok blir laget eller åpnet eller når et ark i en hvilken som helst arbeidsbok blir endret. Hvis du vil skrive hendelsesprosedyrer for Application-objektet, må du lage et nytt objekt ved hjelp av nøkkelordet WithEvents i en klassemodul. Etter at man har opprettet den nye klassemodulen kan man knytte makroer til følgende hendelser:

NewWorkbook
SheetActivate
SheetBeforeDoubleClick
SheetBeforeRightClick
SheetCalculate
SheetChange
SheetDeactivate
SheetSelectionChange
WindowActivate
WindowDeactivate
WindowResize
WorkbookActivate
WorkbookAddinInstall
WorkbookAddinUninstall
WorkbookBeforeClose
WorkbookBeforePrint
WorkbookBeforeSave
WorkbookDeactivate
WorkbookNewSheet
WorkbookOpen

Lage hendelsesmakroer for Applicationobjektet

Start Visual Basic-redigering.
Velg det aktuelle prosjektet i Prosjekt-vinduet.
Sett inn en ny klassemodul ved å velge menyvalget Sett inn, Klassemodul.
Aktiver den ny klassemodulen og gi den et nytt navn, f.eks. AppEventClass
Skriv eller lim inn disse eksempelmakroene:

Public WithEvents Appl As Application


Private Sub Appl_NewWorkbook(ByVal Wb As Workbook)
    ' your code here
    MsgBox "A new workbook is created!"
End Sub


Private Sub Appl_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
    ' your code here
    MsgBox "A workbook is closed!"
End Sub


Private Sub Appl_WorkbookBeforePrint(ByVal Wb As Workbook, Cancel As Boolean)
    ' your code here
    MsgBox "A workbook is printed!"
End Sub


Private Sub Appl_WorkbookBeforeSave(ByVal Wb As Workbook, _
    ByVal SaveAsUI As Boolean, Cancel As Boolean)
    ' your code here
    MsgBox "A workbook is saved!"
End Sub


Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook)
    ' your code here
    MsgBox "A workbook is opened!"
End Sub

Etter at du er ferdig med å skrive inn hendelsesmakroene for Applicationobjektet må du legge til litt kode i modulen ThisWorkbook for å aktivere hendelsesmakroene:

Dim ApplicationClass As New AppEventClass


Private Sub Workbook_Open()
    Set ApplicationClass.Appl = Application
End Sub

Etter at prosedyren Workbook_Open har blitt kjørt skal hendelsene tilknyttet Applicationobjektet være aktivert.

 

Dokumentet er sist oppdatert 1999-08-21 12:31:27      Utskriftsvennlig versjon

 

Erlandsen Data Consulting     http://www.erlandsendata.no/   
Excel & VBA Tips   Copyright ©1999-2017    Ole P. Erlandsen   All rights reserved
E-post kontaktadresse