みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

エクセルでセルをクリックすると“○”と入力

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

投稿日時 - 2007-04-13 21:43:38

QNo.2918733

困ってます

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.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

ANo.2

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

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

ANo.1

クリックだけでやるのは、マクロでないと出来ないと思いますが
「入力規則」を使えば、マウス操作だけで、出来るようになります

投稿日時 - 2007-04-13 21:48:51

お礼

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

投稿日時 - 2007-04-13 22:34:41

あなたにオススメの質問