Changeイベントを使うときの注意

Excel、VBAでChangeイベントを使うときには次の点に注意する必要があります。
Changeはワークシート上のどこが変わっても実行されます。
例えば、入力したセルを内容によって変換処理するようなケースを考えます。
まず入力することによって「変更イベント」が起きます。これを受けて変換処理が実行されます。
これによって「変更イベント」が起きます。また変換処理が実行されます。
延々と繰り返されて止まらなくなります。 (さらに…)

更新日時を文末に追加するマクロ

Word文書を閉じるタイミングで更新日時(正確には現在日時)を文末に追加するマクロです。
閉じる都度、更新日時が追加されます。 (さらに…)

Wordでイベントに応じてマクロを実行

Wordでは、ドキュメントを開いたり閉じたりするイベントに応じて、マクロを実行させることができます。
例えば次のようなイベントがあります。
Application.DocumentOpen イベント
Application.DocumentBeforePrint イベント
Application.DocumentBeforeSave イベント
Application.DocumentBeforeClose イベント

このうち、ドキュメントを保存するときに発生する「DocumentBeforeSave イベント」について説明します。
サンプルはWordのヘルプに記載されているものをそのまま使います。ただし単純に貼り付けただけでは動きません。Word2007で確認しました。 (さらに…)

特定のセルが変わったときにマクロを実行する方法

普通、Excelのマクロは、ボタンを押したり、メニューから選択したときに実行されます。
ワークシートが変わったときに自動的にマクロを実行するようにすることもできます。
その方法は次の通りです。

  1. 開発-VisualBasicを開く。
  2. プロジェクトエクスプローラ(左側)で、該当のシートをダブルクリック。
  3. コード(右側)のオブジェクト(「(General)」となっている)から「Worksheet」を選択。
  4. プロシージャ(「(Declarations)」となっている)から「Change」を選択。
  5. コードを書く。
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 3 And Target.Column = 8 Then
        Call プロシージャ
    End If
End Sub

このように書くと3行目8列目のセルが変わったときに指定したプロシージャが動作します。
もしIfを使わないとそのシートのどこかのセルが変わったときに動作します。何かをやる度にプロシージャが動作してしまうので意図しない動きをするかもしれません。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報