
対象のセルを右クリックすることで赤⇒緑⇒黄⇒無色にセル色を変化させたいので、
操作対象のシートに対しイベントマクロを記述しました。
(別の質問で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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel VBAでの右クリックのポップアップメニューの非表示方法は?
Visual Basic(VBA)
-
エクセル VBA で行の右クリックメニューから行の挿入削除を無効にしたい
Excel(エクセル)
-
エクセルの右クリック(BeforeRightClick)について
Excel(エクセル)
-
-
4
マウスの右クリックでコンテキストメニューを表示/非表示させたい。
Visual Basic(VBA)
-
5
Excel VBAでマウスの左クリックのイベントを検知するには
Visual Basic(VBA)
-
6
(エクセルVBA)セルを左クリックしたら実行させるには?
Excel(エクセル)
-
7
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
8
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
9
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
10
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
11
UserForm1.Showでエラーになります。
工学
-
12
XL:BeforeDoubleClickが動かない
その他(プログラミング・Web制作)
-
13
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
-
14
セルの右クリックで出る項目を減らすことはできますか? Excel 2021
Excel(エクセル)
-
15
ExcelVBAで右クリックメニューのマクロ削除
Excel(エクセル)
-
16
エクセル・VBA CheckBoxのオブジェクト名に変数を使うことは可能でしょうか?
Excel(エクセル)
-
17
特定のシートのみ再計算させない方法は?
Excel(エクセル)
-
18
Excelマクロ セルを行頭に移動
Excel(エクセル)
-
19
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
20
エクセル「折り返して全体を表示」での折り返しの行数取得方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
一つのTeratermのマクロで複数...
-
ファイルが見つからない時、ス...
-
メッセージボックスのOKボタ...
-
ExcelのVBA。public変数の値が...
-
Excel_マクロ_現在開いているシ...
-
エクセルに張り付けた写真のフ...
-
Excel VBAからAccessマクロを実...
-
ExcelVBAの繰り返し処理でwebク...
-
マクロで待機時間を作りたい
-
Excel マクロ VBA プロシー...
-
ExcelのマクロをWSHから実行さ...
-
TERA TERMを隠す方法
-
マクロ実行時、ユーザーフォー...
-
UWLSの記録でマクロを作成し使...
-
Excel・Word リサーチ機能を無...
-
マクロ実行時、自動で背景色を...
-
Excel マクロでShearePoint先の...
-
excelのマクロで元に戻す方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
メッセージボックスのOKボタ...
-
Excel_マクロ_現在開いているシ...
-
一つのTeratermのマクロで複数...
-
マクロの連続印刷が突然不可能...
-
ExcelのVBA。public変数の値が...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
エクセルに張り付けた写真のフ...
-
Excelのセル値に基づいて図形の...
-
TERA TERMを隠す方法
-
マクロ実行時エラー
-
ExcelVBAでPDFを閉じるソース
-
wordを起動した際に特定のペー...
-
特定文字のある行の前に空白行...
-
Excel マクロでShearePoint先の...
-
エクセルで縦に並んだデータを...
-
マクロ実行時、ユーザーフォー...
-
ソース内の行末に\\
おすすめ情報