プロが教えるわが家の防犯対策術!

対象のセルを右クリックすることで赤⇒緑⇒黄⇒無色にセル色を変化させたいので、
操作対象のシートに対しイベントマクロを記述しました。
(別の質問でneKo_deuxさんからのコメントを参考に作って以下のマクロを完成しました。)
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Call セル色(Target)
End Sub
呼び出すマクロは、次のようにしました。
Sub セル色(Target)
With Target.Interior
Select Case .ColorIndex
Case -4142
.ColorIndex = 3
Case 3
.ColorIndex = 4
Case 4
.ColorIndex = 6
Case 6
.ColorIndex = 0
End Select
End With
End Sub
これにより、クリックするたびに色を順次変更でき、クリック1:赤、クリック2:緑、クリック3:黄色、クリック3:無色、の機能を作ることができました。
ここで、新たな問題として
『右クリックで色変化を循環できますが、コンテキストメニュー表示が邪魔になります。』
マクロの中で、コンテキストメニューの非表示指定が必要なのですが、何を記述すればいいのかわかりません。ご教示いただけると助かります。

A 回答 (1件)

BeforeRightClickイベントプロシジャには、Targetの他に、Cancelパラメータがあります。


これにTrueを設定すれば、右クリックの標準動作(コンテキストメニュー表示)がキャンセルできます。
簡単に修正するなら、こんな感じになるのですが…。

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Call セル色(Target)
Cancel = True
End Sub
    • good
    • 1
この回答へのお礼

最高です!
期待する処理をキャンセルするのではなく「標準動作のキャンセル」は、考えが及ばなかったです。
実行してみて納得しました。これで、ここ数日のもやもやがすっきりしました。深謝、深謝です!!

お礼日時:2017/05/28 12:31

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

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