• 締切済み

ダブルクリック・右クリックの操作方法

勤務表作成してます。 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

みんなの回答

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

#2の修正です 両方イベントの >If Range("A1").Value = "OFF" Then Exit Sub を If Range("A1").Value = "イベントOFF" Then Exit Sub へ変更してください ごめんね

gorugo48
質問者

お礼

hige_082様 いつも詳しくご回答ありがとうございます。 同内容を質問しないように注意します。 回答いただいた、VBAを操作いたしますと、イベントON、OFF関係なしに 右クリックで「1」を入力、ダブルクリックで上のセルを入力いたします。「OFF」のとき、通常の操作、「ダブルクリックではカーソル表示、右クックでコンテキストメニュー表示したいのですが、可能でしょうか。

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

こんな感じで 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)
回答No.1

ONとOFFの値をcommandbuttonやオートシェープ もしくは画面から見えないセルなどに保持すれば あまり悩むことなくできると思いますが・・・  あと、cancelを実行するタイミングは どの命令の前か後か、プロシージャを抜けるまたは 終了するときにcancelをどうすればいいのか よく考えてみてください。  適当に書き始めてそれにこだわると 解決方法がわからなくなりがちです。

gorugo48
質問者

お礼

早速の回答ありがとうございます。 Commandbuttonの方法もあるのですね。 まだ、初歩なので、考えてみます。 ありがとうございました。

関連するQ&A

専門家に質問してみよう