Supriyoは、VBAにマウスイベントハンドラーがあるかどうかを尋ねました。彼は、セルがクリックされたときにそのセルに値を挿入することを望んでいます。

これを行う標準的な方法は、SelectionChangeイベントを使用することです。ワークシートで選択が変更されるたびに、イベントがトリガーされます。このイベントは、セルがクリックされたときにトリガーされるだけでなく、誰かがカーソルコントロールキーを押して別のセルが選択された場合にもトリガーされます。

例として、セルが選択されるたびにセルB5に値10を含める必要があるとします。これを実装するには、次を使用できます:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("B5")) Is Nothing Then _       Range("B5").Value = 10 End Sub

このコードは、VBエディターのプロジェクトエクスプローラー領域にあるシートオブジェクトの1つに追加されます。イベントハンドラーを適用するワークシートをダブルクリックし、結果のコードウィンドウにマクロを追加します。

SelectionChangeイベントがトリガーされると、ターゲット(選択されているセル範囲)がハンドラーに渡されます。次に、マクロはターゲット範囲にセルB5が含まれているかどうかを確認し、含まれている場合は、値10をセルB5に詰め込みます。 B5(単一セル)のみが選択されている場合に、マクロが情報をB5にのみ詰め込むようにしたい場合は、次のバージョンのマクロを使用できます。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address = Range("B5").Address Then _       Range("B5").Value = 10 End Sub

注:

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

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

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