2017-02-07 3 views
0

私は信じられないほど単純なテストと思ったことを達成するために時間を過ごしてきました。私が達成しようとしているのは、ユーザーが新しいセルを選択したり、セルの内容を変更したりするときに、MsgBoxをポップアップすることです。Excel Worksheet_SelectionChangeイベントはまったく起動しませんか? (Office 2013と2016の両方で)

私は約6時間、この時になって、これまでゼロの成功を持ってきました!私はOffice 2016(Windows 10)とOffice 2013(Windows 7)と同じ動作をしています。

  1. 新しいマクロ有効ブックを作成します。ここでは

    は私の方法(複数可)です。

  2. 新しいマクロをブックに記録します。録音を停止します。 VBAを開きます。
  3. 「モジュール1」のコードを開き、望ましくないコードを次のコードに置き換えます。ファイルを保存します。
  4. ファイル] - > [オプション] - > [セキュリティセンター] - > [セキュリティセンターの設定] - > [マクロの設定 - >「VBAプロジェクトオブジェクトモデルへの信頼アクセス」が選択されています。ファイルを保存します。
  5. また、私は、様々な細胞、または編集セルをクリックすることができるように期待していApplication.EnableEvents = True
  6. を確保し、イベントが発生するたびMsgBoxを受けています。ここで

私のコードです:私は

Option Explicit 

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)  
    MsgBox "changed!" 
End 

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    MsgBox "selected!" 
End Sub 

Public Sub Just_In_Case() 
    Application.EnableEvents = True 
End Sub 

何をしないのですか?このアクションイベントを防止するセキュリティ設定はありますか?私は自宅でオフラインで行うのと同じように、オンラインで仕事をしています。

ありがとうございました!関連する場合:)ここ

PSは、私のVBA環境のスクリーンショットです:https://i.stack.imgur.com/yXkMK.png

+0

ですから、ユーザが(例えば)シート2を選択した場合、ポップアップは、ユーザーが別のシートを選択したことを通知するために表示されるようにしたいです? –

答えて

0

Workbook_SheetChangeコードがThisWorkbookコードモジュールではなく、通常のモジュールにする必要があること。

EDIT:とWorksheet_SelectionChangeは、ワークシートのコードモジュールに完全なリファレンスについては

http://www.cpearson.com/excel/events.aspx

+0

ありがとう!それがそのほとんどを解決しました!また、ワークシートイベントは 'ThisWorksheet'コードモジュールに入ります。:D –

+0

はい - 申し訳ありませんが、ワークシートレベルのイベント –

0

になり、解決策は、私のコードが間違ってModule1コーディング領域に置かれたということです。 (私は考えコードはどこにも行くことができなかった!)

Workbook_SheetChange()ThisWorkbook

Worksheet_SelectionChange()の下に属している。このようSheet1

下属しています!画像のスクリーンショット: Sheet1 ThisWorkbook

は、あなたの助けのために、そんなにティムをありがとうございます! :D

関連する問題