koji
皆さんにいろいろ教わりました。ありがとうございました。 他の質問箱を見ていたら、以下のような問答がありました。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 Q:セルのどこでも良いからクリックすると起動するイベントってありますか? A: ありません。右クリックやダブルクリックならあります。 SelectionChangeイベントが近いですが、同じセルを連続してクリックしても、 2回目からは働きません。右クリックやダブルクリックなら、同じセルでも連続し て起動させることが出来ます。 そして、以下のような、参考コードもありました。
質問内容ですが、セルに□を入力してあり、それをクリックするたびに ■と□を文字入替えをしたいのですが、どのようにしたらよいのでしょうか?Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean) With Target If .Count >= 2 Then Exit Sub If .Value = "□" Then .Value = "■" Cancel = True ElseIf .Value = "■" Then .Value = "□" Cancel = True End If End With End Sub 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 セル A2〜C4 と D3〜G10 を適用する場合です。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("A2:C4, D3:G10")) Is Nothing Then Exit Sub With Target Select Case Target.Value Case "" Target.Value = "□" Case "□" Target.Value = "■" Case "■" Target.Value = "" Case Else Target.ClearContents End Select Cancel = True End With End Sub 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) With Target If .Count >= 2 Then Exit Sub If .Value = "□" Then .Value = "■" ElseIf .Value = "■" Then .Value = "□" End If Cancel = True End With End Sub SelectionChange にCancel はないのではないですか? やるとしたら .Offset(1,0).Select とか?
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 これは大変参考になります。 これをベースにコードをいじくろうと思います。
そういうわけで、ここでの質問は、終わりとさせていただきます。
この記事にはVBAのコードが含まれています。
緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他
|