プロが教える店舗&オフィスのセキュリティ対策術

エクセルでセルをクリック(またはダブルクリック)すると“○”と入力され、もう一度クリックすると空欄に戻るよう設定したいのですが、マクロを使わないとできないのでしょうか?マクロを使用せずセルの設定でもできますか?どちらでできるのでしょうか、またその方法も教えてください。

A 回答 (3件)

クリックだけでやるのは、マクロでないと出来ないと思いますが


「入力規則」を使えば、マウス操作だけで、出来るようになります
    • good
    • 12
この回答へのお礼

ありがとうございます。いろいろ試して見たいと思います。

お礼日時:2007/04/13 22:34

マクロでやる方法です。

エクセルではセルのクリックイベントは拾えません。ダブルクリックなら可能です

以下のマクロを「シート名タブ右クリック」→「コードの表示」で開く画面に貼り付けて、目的のセル範囲を修正して下さい(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
    • good
    • 13
この回答へのお礼

ありがとうございました。無事できるようになりました。

お礼日時:2007/04/13 22:31

こんばんは。



例えば、セル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
'--------------------------------------------------------
 
 
    • good
    • 6
この回答へのお礼

こんばんは。回答有難うございます。マクロにもいろいろな方法があるものだと感心してしまいました。マクロがどのようなものかを知ったばかりの初心者ですが、今後も勉強していきたいと思います。ありがとうございました。

お礼日時:2007/04/13 23:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A