- ベストアンサー
Excelシート上で右クリックができない
Excelのシート上で右クリックをしても、ショートカットメニューが 表示されなくなってしまいました。 気になる点としては、下記のようなコードを記述し、ショートカット メニューを削除したことがあるのですが、影響はありますでしょうか? Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) For Each num In Application.CommandBars("Cell").Controls num.Delete Next End Sub 現在は、下記のようにしていますが、状況は変わりません。 ちなみに、下記コートをすべて削除しても状況は変わりません。 ブックを新規作成しても、表示されません。 シートの保護はしていません。 Windowsのデスクトップなどではショートカットメニュは表示されます。 VBE上でも表示されます。 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Application.CommandBars("Cell").Reset End Sub 以上、よろしくお願いします。
- level30
- お礼率19% (24/125)
- Visual Basic
- 回答数2
- ありがとう数1
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) >For Each num In Application.CommandBars("Cell").Controls >num.Delete >Next >End Sub どのような目的で、このようなコードを書いたのでしょうか?冗談でも、あまり良い気持ちがしません。右クリックすれば、「Cell」のメニューを消すなんていうのは、時限爆弾と同じではないでしょうか? もし、そのコードの意味がわからないのでしたら、まず、きちんとExcelのVBAの参考書で基礎的な勉強されることですね。 単に、以下の一行を、イミディエイト・ウィンドウを開いて、その上に書いて、行末にEnterをいれれば戻るはずです。 Application.CommandBars("Cell").Reset また、同様のBeforeRightClick のイベントコードは、すべて削除してください。
その他の回答 (1)
システムの復元機能を使っても駄目ですか
関連するQ&A
- Excelで右クリック禁止が出来ない?
Excel2010 を使用しています。 設定した範囲(1~10行)のセルを右クリックしたときに出るショートカットメニューを表示しない様な設定にしたく、 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Dim myRowTop As Long , myRowBottom As Long myRowTop = 1 myRowBottom = 10 If ActiveCell.Row >= myRowTop And ActiveCell.Row <= myRowBottom Then Application.CommandBars("Cell").Enabled = False Else Application.CommandBars("Cell").Enabled = True End If End Sub としました。 これで通常問題ないと思いますが、 A1 : F10 を「テーブルとして書式設定」し、この範囲のセルを右クリックしたとき、 ショートカットメニューが表示されてしまいます。 CommandBars([Index]) の Index が違うのかと思い、試してみましたが、直りませんでした。 どなたか詳しい方、どうか教えてください。 よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- Excelで追加した右クリックメニューが動かない
Windows Vista Excel2007です。 Sheet1に、次のようにVBAでプログラミングしたのですが、 '------------------------------------------------------------------------------- Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Application.CommandBars("Cell").Reset With Application.CommandBars("Cell").Controls.Add() .Caption = "テスト" .OnAction = "test" End With End Sub Public Sub test() MsgBox "OK" End Sub '------------------------------------------------------------------------------- 右クリックメニューには追加できたのですが、その「テスト」メニューをクリックすると、 次のようなエラーダイアログが表示されます。 「マクロ'Book1!test'を実行できません。このブックでマクロが使用できないか、 またはすべてのマクロが無効になっている可能性があります。」 セキュリティセンターは「すべてのマクロを有効にする」に設定しており、他のマクロは正常に動作します。 どうしてエラーになるのか全く分かりません。 どなたか原因をご存知の方、ご教示をお願いします。
- ベストアンサー
- オフィス系ソフト
- (エクセルVBA)セルを左クリックしたら実行させるには?
エクセルVBA初心者です。 下のように、同じシート内のコードとして2つのサブプロシージャがある状態なのですが、 シート内のどこかのセルを左クリック→指示(1) シート内のどこかのセルを右クリック→指示(2) のようにするにはどうしたらいいのでしょうか? (この状態だと、右クリックすると選択範囲が変わったことが優先的に認識されて指示(1)のほうが実行されてしまうようです。) 説明不足かもしれませんが、何を説明していいのか分からないので、補足が必要だったら言ってください。すみませんがよろしくお願いします。 --------------------------------------------------------------- Private Sub Worksheet_SelectionChange(ByVal Target As Range) 指示(1) End Sub --------------------------------------------------------------- Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) 指示(2) End Sub ---------------------------------------------------------------
- 締切済み
- オフィス系ソフト
- エクセル デバッグできるのとできないのがある
シートイベントについて教えてください。 シートモジュールに --------------------------------------------------------- Option Explicit Private Sub Worksheet_Activate() MsgBox "" End Sub Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) MsgBox "" End Sub Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "" End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox "" End Sub --------------------------------------------------------- と記載した時に、 F8で動かせるのは、Worksheet_Activateだけなのですがなぜでしょうか? ほかのイベントは、F8で実行させても、OSの音が鳴るだけで、マクロの実行はされません。 ご回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 同じシート内にイベントプロシージャが二つある時
いつもお世話になります。 WINDWS7 EXCELL2010 です。 下記の1 2のマクロを同じシート内にイベントプロシージャを二つ挿入したところ、 ※1 ※2のような現象が起きました。 この現象を解決したくご指導を仰ぎたいです。 宜しくお願いします。 ※1 エラー表示 コンパイルエラー: 名前が適切ではありません; Worksheet_BeforeDoubleClick ※2 下記の構文が青色に反転 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 1 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("A2:A51")) Is Nothing Then Exit Sub Cancel = True Sheets(CStr(Target.Value)).Select End Sub 2 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim myRange As Range Set myRange = Intersect(Target, Range("B2:B51")) If Not myRange Is Nothing Then Select Case Target.Value Case "" Target.Value = "○" Case Else Target.ClearContents End Select Cancel = True End If End Sub
- ベストアンサー
- Excel(エクセル)
- ダブルクリック・右クリックの操作方法
勤務表作成してます。 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
- 締切済み
- Visual Basic
- Excelでシート名と最終更新日を自動表示したい
Excelを使って (1)セルA1に入れた名目をシート名にし (2)セルH1には、最終更新日を自動で入れたいです。 調べた結果、 シート名を右クリックして「コードの表示」から (1)は Private Sub Worksheet_Change(ByVal Target As Range) Sheets(1).Name = Range("B1") End Sub を入れてうまくいきましたが、 (2)は Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If ThisWorkbook.Saved = False Then Worksheets("Sheet1").Range("H1").Value = Date End If End Sub を入れてみましたが(←調べましたもの) うまくいきませんでした。 単純に、 Private Sub Worksheet_Change(ByVal Target As Range) Sheets(1).Name = Range("B1") End Sub Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If ThisWorkbook.Saved = False Then Worksheets("Sheet1").Range("H1").Value = Date End If End Sub とつなげて入れるのではだめなんでしょうか? それとも、(2)の何かが間違っていますか? ご教授願います。
- ベストアンサー
- その他MS Office製品
- VBA 変数の値
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 上記で使用した変数の値を、Bookを閉じるまで保持するには、Cellを経由するしかないのでしょうか。
- ベストアンサー
- その他MS Office製品
- 右クリック、ダブルクリックの操作
勤務表作成してます。 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" ActiveCell = ActiveCell.Offset(-1, 0).Value Exit Sub End If Cancel = True If Range("$A$1").Value = "イベントOFF" Then Exit Sub 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" If Range("$A$1").Value = "イベントON" Then ActiveCell = "1" Else: Range("$A$1").Value = "イベントOFF" Exit Sub End If Cancel = True If Range("$A$1").Value = "イベントOFF" Then Exit Sub End If End Sub
- ベストアンサー
- Visual Basic
- Excel2000 VBA ダブルクリックで別シートの同番地セルへ移動
sheet1とsheet2 の2つのシートがあります。 sheet1のA1セルをダブルクリックすると、sheet2のA1セルへ移動させたいのですが、 下記のコードで実行すると、 'Range'メソッドは失敗しました:'_WorkSeet'オブジェクト のエラーメッセージが表示されました。 どうぞアドバイスお願い致します。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Sheets("sheet2").Select Range("Target.Address").Select End Sub
- ベストアンサー
- オフィス系ソフト