対象のセルを右クリックすることで赤⇒緑⇒黄⇒無色にセル色を変化させたいので、
操作対象のシートに対しイベントマクロを記述しました。
(別の質問で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:無色、の機能を作ることができました。
ここで、新たな問題として
『右クリックで色変化を循環できますが、コンテキストメニュー表示が邪魔になります。』
マクロの中で、コンテキストメニューの非表示指定が必要なのですが、何を記述すればいいのかわかりません。ご教示いただけると助かります。
No.1ベストアンサー
- 回答日時:
BeforeRightClickイベントプロシジャには、Targetの他に、Cancelパラメータがあります。
これにTrueを設定すれば、右クリックの標準動作(コンテキストメニュー表示)がキャンセルできます。
簡単に修正するなら、こんな感じになるのですが…。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Call セル色(Target)
Cancel = True
End Sub
最高です!
期待する処理をキャンセルするのではなく「標準動作のキャンセル」は、考えが及ばなかったです。
実行してみて納得しました。これで、ここ数日のもやもやがすっきりしました。深謝、深謝です!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) Excel VBAでの右クリックのポップアップメニューの非表示方法は? 1 2023/04/12 17:03
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) Worksheet_Change 4 2023/03/12 21:54
- Visual Basic(VBA) Excelのマクロについて教えてください。 3 2022/06/30 09:36
- Visual Basic(VBA) vbaでセルに入力したときに,その横にあるセルを保護し入力不可にするマクロを作りたいです。 2 2022/04/24 20:59
- Visual Basic(VBA) エクセル VBAについて 2 2022/05/16 16:33
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
マウスの右クリックでコンテキストメニューを表示/非表示させたい。
Visual Basic(VBA)
-
Excel VBAでの右クリックのポップアップメニューの非表示方法は?
Visual Basic(VBA)
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
-
4
シングルクリックとダブルクリックのイベントについて
Access(アクセス)
-
5
Excel VBAでマウスの左クリックのイベントを検知するには
Visual Basic(VBA)
-
6
XL:BeforeDoubleClickが動かない
その他(プログラミング・Web制作)
-
7
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
8
(エクセルVBA)セルを左クリックしたら実行させるには?
Excel(エクセル)
-
9
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
10
Ctrlキーを押しながらのダブルクリック
Visual Basic(VBA)
-
11
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
12
ドロップダウンリスト 自動表示したい
Excel(エクセル)
-
13
Worksheet_BeforeClick
Visual Basic(VBA)
-
14
VBA初心者です。結合セルを保持したまま挿入する方法を教えてほしいです。
Visual Basic(VBA)
-
15
Vba テキストボックス文字を右端から配置していく方法
Visual Basic(VBA)
-
16
VBA ダブルクリックしたときにctrlキーが押されているか知りたいのですが。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
他人が作ったマクロの理解
-
特定のPCだけ動作しないVBAマク...
-
メッセージボックスのOKボタ...
-
エクセルで別のセルにあるふり...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
エクセルのマクロをセルの値に...
-
Wordのマクロでクリップボード...
-
VBScript VisioをPDFに変換
-
PDF出力マクロについて。マクロ...
-
Excel VBAからAccessマクロを実...
-
ExcelVBAでPDFを閉じるソース
-
EXCELのVBAでRange("A1:C4")を...
-
エクセル VBA実行中のApplicati...
-
VBA アドインについて お詳しい...
-
TERA TERMを隠す方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
エクセルに張り付けた写真のフ...
-
ExcelのVBA。public変数の値が...
-
TERA TERMを隠す方法
-
Excelのマクロ(VBA)は、同じ...
-
ExcelVBAでPDFを閉じるソース
-
Excel VBAからAccessマクロを実...
-
EXCELのVBAでRange("A1:C4")を...
-
#defineの定数を文字列として読...
-
マクロ実行時、ユーザーフォー...
-
エクセルのマクロをセルの値に...
-
Outlookにて既にウィドウ単体で...
-
エクセルで別のセルにあるふり...
-
マクロで空白セルを詰めて別シ...
-
TeraTermマクロの文字列結合
おすすめ情報