Utilisez le code ci-dessous C# pour mettre en évidence toutes les équations MathType en couleur jaune. Avant d'utiliser ce code, ajoutez using Word = Microsoft.Office.Interop.Word;
dans la déclaration de l'espace de noms dans votre fichier de classe.
public bool FindAndHighlightMathtypeEquation(ref Word.Range myRange)
{
try
{
int inlineShapesCount = myRange.InlineShapes.Count;
if (inlineShapesCount > 0)
{
for (int i = 1; i <= inlineShapesCount; i++)
{
Word.InlineShape currentShape = myRange.InlineShapes[i];
Word.Range currentShapeRange = currentShape.Range;
Word.WdInlineShapeType typeOfCurrentShape = currentShape.Type;
if (typeOfCurrentShape != Word.WdInlineShapeType.wdInlineShapeEmbeddedOLEObject)
{
continue;
}
if (!currentShape.Field.Code.Text.Trim().ToLower().Contains("equation"))
{
continue;
}
currentShapeRange.Select();
currentShapeRange.Application.Selection.Range.HighlightColorIndex = Word.WdColorIndex.wdYellow;
}
}
MessageBox.Show("Process Completed");
}
catch (Exception)
{
throw;
}
return true;
}
Quelle version de Word? Comment l'équation mathématique a-t-elle été créée? Avez-vous besoin de trouver une équation spécifique ou une ou toutes les équations dans un document? –
@Cindy, Ici utilisez Office 2010 et installez "MathType" alors vous obtiendrez l'équation –
"MathType" est un produit tiers, que je n'ai pas. Donc je ne sais pas quel genre d'objet il met sur la surface de document de Word. Peut-être, c'est un membre de la collection InlineShapes et, s'il y a un OLEServer en arrière-plan, vous pouvez obtenir plus d'informations à ce sujet via la propriété InlineShape.Object.OleFormat. Mais c'est juste une supposition de ma part .. Vous pouvez probablement obtenir de meilleures informations du fabricant MathType http://www.dessci.com/en/support/mathtype/default.asp. En regardant le site Web, je vois également un SDK est fourni pour le produit, ce qui pourrait également aider. –