0

コマンド バー オプションの一部をブロックしたいのですが、現在使用している方法では制限が厳しすぎます。私は現在このコードを使用しています:

Sub Auto_Open()
Application.CommandBars.FindControl(ID:=847).Enabled = False
End Sub

Sub Auto_Close()
Application.CommandBars.FindControl(ID:=847).Enabled = True
End Sub

これに関する問題は、このコードを含むワークブックが開いたままになっている限り、他のワークブックが無効化されたコントロールを使用できないことです。解決策は次を使用することだと思います:

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range,  Cancel As Boolean)
Application.CommandBars.FindControl(ID:=847).Enabled = False
End Sub

これにより、ユーザーがシートを削除するために右クリックしたときに、無効になったコントロールを使用できなくなります。

クリックするとすぐにこれらの空白を削除する方法が必要になりました。これにより、開いている可能性のある他のワークブックでコントロールを使用できるようになります。コードを 10 秒ごとに実行するほど一般的ではない、これに使用できるイベントはありますか? また、vba の遅延を使用して、前のコードから 5 秒後にコードを実行できるかどうかも疑問に思いました。

4

1 に答える 1

0

コマンド バー オプションを無効にするワークブック モジュールで、次のように入力します。

Private Sub Workbook_Activate()
    Application.CommandBars.FindControl(ID:=847).Enabled = False
End Sub

Private Sub Workbook_Deactivate()
    Application.CommandBars.FindControl(ID:=847).Enabled = True
End Sub

ワークブックで作業しているときは常に、コマンドを無効にする必要があります。セルの右クリックとタブの右クリックの両方で削除が有効になっているApplication.CommandBars.FindControl(ID:=847).Captionため、Excel 2007で機能するかどうかはわかりません。&Delete

Excel 2007 では、アクティブなブックのリボン コマンドを無効にすることができますが、簡単ではありません。ワークブックの拡張子を変更してから、zip 内のフォルダー内のファイルを.zip編集する必要があります。編集後に拡張子を元に戻すと、対象のコマンドまたはグループが無効になります。リボン コマンドを無効にすると、関連する右クリック コマンドも無効になります。キッカーは、リボンでシートの追加/削除コマンドを使用できないことです。.rels_rels

于 2014-07-04T11:29:50.150 に答える