2012-11-26 17 views
6

Ich möchte die Schaltfläche "Fett" in einer Excel-Tabelle deaktivieren.Schaltfläche "Fett" deaktivieren

Wie kann ich es tun?

Ich habe den folgenden Code, aber es funktioniert nicht:

CommandBarControl test = excel1.Application.CommandBars["Formatting"].FindControl(Id:113,Recursive:true); 
if (test.Enabled) 
{ 
MessageBox.Show(test.Caption + " enabled"); 
test.Visible = false; 
test.Enabled = false; 
} 

Ich denke, es ist nicht, weil arbeitet von Office 2007 sie Ribbon Controls verwenden.

Kann jemand helfen, wie man die Kontrolle über einen bestimmten Knopf bekommt? So dass ich seine Eigenschaften ändern kann, aktivieren/deaktivieren Sie es standardmäßig, etc.

+1

Während ich keine Antwort auf Ihre Frage habe, denke ich, wenn Sie die Schaltfläche deaktivieren, kann ein Benutzer weiterhin STRG + B, um Text fett. Die VBA-Bibliothek hat kein Ereignis, aber die VSTO könnte (ich habe es nie benutzt) Etwas wie formatComplete oder cellFormat, sogar cellLeave, um die Formatierung zu überprüfen und dann von fett zu ändern. Alles, um das Fettdruckereignis zu isolieren. Vielleicht können Sie sogar ein benutzerdefiniertes Ereignis erstellen, indem Sie den Textformat-Accessor der Zellenklasse erweitern, um ein fettes Ereignis zu erstellen, das Sie verwenden können. (wenn das möglich ist) in C# – Bmo

Antwort

0

Nicht die Antwort, die Sie wollen, bin ich sicher, aber ich fürchte, das kann nicht getan werden.

1

Ich fürchte, die Antwort ist in der Tat, dass es nicht möglich ist.

Ich habe die Möglichkeiten mit Klassenmodulen untersucht, weil ich dachte, dass man mit einer Klasse das Ereignis abfangen kann, das den Text fett formatiert, und dann dieses Ereignis abbricht. Alles, was ich finden konnte, hing jedoch mit anderen Ereignissen zusammen (Wertänderungen, Berechnungen, Veränderungen der Arbeitsbuchstruktur usw.).

Auch wenn es funktionieren würde, würde es einige ernsthafte Kodierung beinhalten und fehleranfällig sein.

Vielleicht sind Sie auf dem falschen Weg - warum entfernen Sie diesen Knopf? Wahrscheinlich gibt es eine andere Lösung für Ihr Problem. Und wie bereits erwähnt, blockiert das Entfernen der Taste nicht die Möglichkeit, Strg + B zu verwenden oder Fettdruck einzufügen - das kann man einfach nicht verhindern.