La tâche consiste à appliquer christout em> à la police actuelle dans la zone de texte sélectionnée.
La difficulté est que Outlook ne supporte pas l'enregistrement des macros à la volée - il veut que le code soit écrit à la main. Par exemple, le code simple suivant: P> Run-time error '424':
Object required
4 Réponses :
Voici quelques notes sur la messagerie avec le message ouvert, il n'y a pas de chèques, cela suppose simplement que vous avez un article de courrier ouvert. Si vous souhaitez dire un peu plus sur ce que vous voulez faire, et dans quelle version, je pourrais peut-être vous aider un peu plus.
Dim ActiveMessage As MailItem
Dim strHTML As String
Set ActiveMessage = ActiveInspector.CurrentItem
Debug.Print ActiveMessage.Body
Debug.Print ActiveMessage.HTMLBody
strHTML = Replace(ActiveMessage.Body, "This sentence is bold", _
"<STRONG>This sentence is bold</STRONG>")
ActiveMessage.HTMLBody = strHTML
Debug.Print ActiveMessage.HTMLBody
L'idée est d'appliquer une police pour sélectionner manuellement (E.G, avec la souris); et le corps du message n'a aucune information sur la sélection.
Ceci suppose que vous avez également un mot installé sur votre boîte. Si tel est le cas, vous pouvez accéder à la plupart du mot OM à partir de l'Outlook VBE sans référencer le mot à l'aide de l'objet
+1, et si vous n'avez pas de mot, ou si Outlook est configuré pour utiliser HTML à la place, vous pouvez y arriver via activeInspector.htmleditor code>.
Vous devez accéder à HTMEDITOR ou à WordAditor de l'inspecteur. Vérifiez le fichier d'aide pour un exemple de code. Si vous utilisez WordEditor, vous pouvez enregistrer une macro dans Word et incorporer le code résultant dans la macro Outlook à l'aide du WordEditor.
Public Sub DoIt()
'must set word as mail editor
'must set reference to word object library
Dim oInspector As Outlook.Inspector
Dim oDoc As Word.Document
Dim oItem As Outlook.MailItem
Set oItem = Outlook.Application.CreateItem(olMailItem)
oItem.BodyFormat = olFormatRichText 'must set, unless default is rich text
Set oInspector = oItem.GetInspector
oInspector.Display 'must display in order for selection to work
Set oDoc = oInspector.WordEditor
'better to use word document instead of selection
'this sample uses selection because word's macro recording using the selection object
Dim oSelection As Word.Selection
Set oSelection = oDoc.Application.Selection
oSelection.TypeText Text:="The task is to apply strikethroughout."
oSelection.MoveLeft Unit:=wdCharacter, Count:=4
oSelection.MoveLeft Unit:=wdCharacter, Count:=7, Extend:=wdExtend
oSelection.Font.Strikethrough = True
End Sub
Sauter de Todd Main Extect Exemple ci-dessus.
J'ai légèrement modifié le code pour travailler dans le volet de réponse inline, car nous n'avons pas trouvé de moyen simple d'ajouter à Strikethrough au qat ou au ruban.
J'ai également ajouté un bloc IF pour basculer le striéthrough s'il était déjà défini.
Sub StrikeThroughinInlineReply()
Dim objOL As Application
Dim objDoc As Object
Dim objSel As Object
Set objOL = Application
Set objDoc = objOL.ActiveExplorer.ActiveInlineResponseWordEditor
Set objSel = objDoc.Windows(1).Selection
If objSel.Font.Strikethrough = False Then
objSel.Font.Strikethrough = True
Else
objSel.Font.Strikethrough = False
End If
End Sub
J'utilise MS Outlook 2003. L'idée est d'appliquer une police non sur un bloc de texte prédéfini (par exemple "La phrase est en gras" ou correspondant à un modèle dans le corps de message), mais au texte sélectionné manuellement (je veux dire, avec la souris).
Je voulais juste suivre si le ci-dessous répond à votre question.