Johnは、ユーザーがワークシートを離れる前に、特定のアクション(追加された情報など)が実行されたことを確認する必要があります。彼は、WorksheetBeforeDeactivateなどの何らかのマクロイベントがあるかどうか疑問に思います。

この目的で使用できるイベントは実際には2つあります。 ThisWorkbookモジュールのSheetDeactivateイベントを使用して、ユーザーがワークブックにワークシートを残すたびにアクションをトリガーできます。

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)

MsgBox Prompt:="You just left sheet:" & Sh.Name End Sub

特定のワークシートを離れるときにのみアクションをトリガーする場合は、WorkSheetオブジェクトでDeactivateイベントを使用できます。

Private Sub Worksheet_Deactivate()

' sheet specific code goes here End Sub

ただし、どちらの場合でも、ユーザーが移動することを選択したワークシートは、イベントの完了後にアクティブなワークシートになることを知っておく必要があります。ユーザーをワークシートにとどまらせたい場合は、次のように、ユーザーをワークシートに戻す必要があります。

Private Sub Worksheet_Deactivate()

' sheet specific code goes here     Sheets("Sheet1").Select End Sub

もちろん、これは、ユーザーに残しておくワークシートの名前がSheet1であることを前提としています。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(7728)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。