- 締切済み
ダブルクリック・右クリックの操作方法
勤務表作成してます。 A1に「ON・OFF」を表示します。 「ON」のときに、ダブルクリックで、上のセルを表示、右クリックで「1」を表示します。 「OFF」のときは、コンテキストメニュ-(通常の操作)が出来るようにしたいのですが、ON.OFFの切り替え操作のVBAがわかりません。 よろしくお願いします。 Option Explicit Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) ActiveCell = ActiveCell.Offset(-1, 0).Value If Target = Range("$A$1") Then Cancel = True If Range("$A$1").Value = "イベントON" Then Range("$A$1").Value = "イベントOFF" Else Range("$A$1").Value = "イベントON" End If If Range("$A$1").Value = "イベントOFF" Then Exit Sub End If End If End Sub Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) ActiveCell = "1" ' If Target = Range("$A$1") Then ' Cancel = True ' ' If Range("$A$1").Value = "イベントON" Then ' Range("$A$1").Value = "イベントOFF" ' Else ' Range("$A$1").Value = "イベントON" ' End If If Range("$A$1").Value = "イベントOFF" Then Exit Sub End If End Sub
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- hige_082
- ベストアンサー率50% (379/747)
#2の修正です 両方イベントの >If Range("A1").Value = "OFF" Then Exit Sub を If Range("A1").Value = "イベントOFF" Then Exit Sub へ変更してください ごめんね
- hige_082
- ベストアンサー率50% (379/747)
こんな感じで ON.OFFの切り替えは片方でよいと思うので どちらか削ってください Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address = "$A$1" Then Select Case Target.Value Case "イベントON" Target.Value = "イベントOFF" Case "イベントOFF" Target.Value = "イベントON" End Select Cancel = True Exit Sub End If If Range("A1").Value = "OFF" Then Exit Sub If Target.Row = 1 Then Exit Sub Target.Value = Target.Offset(-1).Value Cancel = True End Sub Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Target.Address = "$A$1" Then Select Case Target.Value Case "イベントON" Target.Value = "イベントOFF" Case "イベントOFF" Target.Value = "イベントON" End Select Cancel = True Exit Sub End If If Range("A1").Value = "OFF" Then Exit Sub Target.Value = 1 Cancel = True End Sub 参考まで
- DreamyCat
- ベストアンサー率56% (295/524)
ONとOFFの値をcommandbuttonやオートシェープ もしくは画面から見えないセルなどに保持すれば あまり悩むことなくできると思いますが・・・ あと、cancelを実行するタイミングは どの命令の前か後か、プロシージャを抜けるまたは 終了するときにcancelをどうすればいいのか よく考えてみてください。 適当に書き始めてそれにこだわると 解決方法がわからなくなりがちです。
お礼
早速の回答ありがとうございます。 Commandbuttonの方法もあるのですね。 まだ、初歩なので、考えてみます。 ありがとうございました。
お礼
hige_082様 いつも詳しくご回答ありがとうございます。 同内容を質問しないように注意します。 回答いただいた、VBAを操作いたしますと、イベントON、OFF関係なしに 右クリックで「1」を入力、ダブルクリックで上のセルを入力いたします。「OFF」のとき、通常の操作、「ダブルクリックではカーソル表示、右クックでコンテキストメニュー表示したいのですが、可能でしょうか。