2

フォントを太字にすることを除いて、セルのフォーマットの変更を無効にしたいと思います。それを達成する方法はありますか?

明らかに、 .Protect AllowFormattingCells:=True可能なすべてのフォーマット変更を有効にします。

リボンにカスタム ボタンを作成すること (つまり、シートの保護を解除し、コンテンツを太字にし、再び保護すること) が役立つのではないかと考えましたが、この問題に対するより便利なアプローチがあるかどうか疑問に思います。

http://www.excelforum.com/excel-programming-vba-macros/676299-use-vba-to-lock-all-cell-formatting-except-background-color.htmlで同様の問題に遭遇しました-しかし、それも未解決のままです。

4

1 に答える 1

0

完全な解決策ではありませんが、可能な回避策です。ThisWorkbook モジュールで、次のイベントを貼り付けます。

Private Sub Workbook_Activate()
Application.OnKey "^b", "MakeBold"
End Sub

Private Sub Workbook_Deactivate()
Application.OnKey "^b"
End Sub

次に、通常のモジュールで:

Sub MakeBold()
ActiveSheet.Unprotect
On Error Resume Next
Selection.Font.Bold = Not (Selection.Font.Bold)
On Error GoTo 0
ActiveSheet.Protect
End Sub

制限は、リボン ボタンではなく、キーボード ショートカットに対してのみ機能することです。カスタム ボタンを作成して、それを Bold ボタンに「偽装」することもできると思いますが、それでも回避策としては不完全です。

于 2013-02-12T15:19:16.073 に答える