View Single Post
 
Old 10-19-2019, 12:02 PM
jpl jpl is offline Windows 7 64bit Office 2010 32bit
Advanced Beginner
 
Join Date: Jan 2016
Location: France
Posts: 33
jpl is on a distinguished road
Default

Dans la macro ExampleWriteExpression, on peut éviter l'utilisation de l'instruction Selection.TypeText en utilisant un objet Range (que l'on modifie après chaque utilisation de la méthode Add) à la place de l'objet Selection.
La macro modifiée insère la chaîne Metric + inverse metric - metric à la position courante du curseur dans l'équation.


Les 4 lignes de codes de la modification peuvent être remplacées par une procédure prenant en paramètre un objet Range, et une chaîne représentant le signe + ou - à insérer.


Je ne sais pas si ceci est transposable à votre code.

Code:
Sub ExampleWriteExpression()
    'insertion point should be in equation. Metric + inverse metric - metric inserted
    Dim Equation As OMath
    Dim MathTerm As OMathFunction
    Dim plage As Range
   
    '    If Selection.OMaths.Count <> 1 Then ExpanderFatalError ("Cursor must be in an equation.")
    Set Equation = Selection.OMaths(1)
    
    'Initialisation de l'objet plage  à la position du curseur dans l'équation
    Set plage = Selection.Range
   
    Set MathTerm = Equation.Functions.Add(plage, wdOMathFunctionScrSub)
    MathTerm.ScrSub.E.Range.Text = "g"
    MathTerm.ScrSub.Sub.Range = ChrW(&H3BC) & ChrW(&H3BD)
   
    'remplace "Selection.TypeText"
    Set plage = MathTerm.Range
    plage.Collapse (wdCollapseEnd)
    plage.Text = "+"
    plage.Collapse (wdCollapseEnd)


    Set MathTerm = Equation.Functions.Add(plage, wdOMathFunctionScrSup)
    MathTerm.ScrSup.E.Range = "g"
    MathTerm.ScrSup.Sup.Range = ChrW(&H3BC) & ChrW(&H3BD)
    
    'remplace "Selection.TypeText"
    Set plage = MathTerm.Range
    plage.Collapse (wdCollapseEnd)
    plage.Text = "-"
    plage.Collapse (wdCollapseEnd)


    Set MathTerm = Equation.Functions.Add(plage, wdOMathFunctionScrSub)
    MathTerm.ScrSub.E.Range.Text = "g"
    MathTerm.ScrSub.Sub.Range = ChrW(&H3BC) & ChrW(&H3BD)
  End Sub
Reply With Quote