• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA で1時的に右クリックを使いたい)

Excel VBAで1時的に右クリックを使いたい

このQ&Aのポイント
  • Excel VBAを使用して、30枚のシートの表を一括で変更したいです。しかし、各シートには特定のコードが入っているため、通常の右クリック機能が使用できません。シートの変更を行うために一時的に右クリックを使用する方法があるでしょうか?
  • Excel VBAを使用して、30枚のシートの表を一括で変更したいです。ただし、各シートには特定のコードが含まれているため、通常の右クリック機能は使用できません。シートの変更が完了するまで一時的に右クリックを使用する方法を教えてください。
  • Excel VBAを使用して、30枚のシートの表を一括で変更したいです。ただし、各シートには特定のコードがあるため、通常の右クリック機能が使用できません。シートの変更が完了するまで一時的に右クリックを使用する方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • m3_maki
  • ベストアンサー率64% (296/460)
回答No.5

イミディエイト ウィンドウで Application.EnableEvents=False を実行してから編集作業をしてください。 編集終了後 Application.EnableEvents=True を実行。

aitaine
質問者

お礼

いま、あなた様のコード入力で、完璧にしかも早く各シートの表を変更することができました。心からお礼を申し上げます。本当にありがとうございました。

その他の回答 (4)

  • unokwave
  • ベストアンサー率58% (966/1654)
回答No.4

モジュールの関数宣言より前に Public Const SHIFT_KEY = &H10 'Shift key code Declare Function GetKeyState Lib "USER32" (ByVal vKey As Long) As Integer と宣言しておいて、関数の先頭で If GetKeyState(SHIFT_KEY) = 0 Then Exit Sub を入れておくと、Shiftキーを押して右クリックした場合のみそのマクロを機能させられます。

  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.3

No2の追加です。 イベントをオンオフする以外にコードそのものをオフにしてしまう手もあります。 添付画像のようにツールバーの上で右クリックし編集にチェックを入れます。 画像のツールバーが出てきますので 該当のコードをすべて選択状態にして 指の絵でさしているアイコン「コメントブロック」をクリックすると、選択した行の行頭に「'」が追加されてコード全体が緑色になりそのコードが実行されなくなります。 操作が終わったら 該当のコードをすべて選択状態にして 「コメントブロック」の右の「非コメントブロック」をクリックすると元に戻ります。

  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.2

以下二つのコードを追加してそれぞれ イベントを停止したいときに実行 Sub EventsOff() Application.EnableEvents = False End Sub 停止を再開したいときに実行 Sub EventsOn() Application.EnableEvents = True End Sub

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

>1時的に右クリックを使いたい Z1セルに1が入力されている時のみ右クリックが使えます。 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)   If Range("Z1").Value = 1 Then     Exit Sub   Else     Cancel = True   End If   If Target.Row > 14 And Target.Row < 45 And Target.Column > 13 And Target.Column < 15 Then     明細入力フォーム.Show   End If   If Target.Row > 36 And Target.Row < 45 And Target.Column > 1 And Target.Column < 3 Then     Call ShowCalendarFromRange2(Target)   End If '・・・・・・ '・・・・・・ '・・・・・・

関連するQ&A