このQ&Aは役に立ちましたか?
5人が「このQ&Aが役に立った」と投票しています
回答(3)
こんばんは。
例えば、セルB5をクリックして、"○"を表示する場合
アクティブセルがB5以外であれば、B5をクリックして、"○"を表示したり、消したりすることはできます。
が、アクティブセルがB5の状態でクリック(続けてセルB5をクリック)して、それはできません。
もしクリックのみでそれをしたければ、一旦、B5以外のセルをクリックしてアクティブセルをB5以外にしてから再度B5をクリックする方法になります。
以下のようにSelectionChangeイベントを使います。
●B1~B5 で実行する場合。
'------------------------------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count <> 1 Then Exit Sub
If Intersect(Target, Range("B1:B5")) Is Nothing Then Exit Sub
If Target.Value = "" Then
Target.Value = "○"
Else
Target.Value = ""
End If
End Sub
'--------------------------------------------------------
投稿日時 - 2007-04-13 22:35:42
こんばんは。回答有難うございます。マクロにもいろいろな方法があるものだと感心してしまいました。マクロがどのようなものかを知ったばかりの初心者ですが、今後も勉強していきたいと思います。ありがとうございました。
投稿日時 - 2007-04-13 23:24:50
マクロでやる方法です。エクセルではセルのクリックイベントは拾えません。ダブルクリックなら可能です
以下のマクロを「シート名タブ右クリック」→「コードの表示」で開く画面に貼り付けて、目的のセル範囲を修正して下さい(2行目です)
シートに戻り目的のセルをダブルクリックしてみてください
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Const rng As String = "A1:A3" '処理対象のセル範囲
If Not Application.Intersect(Target, Range(rng)) Is Nothing Then
If Target.Value = "" Then
Target.Value = "○"
Else
Target.ClearContents
End If
End If
End Sub
投稿日時 - 2007-04-13 22:00:47
ありがとうございました。無事できるようになりました。
投稿日時 - 2007-04-13 22:31:31