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_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

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

このヒント(11681)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。

Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります:

link:/ excel-Putting_an_X_in_a_Clicked_Cell [クリックされたセルにXを入れる]