Wendyには、C3:P312の範囲のメインデータを含む、かなりの量のデータを含むワークシートがあります。彼女は、このデータ範囲内のセルをクリックすると、セルに「x」を挿入するマクロが必要です。

Excelがセルの「クリック」として認識できるイベントはありません。

おそらく最も近いイベントは、セルの選択が変更されるたびにトリガーされるSelectionChangeイベントです。次に、イベントハンドラーは、セルの選択がC3:P312の範囲内にあることを確認し、範囲内にある場合はセルに「x」を配置します。次のイベントハンドラーがそれを行います:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim rInt As Range     Dim rCell As Range

Set rInt = Intersect(Target, Range("C3:P312"))

If Not rInt Is Nothing Then         For Each rCell In rInt             rCell.Value = "x"

Next     End If     Set rInt = Nothing     Set rCell = Nothing End Sub

ただし、このアプローチには問題があります。別のセルをクリックしたときにSelectionChangeイベントがトリガーされるだけでなく、キーボードを使用してワークシート内のあるセルから別のセルに移動した場合にもトリガーされます。これは、キーボードを使用してワークシート内を移動すると、通過する各セルに「x」文字の軌跡が残ることを意味します。

これを回避する1つの方法は、セルのチェックと変更をトリガーするイベントを変更することです。 Excelには「クリック」イベントはありませんが、「ダブルクリック」イベントがあります。これは、次に示すように、ダブルクリックしたセルを変更できることを意味します:

Private Sub Worksheet_BeforeDoubleClick( _             ByVal Target As Range, Cancel As Boolean)

Dim rInt As Range     Dim rCell As Range

Set rInt = Intersect(Target, Range("C3:P312"))

If Not rInt Is Nothing Then         For Each rCell In rInt             rCell.Value = "x"

Next     End If     Set rInt = Nothing     Set rCell = Nothing     Cancel = True End Sub

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(3378)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。