Excel(VBA):禁用除粗体字体之外的单元格格式

我想禁用更改单元格的格式,除了使字体粗体。 有什么办法可以实现吗?

显然, .Protect AllowFormattingCells:=True启用所有可能的格式更改。

我以为可能在Ribbon上制作自定义button可以为此服务(即不加​​保护的工作表,使内容变大并保护),但是我想知道是否有更方便的方法解决这个问题。

我遇到类似的问题在http://www.excelforum.com/excel-programming-vba-macros/676299-use-vba-to-lock-all-cell-formatting-except-background-color.html -但也没有解决。

不是一个完美的解决scheme,但可能的解决方法。 在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 

限制是它只适用于键盘快捷方式,而不是function区button。 我想你可以创build一个自定义button,并将其“伪装”为粗体button,但这仍然是一个不完善的解决方法。