クリックしたセルにXを入れる(Microsoft Excel)
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を入れる]
。