5.イベント(event)

Excel VBA(VB6.0)と Excel 組み込み関数(fx)

Navi Open
Close Navi
 Microsoft Docs の解説では、イベントは、何らかの重要な出来事が発生したことをアプリケーションに通知するシグナルです。
たとえば、ユーザーがフォーム上のコントロールをクリックすると、フォームは、Click イベントを発生させて、そのイベントを処理するプロシージャを呼び出すことができます。
イベントは、複数のタスク間の通信を可能にすることもできます。 たとえば、メインのアプリケーションとは別のアプリケーションで並べ替えタスクを実行するとします。
ユーザーが並べ替えを取り消した場合、アプリケーションは並べ替え処理の停止を指示するキャンセル イベントを送信できます
と有ります。
主なObjectに与えられたEventを列挙してみました。
ads by google
Exce VBA に於ける Event 一覧
Worksheet_object
Workbook_object
Forms2.0_object
こちらも役に立つ情報
Object Event Code 例
Activate
Subobject がアクティブになった時に発生します
Private Sub Subobject_Activate()
Worksheet,Workbook,UserForm
記述凡例
Private Sub Worksheet_Activate()
'Sheet3がアクティブになった時メッセージが表示されます
  Dim sheetName As String
  sheetName = Sheet3.Name
  MsgBox sheetName & "がアクティブに成りました"
End Sub
       
AddControl_1
コントロールがフォーム、Frame の ページ に挿入された場合 に発生します
Private Sub Subobject_AddControl(ByVal Control As MSForms.Control)
UserForm,Frame
記述凡例
Dim Mycmd as Control 
Private Sub CommandButton1_Click() 
  Set Mycmd = Controls.Add("Forms.CommandButton.1") ', CommandButton2, Visible) 
  Mycmd.Left = 18 
  Mycmd.Top = 150 
  Mycmd.Width = 175 
  Mycmd.Height = 20 
  Mycmd.Caption = "This is fun." & Mycmd.Name 
End Sub 
Private Sub UserForm_AddControl(ByVal Control As _ 
  MSForms.Control) 
  Label1.Caption = "Control was Added." 
End Sub
       
AddControl_2
コントロールがMultiPage の ページ に挿入された場合 に発生します
Private Sub MultiPage_AddControl(ByVal Index As Long, ByVal Control As MSForms.Control)
MultiPage
記述凡例
***
       
       
AddinInstall
ブックがアドインとしてインストールされている場合に発生します
Private Sub Workbook_AddinInstall()
Workbook
記述凡例
Private Sub Workbook_AddinInstall() 
  With Application.Commandbars("Standard").Controls.Add 
      .Caption = "The AddIn's menu item" 
      .OnAction = "'ThisAddin.xls'!Amacro" 
  End With End Sub 
End Sub
       
AddinUninstall
ブックのアドインとして組み込みを解除したときに発生します
Private Sub Workbook_AddinUninstall()
Workbook
記述凡例
Private Sub Workbook_AddinUninstall() 
  Application.WindowState = xlMinimized 
End Sub
       
AfterUpdate
コントロールまたはレコードで変更されたデータが更新された直後に発生します
Private Sub Subobject_AfterUpdate()
CheckBox,ComboBox,ListBox,OptionButton, SpinButton,TextBox,ToggleButton
記述凡例

       
       
AfterXmlExport
Excel がデータを保存するか、指定されたワークブックから XML データをエクスポートした後で発生します
Private Sub Workbook_AfterXmlExport(ByVal Map As XmlMap, ByVal Url As String, ByVal Result As XlXmlExportResult)
Workbook
記述凡例

       
       
AfterXmlImport
既存の XML データ接続が更新された後、または指定された Microsoft Office Excel ワークブックに XML データをインポートした後で発生します
Private Sub Workbook_AfterXmlImport(ByVal Map As XmlMap, ByVal IsRefresh As Boolean, ByVal Result As XlXmlImportResult)
Workbook
記述凡例

       
       
