Excel のアプリケーション レベルのイベント ハンドラーを作成する方法

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:213566
Microsoft Excel 97 版のこの資料には、次を参照してください。 158244.
概要
たびに特定のイベントの istriggered を実行する特定のイベント ハンドラーを設定する場合は、Application オブジェクトのイベント ハンドラーを記述できます。アプリケーション オブジェクトの Eventhandlers はグローバル、長い整理 Excel が開いている、どのブックに関係なく、アクティブなイベントが発生すること、appropriateevent が発生したときにイベント ハンドラーが実行されます。

この資料では、アプリケーション レベル イベントのハンドラーとの例を作成する方法について説明します。
詳細
アプリケーション レベルのイベント ハンドラーを作成するには、followingbasic 手順を使用する必要があります。
  • アプリケーション オブジェクトを使用する変数を宣言します WithEvents キーワードです。、 WithEvents (Application オブジェクト) などの ActiveX オブジェクトによってトリガーされたイベントに応答するオブジェクト変数を作成するのには、キーワードを使用できます。メモ: WithEvents クラス モジュールでのみ有効です。

  • 特定のアプリケーション イベントのプロシージャを作成します。使用して宣言したオブジェクトの WindowResize や WorkbookOpen、SheetActivate イベントに対するプロシージャを作成するたとえば、 WithEvents.
  • 作成し、イベント ハンドラーを起動する手順を実行します。
次の例では、メッセージ ボックスのブックのウィンドウ (イベントのイベント ハンドラーを発生させる) のサイズを変更するたびにグローバル イベント handlerthat の表示を設定する手順を使用します。

作成とイベント ハンドラーを開始します。

  1. 新しいブックを開きます。
  2. [ツール] メニューで、マクロ] をポイントし、 Visual Basic エディター] をクリックします。

    注: <b> Microsoft Office Excel 2007 のコード] で [開発] タブの [ Visual Basic ] をクリックします。
  3. [ クラス モジュール で、 挿入 メニューです。という名前のモジュールが挿入されます"<book name=""> -Class1 (コード)"をプロジェクトにします</book>。

  4. 次のコード行を入力して、Class1 の (コード) モジュール。
    Public WithEvents appevent As Application
    WithEvents appevent 変数で使用可能なキーワード、 オブジェクト ドロップダウンで、Class1 モジュール ウィンドウの (コード)。
  5. Class1 の (コード) モジュール ウィンドウで、をクリックします オブジェクト ドロップダウンをクリックし] をクリックしてください appevent [ボックスの一覧です。
  6. Class1 の (コード) モジュール ウィンドウで、をクリックします 手順 ドロップダウンをクリックし] をクリックしてください WindowResize [ボックスの一覧です。Class1 に以下を追加します (コード) モジュール シート。
       Private Sub appevent_WindowResize(ByVal Wb As Excel.Workbook, _       ByVal Wn As Excel.Window)   End Sub					
  7. Class1 にコードを追加 (コード) モジュール シートの次のように表示されるようにします。
           Public WithEvents appevent As Application       Private Sub appevent_WindowResize(ByVal Wb As Excel.Workbook, _           ByVal Wn As Excel.Window)           MsgBox "you resized a window"       End Sub					
    次に、クラスのインスタンスを作成し、Class1 のインスタンスの appeventobject は、アプリケーションに設定する必要があります。これは発生したとき、変数を宣言するため WithEvents、デザイン時に、objectassociated ではありません。A WithEvents 変数は、他のも同様に、- オブジェクトを作成しに目的のオブジェクトへの参照を代入する必要がある、 WithEvents 変数です。

  8. で、 挿入 メニュー] をクリックします モジュール 一般的な種類のモジュール シートをプロジェクトに挿入します。
  9. このモジュール シートでは、次のコードを入力します。
          Dim myobject As New Class1      Sub Test()          Set myobject.appevent = Application      End Sub					
  10. 実行します テスト マクロです。

    Microsoft Excel では、workbookwindow のサイズを変更するたびに実行するイベント ハンドラーを設定しただけです。
  11. で、 ファイル メニューの [終了して Microsoft Excel に戻る] をクリックします。
  12. ブック ウィンドウのサイズを変更します。「ウィンドウ サイズ変更する」のメッセージ ボックスが表示されます。

イベント ハンドラーを無効にする方法

上のプロジェクトを含むブックを閉じると、アプリケーション レベルのイベント ハンドラーは無効にします。プログラムを使用してイベント ハンドラーを無効にするには、次の操作を行います。
  1. Visual Basic エディターを起動します。
  2. 手順 9 で入力したマクロ コードでは、マクロを変更します。
          Sub test()          Set myobject.appevent = Nothing      End Sub					
  3. 実行します テスト マクロをもう一度。
  4. で、 ファイル メニューの [終了して Microsoft Excel に戻る] をクリックします。
  5. ブック ウィンドウのサイズを変更します。

    メッセージ ボックスは表示されません。
vbe vba [xl2000] [xl2002] XL2003 XL2007

警告: この記事は自動翻訳されています

プロパティ

文書番号:213566 - 最終更新日: 10/04/2015 05:05:00 - リビジョン: 8.0

Microsoft Excel 2000 Standard Edition, Microsoft Excel 2002 Standard Edition, Microsoft Office Excel 2007

  • kbexpertisebeginner kbdtacode kbhowto kbprogramming kbmt KB213566 KbMtja
フィードバック