- ベストアンサー
Excel VBAで1時的に右クリックを使いたい
- Excel VBAを使用して、30枚のシートの表を一括で変更したいです。しかし、各シートには特定のコードが入っているため、通常の右クリック機能が使用できません。シートの変更を行うために一時的に右クリックを使用する方法があるでしょうか?
- Excel VBAを使用して、30枚のシートの表を一括で変更したいです。ただし、各シートには特定のコードが含まれているため、通常の右クリック機能は使用できません。シートの変更が完了するまで一時的に右クリックを使用する方法を教えてください。
- Excel VBAを使用して、30枚のシートの表を一括で変更したいです。ただし、各シートには特定のコードがあるため、通常の右クリック機能が使用できません。シートの変更が完了するまで一時的に右クリックを使用する方法はありますか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
イミディエイト ウィンドウで Application.EnableEvents=False を実行してから編集作業をしてください。 編集終了後 Application.EnableEvents=True を実行。
その他の回答 (4)
- unokwave
- ベストアンサー率58% (966/1654)
モジュールの関数宣言より前に 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)
- kkkkkm
- ベストアンサー率66% (1725/2595)
以下二つのコードを追加してそれぞれ イベントを停止したいときに実行 Sub EventsOff() Application.EnableEvents = False End Sub 停止を再開したいときに実行 Sub EventsOn() Application.EnableEvents = True End Sub
- watabe007
- ベストアンサー率62% (476/760)
>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 '・・・・・・ '・・・・・・ '・・・・・・
お礼
いま、あなた様のコード入力で、完璧にしかも早く各シートの表を変更することができました。心からお礼を申し上げます。本当にありがとうございました。