10.14 ワークシートが変更されたとき
ワークブック内にあるいずれかのワークシートのセルが変更されたとき、入力した内容をチェックしたいなんてことはありませんか?たとえば、数値の項目へ英数字で入力したり、放送禁止用語を入れてないかとか…。

そんなときは、ワークブックのイベントWorkbook/SheetChangeイベントへマクロを書いておけばOKです。
使用例
Workbook/SheetChangeの使用例です。例では、ワークブック内のいずれかのワークシートのセルに入力した内容が数値以外であれば警告メッセージを表示しています。

ちなみに、引数のShが、ワークシートなど入力が発生した何者かを表すオブジェクトです。入力が行われたセル、引数Targetで参照できます。なお、TargetRange型です。

Private Sub Workbook_SheetChange(ByVal Sh As Object _
                               , ByVal Target As Range)

    On Error GoTo ExitProc:

    Dim lngType As Long
    Dim i As Long

    'Excel 5.0ダイアログだと
    'ここでエラーが出るんですけど…(汗)
    'そのために、On Error…入れてます
    lngType = Sh.Type

    '他に、xlChart、xlExcel4MacroSheetなども判断できます
    '変更が行われた何者かがワークシートのときは処理します
    If lngType = xlWorksheet Then
       
       '入力を行った後、文字列であれば警告メッセージを出します
       If IsNumeric(Target.Value) = False Then
          MsgBox "文字はダメ(汗)"
       End If

    End If

ExitProc:

End Sub
 ※このエクセルマクロはワークブックのイベントへ書くマクロです
Copyright(C) 1999-2006 結城圭介。 All rights reserved