Excel VBAで入力したセルが正しい範囲かチェックする:Intersect

アプリなどで操作者が正確に入力しているかチェックする場合などに利用できます。




Homeに戻る > Excel セルのTipsへ

操作者が間違ったセルに入力した場合「入力されたセル位置が異なります」などとメッセージを表示させることができます。

メッセージを表示させるには入力直後が有効です、入力直後にチェックするにはWorksheet_Changeイベントを使用します。

指定された範囲内かどうかチェックするには、Intersectメソッドを使用します。

範囲内であるかどうかは Is Nothing で判定できます。

Intersectの構文

Application.Intersect(Arg1, Arg2…)

  • Argにはセル範囲を指定します。
  • 指定したセル範囲に共通セルがある場合、そのセル範囲(Range)が返ります。
    もし共通セルがなければ、Nothingが返ります。

関連するTipsの「Excel VBAで入力データのチェックをする:日付型とLong型の数値」も参照してください。


入力したセルが正しい範囲かチェックするVBAコード

VBAの説明

  1. Worksheet_Changeイベントで、変更があったRangeオブジェクトが返ります。
  2. セル位置はRange(Target.Address)で取得できます。
  3. Intersect(Range(Target.Address),Range(F5:F17))で、F5:F17の範囲に変更があったセルが含まれるかチェックします。
  4. is Nothingで真が返れば、正しい範囲ではありません。
    偽が返れば、正しい範囲です。
'Excelワークシート変更時のイベント
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Range(Target.Address), Range("F5:F17")) Is Nothing Then
'範囲内でない 
       Application.Caption = 0
    Else
'範囲内である
        Application.Caption = -1
    End If
End Sub


Homeに戻る > Excel セルのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved