#

Office Addin: Umwandeln einer RGB Systemfarbe in eine Word/Office-Farbe
 
Wie wandelt man eine Systemfarbe (System.Color) um in eine Microsoft Office/Word Farbe ?
 
Man kann eine Systemfarbe nicht direkt per Integer Werte in eine Word-Farbe umwandeln sondern man muss die einzelnen Farben mit einem Hexadezimal-Werte multiplizieren und anschliessend die Hex-Farben summieren
 
Umrechnung RGB Integer-Farben in Word Farbe

(Word.WdColor)(red + (0x100 * green) + (0x10000 * blue));

 
Oder als C# Umrechnungsmethode

private Word.WdColor get_Word_Color_RGB(int red,int green,int blue)
{
Color sysColor = Color.FromArgb(0, red, green, blue);
return (Word.WdColor)(sysColor.R + 0x100 * sysColor.G + 0x10000 * sysColor.B);
}

 
 
Betrifft: Erstellen einer benutzerdefinierten Ribbonbar unter Microsoft Office / Word, Excel, Outlook, Powerpoint
 
 
Beispiel Word Ribbonbar: Farbe einstellen einer Titel-Zeile
Der Button in der Ribbonbar soll mit dem Click Event die Farbe der ersten Zeile ändern.

 
In der c# Codebehind Datei wird dann die Farbe geändert mit dem Code:

range.Font.Color = (Word.WdColor)(0 + 0x100 * 112 + 0x10000 * 192);

 
Zur einfacheren Handhabung wurde die Umrechnung in eine separate Methode ausgelagert.

 
Kompletter Code für die Word-Ribbonbar

private void btnFormat_Title_Click(object sender, RibbonControlEventArgs e)
{
//-----------------< fx_Format_Title_Caption() >-----------------
//*convert first line of a document to the html Title format
//< init >
Word.Document doc = Globals.ThisAddIn.Application.ActiveDocument;
Word.Application app = Globals.ThisAddIn.Application;
//</ init >
 
Word.Range range_Line = doc.Paragraphs[1].Range;
range_Line.Font.Bold = 1;
range_Line.Font.Size = 14;
 
range_Line.Font.Color = get_Word_Color_RGB(0,112,192);
//-----------------</ fx_Format_Title_Caption() >-----------------
}

 
 
 

private Word.WdColor get_Word_Color_RGB(int red,int green,int blue)
{
//-------< get_Word_Color_RGB() >----------
//*convert Red Green Blue to Word/Office Color
//*using Microsoft.Office.Interop.Word.WdColor
 
Color sysColor = Color.FromArgb(0, red, green, blue);
return (Word.WdColor)(sysColor.R + 0x100 * sysColor.G + 0x10000 * sysColor.B);
//-------</ get_Word_Color_RGB() >----------
}

 
 
Die RGB Rot Grün Blau Werte einer Farbe erhält man bei Word, indem man einen Text markiert und anschliessend die benutzerdefiniert Farbe abfrägt.
 
 
 
Subject: Office Ribbonbar, Ribbon, Visual Studio, Word, Excel, Office, PowerPoint, Outlook, Addin
 
 
 
Mobile

.

0123movie.net