Office获取字体的主题颜色 vc++ 或者 vba操作Word
CharactersPtr pChars=pRange->GetCharacters();
int nCount=pChars->GetCount();
for (int i=1;i<nCount;i++)
{
RangePtr pRange=pChars->Item(i);
_FontPtr pFont=pRange->GetFont();
CString cstext=pRange->GetText();
if(cstext!=L"")
{
long crColor=pFont->GetColor();//获取字体颜色,正常是正数,可是当在Word中设置字体为主题颜色的时候,获取值为负值,不是正常的颜色值。
WdColorIndex p=pFont->GetColorIndex();
CWordFontEx wdWordFont(pFont);
if(!wdWordFont.IsCompositeFont())
{
AddNewFontStyle(wdWordFont,pStyleLirary);
}
}
}
经一天多的判定获取的负值一定是有意义的,应该与Word的主题颜色有关,可是如何将这个值转化为RGB(标准颜色)
在线等…………………………
[解决办法]
函数返回的值都是有意义的,你最好看看你的负值是多少。
xlColorIndexAutomatic-4105Automatic color.
xlColorIndexNone-4142No color.
[解决办法]
http://msdn.microsoft.com/en-us/library/bb238769(v=office.12).aspx
把负值放出来看看多少
[解决办法]
录一段宏看看VBA代码
[解决办法]
PowerPoint 2007 开发人员参考 > 2007 Microsoft Office System 对象库参考 > 2007 Microsoft Office system 的对象模型参考 > ThemeColor 对象
ThemeColor 对象成员
代表 Microsoft Office 2007 主题的配色方案中的一种颜色。
属性
名称 说明
Application 获取一个代表 ThemeColor 对象的容器应用程序的 Application 对象。只读。
Creator 获取一个 32 位整数,指示创建 ThemeColor 对象时所使用的应用程序。只读。
Parent 获取 ThemeColor 对象的 Parent 对象。只读。
RGB 获取或设置 Microsoft Office 主题的配色方案中颜色的值。可读/写。
ThemeColorSchemeIndex 获取 Microsoft Office 主题的配色方案的索引值。只读。
? 2006 Microsoft Corporation。保留所有权利。