0

私が達成しようとしていることはかなり単純です。ユーザーがシートを選択すると、メッセージ ボックスが表示されます。意味: 現在シート 1 を表示しています。[シート 2] タブをクリックすると、何かを行う前にメッセージが表示されます。別のシートに移動したときに発生するイベントが見つからないようです。

私が試したイベント:Workbook_SheetActivateおよびWorksheet_Activate

Private Sub Workbook_SheetActivate(ByVal sh As Object)
        MsgBox ("Example Message")
End Sub

または

Private Sub Worksheet_Activate()
        MsgBox ("Example Message")
End Sub

私はいくつかのグーグルを行いましたが、ほとんどのことは、セルの値が変更されたとき、またはセルの選択が変更されたときに関するものです。

4

4 に答える 4

2

これはうまくいくはずです:

Private Sub Worksheet_Activate()
    MsgBox "you never visit...you never call....you never write"
End Sub

でも:

  • コードはワークシートのコード領域にある必要があります
  • マクロを有効にする必要があります
  • イベントを有効にする必要があります
于 2013-10-19T22:57:24.357 に答える
1

アクティブ化されているワークシートにイベントが必要です。つまり、シート 2 に配置すると、そのシートが開かれたときにのみ発生します。これは、ワークブックのシート 2 で機能しました。Sub worksheet_activate() MsgBox "アクティブ化されました!" サブ終了

于 2013-10-19T23:09:41.087 に答える
1

Excel で使用できるすべてのワークシート イベントへのリンクを次に示します。

http://dmcritchie.mvps.org/excel/event.htm

Private Sub Worksheet_Activate() 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)     -- (additional examples) 
     Cancel = True   'turn off Edit mode when using “Edit directly in a cell” 
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) 
    Cancel = True   'turn off Edit mode when using “Edit directly in a cell” 
Private Sub Worksheet_Calculate() 
Private Sub Worksheet_Change(ByVal Target As Range) 
    Application.EnableEvents = False   'should be part of Change macro 
    Application.EnableEvents = True   'should be part of Change macro 
Private Sub Worksheet_Deactivate() 
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) 
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

うまくいきませWorksheet_Activateんか?

于 2013-10-19T22:58:37.557 に答える