BeforeClose
ブックを閉じる前に発生します。 ブックが変更された場合、ユーザーに変更内容の保存を要求する前に、このイベントが発生します
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Workbook
記述凡例
Private Sub Workbook_BeforeClose(Cancel as Boolean) 
   If Me.Saved = False Then Me.Save 
End Sub
       
BeforeDoubleClick
既定のダブルクリックの操作の前に、ワークシートをダブルクリックしたときに発生します
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Worksheet
記述凡例

       
       
BeforeDragOver_1
ドラッグ アンド ドロップ操作の実行中に発生します
Private Sub Subobject_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, ByVal Control As MSForms.Control, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal State As MSForms.fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
UserForm,Frame
記述凡例

       
       
BeforeDragOver_2
ドラッグ アンド ドロップ操作の実行中に発生します
Private Sub Subobject_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As MSForms.fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
CheckBox,ComboBox,CommandButton,Image,Label,ListBox,OptionButton,ScrollBar,SpinButton,TextBox,ToggleButton
記述凡例

       
       
BeforeDragOver_3
MultiPage のドラッグ アンド ドロップ操作の実行中に発生します
Private Sub MultiPage_BeforeDragOver(ByVal Index As Long, ByVal Cancel As MSForms.ReturnBoolean, ByVal Control As MSForms.Control, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal State As MSForms.fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
MultiPage
記述凡例

       
       
BeforeDragOver_4
TabStrip のドラッグ アンド ドロップ操作の実行中に発生します
Private Sub TabStrip_BeforeDragOver(ByVal Index As Long, ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As MSForms.fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
TabStrip
記述凡例

       
       
BeforeDropOrPaste_1
ユーザーがオブジェクトにデータをドロップするか貼り付けようとすると発生します
Private Sub Subobject_BeforeDropOrPaste(ByVal Cancel As MSForms.ReturnBoolean, ByVal Action As MSForms.fmAction, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
CheckBox,ComboBox,CommandButton,Image,Label,ListBox,OptionButton,ScrollBar,SpinButton,TextBox,ToggleButton
記述凡例

       
       
BeforeDropOrPaste_2
ユーザーがオブジェクトにデータをドロップするか貼り付けようとすると発生します
Private Sub Subobject_BeforeDropOrPaste(ByVal Cancel As MSForms.ReturnBoolean, ByVal Control As MSForms.Control, ByVal Action As MSForms.fmAction, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
UserForm,Frame
記述凡例

       
       
BeforeDropOrPaste_3
ユーザーがTabStripにデータをドロップするか貼り付けようとすると発生します
Private Sub TabStrip_BeforeDropOrPaste(ByVal Index As Long, ByVal Cancel As MSForms.ReturnBoolean, ByVal Action As MSForms.fmAction, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
TabStrip
記述凡例

       
       
BeforeDropOrPaste_4
ユーザーがMultiPageにデータをドロップするか貼り付けようとすると発生します
Private Sub MultiPage_BeforeDropOrPaste(ByVal Index As Long, ByVal Cancel As MSForms.ReturnBoolean, ByVal Control As MSForms.Control, ByVal Action As MSForms.fmAction, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
MultiPage
記述凡例

       
       
BeforePrint
Workbookまたはその中に含まれる内容を印刷する前に発生します
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Workbook_
記述凡例
Private Sub Workbook_BeforePrint(Cancel As Boolean) 
   For Each wk in Worksheets 
       wk.Calculate 
   Next 
End Sub
       
BeforeRightClick
既定の右クリックの操作の前に、Worksheetを右クリックしたときに発生します
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Worksheet
記述凡例
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) 
   Dim icbc As Object 
   For Each icbc In Application.CommandBars("cell").Controls 
       If icbc.Tag = "brccm" Then icbc.Delete 
   Next icbc 
   If Not Application.Intersect(Target, Range("b1:b10"))Is Nothing Then 
      With Application.CommandBars("cell").Controls.Add(Type:=msoControlButton, before:=6,temporary:=True) 
          .Caption = "New Context Menu Item" 
          .OnAction = "MyMacro" 
          .Tag = "brccm" 
      End With 
   End If 
End Sub
       
BeforeSave
Workbookを保存する前に発生します
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Workbook
記述凡例
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean,Cancel as Boolean) 
   a = MsgBox("Do you really want to save the workbook?", vbYesNo) 
   If a = vbNo Then Cancel = True 
End Sub
       
BeforeUpdate
Object のデータが変更される前に発生します
Private Sub Subobject_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
CheckBox,ComboBox,ListBox,OptionButton,ScrollBar,SpinButton,TextBox,ToggleButton
記述凡例

       
       
BeforeXmlExport
Workbook のデータを保存するか、指定されたWorkbook から XML データをエクスポートする前に発生します
Private Sub Workbook_BeforeXmlExport(ByVal Map As XmlMap, ByVal Url As String, Cancel As Boolean)
Workbook
記述凡例

       
       
BeforeXmlImport
既存の XML データ接続を更新する前、または新しい XML データを Microsoft Office Excel Workbook の中にインポートする前に発生します
Private Sub Workbook_BeforeXmlImport(ByVal Map As XmlMap, ByVal Url As String, ByVal IsRefresh As Boolean, Cancel As Boolean)
Workbook
記述凡例

       
       
Calculate
Worksheet オブジェクトのワークシートが再計算された後 に発生します
Private Sub Worksheet_Calculate()
Worksheet
記述凡例
Private Sub Worksheet_Calculate()
   Columns("A:F").AutoFit 
End Sub
       
Change_1
指定したコントロールの内容が変更されたときに発生します
Private Sub Subobject_Change()
CheckBox,ComboBox,ListBox,MultiPage,OptionButton,ScrollBar,SpinButton,TabStrip,TextBox,ToggleButton
記述凡例
Private Sub UserForm_Initialize()
   With ComboBox1
       .AddItem "123"
       .AddItem "456"
       .AddItem "789"
   End With
End Sub
Private Sub ComboBox1_Change()
   MsgBox "選択値が変更されました"
End Sub
       
Change_2
Worksheetのセルがユーザーまたは外部リンクにより変更されたときに発生します
Private Sub Worksheet_Change(ByVal Target As Range)
Worksheet
記述凡例
Private Sub Worksheet_Change(ByVal Target as Range)
  Target.Font.ColorIndex = 5 
End Sub
       
Click_1
ユーザーがマウスでコントロールをクリックした場合や複数の値が可能なコントロールの値を選択した場合に発生します
Private Sub Subobject_Click()
UserForm,CheckBox,ComboBox,CommandButton,Frame,Image,Label,ListBox,OptionButton,ToggleButton
記述凡例

       
       
Click_2
ユーザーがマウスでコントロールをクリックした場合や複数の値が可能なコントロールの値を選択した場合に発生します
Private Sub Subobject_Click(ByVal Index As Long)
MultiPage,TabStrip
記述凡例

       
       
DblClick_1
ユーザーがオブジェクトをポイントし、マウス ボタンを 2 回クリックすると発生します
Private Sub Subobject_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
UserForm,CheckBox,ComboBox,CommandButton,Frame,Image,Label,ListBox,OptionButton,TextBox,ToggleButton
記述凡例

       
       
DblClick_2
ユーザーがオブジェクトをポイントし、マウス ボタンを 2 回クリックすると発生します
Private Sub Subobject_DblClick(ByVal Index As Long, ByVal Cancel As MSForms.ReturnBoolean)
MultiPage,TabStrip
記述凡例

       
       
Deactivate
オブジェクトがアクティブ ウィンドウでなくなると発生します
Private Sub Subobject_Deactivate()
Worksheet,Workbook,UserForm
記述凡例
' Deactivate event for UserForm1
Private Sub UserForm_Deactivate()
  UserForm1.Caption = "I just lost the focus!"
  UserForm2.Caption = "Focus just left UserForm1 and came to me"
End Sub
       
DropButtonClick
ドロップダウン リストが表示または非表示になると常に発生します
又 TextBox の場合はアクティブな状態でF4押下で発生します
又はpropertyでDropButtonを追加する事により可能となります(凡例参照)
Private Sub Subobject_DropButtonClick()
ComboBox,TextBox
記述凡例
Private Sub UserForm_Initialize()
'TextBoxにDropButtonを追加する
   TextBox1.ShowDropButtonWhen = fmShowDropButtonWhenAlways
End Sub
Private Sub TextBox1_DropButtonClick()
   MsgBox "DropButton がclickされました"
End Sub
       
Enter
コントロールが、同じフォームの他のコントロールから実際にフォーカスを受け取る前に発生します
Private Sub Subobject_Enter()
CheckBox,ComboBox,CommandButton,Frame,ListBox,MultiPage,OptionButton,ScrollBar,SpinButton,TabStrip,TextBox,ToggleButton
記述凡例

       
       
Error_1
コントロールがエラーを検出し、エラー情報を呼び出し元プログラムに返すことができないときに発生します
Private Sub MultiPage_Error(ByVal Index As Long, ByVal Number As Integer, ByVal Description As MSForms.ReturnString, ByVal SCode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, ByVal CancelDisplay As MSForms.ReturnBoolean)
MultiPage
記述凡例

       
       
Error_2
コントロールがエラーを検出し、エラー情報を呼び出し元プログラムに返すことができないときに発生します
Private Sub Subobject_Error(ByVal Number As Integer, ByVal Description As MSForms.ReturnString, ByVal SCode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, ByVal CancelDisplay As MSForms.ReturnBoolean)
UserForm,CheckBox,ComboBox,CommandButton,Frame,Image,Label,ListBox,OptionButton,ScrollBar,SpinButton,TabStrip,TextBox,ToggleButton
記述凡例

       
       
Exit
コントロールがフォーカスを失い、そのフォーカスが同じフォームにある他のコントロールに移動する直前に発生します
Private Sub Subobject_Exit(ByVal Cancel As MSForms.ReturnBoolean)
CheckBox,ComboBox,CommandButton,Frame,ListBox,MultiPage,OptionButton,ScrollBar,SpinButton,TabStrip,TextBox,ToggleButton
記述凡例

       
       
FollowHyperlink
Worksheet
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Worksheet
記述凡例

       
       
Initialize
UserForm
Private Sub UserForm_Initialize()
UserForm
記述凡例

       
       
KeyDown
Object
Private Sub Subobject_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
UserForm,CheckBox,ComboBox,CommandButton,Frame,ListBox,MultiPage,OptionButton,ScrollBar,SpinButton,TabStrip,TextBox,ToggleButton
記述凡例

       
       
KeyPress
Object
Private Sub Subobject_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
UserForm,CheckBox,ComboBox,CommandButton,Frame,ListBox,MultiPage,OptionButton,ScrollBar,SpinButton,TabStrip,TextBox,ToggleButton
記述凡例

       
       
KeyUp
Object
Private Sub Subobject_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
UserForm,CheckBox,ComboBox,CommandButton,Frame,ListBox,MultiPage,OptionButton,ScrollBar,SpinButton,TabStrip,TextBox,ToggleButton
記述凡例

       
       
Layout_1
Object
Private Sub Subobject_Layout()
UserForm,Frame
記述凡例

       
       
Layout_2
MultiPage
Private Sub MultiPage_Layout(ByVal Index As Long)
MultiPage
記述凡例

       
       
MouseDown_1
Object
Private Sub Subobject_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
UserForm,CheckBox,ComboBox,CommandButton,Frame,Image,Label,ListBox,OptionButton,TextBox,ToggleButton
記述凡例

       
       
MouseDown_2
Object
Private Sub Subobject_MouseDown(ByVal Index As Long, ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
MultiPage,TabStrip
記述凡例

       
       
MouseMove_1
Object
Private Sub Subobject_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
     
UserForm,CheckBox,ComboBox,CommandButton,Frame,Image,Label,ListBox,OptionButton,TextBox,ToggleButton
記述凡例

       
       
MouseMove_2
Object
Private Sub Subobject_MouseMove(ByVal Index As Long, ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
MultiPage,TabStrip
記述凡例

       
       
MouseUp_1
Object
Private Sub Subobject_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
UserForm,CheckBox,ComboBox,CommandButton,Frame,Image,Label,ListBox,OptionButton,TextBox,ToggleButton
記述凡例

       
       
MouseUp_2
Object
Private Sub Subobject_MouseUp(ByVal Index As Long, ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
MultiPage,TabStrip
記述凡例

       
       
NewSheet
Workbook
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Workbook
記述凡例

       
       
Open
Workbook
Private Sub Workbook_Open()
Workbook
記述凡例

       
       
PivotTableCloseConnection
Workbook
Private Sub Workbook_PivotTableCloseConnection(ByVal Target As PivotTable)
Workbook
記述凡例

       
       
PivotTableOpenConnection
Workbook
Private Sub Workbook_PivotTableOpenConnection(ByVal Target As PivotTable)
Workbook
記述凡例

       
       
PivotTableUpdate
Worksheet
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Worksheet
記述凡例

       
       
QueryClose
UserForm
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
UserForm
記述凡例

       
       
RemoveControl_1
Object
Private Sub Subobject_RemoveControl(ByVal Control As MSForms.Control)
UserForm,Frame
記述凡例

       
       
RemoveControl_2
MultiPage
Private Sub MultiPage_RemoveControl(ByVal Index As Long, ByVal Control As MSForms.Control)
MultiPage
記述凡例

       
       
Resize
UserForm
Private Sub UserForm_Resize()
UserForm
記述凡例

       
       
Scroll_1
ScrollBar
Private Sub ScrollBar_Scroll()
ScrollBar
記述凡例

       
       
Scroll_2
Object
Private Sub Subobject_Scroll(ByVal ActionX As MSForms.fmScrollAction, ByVal ActionY As MSForms.fmScrollAction, ByVal RequestDx As Single, ByVal RequestDy As Single, ByVal ActualDx As MSForms.ReturnSingle, ByVal ActualDy As MSForms.ReturnSingle)
UserForm,Frame
記述凡例

       
       
Scroll_3
MultiPage
Private Sub MultiPage_Scroll(ByVal Index As Long, ByVal ActionX As MSForms.fmScrollAction, ByVal ActionY As MSForms.fmScrollAction, ByVal RequestDx As Single, ByVal RequestDy As Single, ByVal ActualDx As MSForms.ReturnSingle, ByVal ActualDy As MSForms.ReturnSingle)
MultiPage
記述凡例

       
       
SelectionChange
Worksheet
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Worksheet
記述凡例

       
       
SheetActivate
Workbook
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Workbook
記述凡例

       
       
SheetBeforeDoubleClick
Workbook
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Workbook
記述凡例

       
       
SheetBeforeRightClick
Workbook
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Workbook
記述凡例

       
       
SheetCalculate
Workbook
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Workbook
記述凡例

       
       
SheetChange
Workbook
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Workbook
記述凡例

       
       
SheetDeactivate
Workbook
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Workbook
記述凡例

       
       
SheetFollowHyperlink
Workbook
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Workbook
記述凡例

       
       
SheetPivotTableUpdate
Workbook
Private Sub Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
Workbook
記述凡例

       
       
SheetSelectionChange
Workbook
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Workbook
記述凡例

       
       
SpinDown
SpinButton
Private Sub SpinButton_SpinDown()
SpinButton
記述凡例

       
       
SpinUp
SpinButton
Private Sub SpinButton_SpinUp()
SpinButton
記述凡例

       
       
Sync
Workbook
Private Sub Workbook_Sync(ByVal SyncEventType As Office.MsoSyncEventType)
Workbook
記述凡例

       
       
Terminate
UserForm
Private Sub UserForm_Terminate()
UserForm
記述凡例

       
       
WindowActivate
Workbook
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Workbook
記述凡例

       
       
WindowDeactivate
Workbook
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Workbook
記述凡例

       
       
WindowResize
Workbook
Private Sub Workbook_WindowResize(ByVal Wn As Window)
Workbook
記述凡例

       
       
Zoom_1
MultiPage
Private Sub MultiPage_Zoom(ByVal Index As Long, Percent As Integer)
MultiPage
記述凡例

       
       
Zoom_2
Object
Private Sub Subobject_Zoom(Percent As Integer)
UserForm,Frame
記述凡例