|

|
|
 |
10.14 ワークシートが変更されたとき |
 |
|
|
|
|
|
ワークブック内にあるいずれかのワークシートのセルが変更されたとき、入力した内容をチェックしたいなんてことはありませんか?たとえば、数値の項目へ英数字で入力したり、放送禁止用語を入れてないかとか…。
そんなときは、ワークブックのイベントWorkbook/SheetChangeイベントへマクロを書いておけばOKです。
|
|
|
|
|
|
|
|
|
|
Workbook/SheetChangeの使用例です。例では、ワークブック内のいずれかのワークシートのセルに入力した内容が数値以外であれば警告メッセージを表示しています。
ちなみに、引数のShが、ワークシートなど入力が発生した何者かを表すオブジェクトです。入力が行われたセル、引数Targetで参照できます。なお、TargetはRange型です。
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
|
※このエクセルマクロはワークブックのイベントへ書くマクロです
|
|
|
|
|