ダブルクリックでセルに色をつける: BeforeDoubleClick


ダブルクリックなどユーザーが何らかの操作をしたときに、その操作に応じてイベントが発生するようにすると、更に操作性を高めることができます。これを指定するには、Worksheetモジュールと呼ばれるモジュールにコードを記述します。VBエディタ上のプロジェクトエクスプローラで、 Microsoft Excel Objects - Sheet1(sheet1)を選びます。デフォルトでは(General)というオブジェクトになっていますが、ドロップボックスからWorksheetを選びます。ここではダブルクリックに対するイベントを操作しますので、右上のプロシージャボックスの中から、BeforeDoubleClickを選びます。このプロシージャの中に記述したコードがダブルクリック時に実行されます。下の例では、セルが空でない場合ColorIndexを6(黄)に指定しています。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  'ダブルクリックしたセルが空で無い場合
  If Target.Value <> "" Then
    'セルの色を黄色に指定
    Target.Interior.ColorIndex = 6
  End If
End Sub










上の例では、色が黄色になったまま元に戻せなくてちょっと不便です。そこで、ColorIndexが既に6になっているセルをダブルクリックした場合のイベントを追加すると、もう少し使い勝手が良くなります。下の例ではColorIndexをxlNoneにすることで、色をはずしています。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  'ダブルクリックしたセルが空で無い場合
  If Target.Value <> "" Then
    'セルの色を黄色に指定
    If Target.Interior.ColorIndex <> 6 Then
      Target.Interior.ColorIndex = 6
    '既に黄色になっている場合は色をはずす
    Else
      Target.Interior.ColorIndex = xlNone
    End If
  End If
End Sub

















0 件のコメント:

コメントを投稿