Solved

issue where when the font is different at the point of insertion, it types out in that font and size

Posted on 2009-05-03
5
282 Views
Last Modified: 2012-05-06
I had previously tested it just in a new task and it worked fine.

However, when I have gone to some existing tasks, where inadvertently ( not deliberately! ) the standard font is different, then when I run the macro, to insert the day and time, it inserts the day and time, but in the font that is at that point in the task and then changes it to Arial, 12 etc . . .

Is it possible to alter the code, to allow for this?
0
Comment
Question by:troy_g
  • 3
  • 2
5 Comments
 
LVL 59

Expert Comment

by:Chris Bottomley
ID: 24293163
The bit below does not change the general body text ... is that what you want?

Chris
Sub InsertAndFormatText()

    Const wdColorBlue = 16711680

    Dim olkTask As Outlook.TaskItem, _

        objDoc As Object, _

        objSel As Object, _

        strTime As String, _

        intStart As Integer, _

        intLen As Integer

    Set olkTask = Outlook.Application.ActiveInspector.CurrentItem

    Set objDoc = olkTask.GetInspector.WordEditor

    strTime = Format(Now, "ddd dd/m/yy h:mm AM/PM - ")

    intLen = Len(strTime)

    Set objSel = objDoc.Windows(1).Selection

    intStart = objSel.Start

    objSel.InsertAfter strTime

    objDoc.Windows(1).Document.Range(intStart, intStart + intLen).Select

    Set objSel = objDoc.Windows(1).Selection

    With objSel

        .Font.Bold = True

        .Font.Color = wdColorBlue

    End With

    objDoc.Windows(1).Document.Range(intStart + intLen - 1, intStart + intLen + 1).Select

'    Set objSel = objDoc.Windows(1).Selection

'    With objSel

'        .Font.Name = "Arial"

'        .Font.Size = 12

'        .Font.Bold = False

'        .Font.Color = wdColorAutomatic

'    End With

    Set olkTask = Nothing

    Set objDoc = Nothing

    Set objSel = Nothing

End Sub 

Open in New Window Select All 

Open in new window

0
 

Author Comment

by:troy_g
ID: 24294442
Hi Chris - thanks so much for your response, this doesn't do exactly as i need.

If you go into an empty task in Outlook and change the font and size for the line you are on as an example and then run this Macro, it will type out the Date & Time in that font and size, whereas i am just needing a standard format like Arial, Point Size 12, Bold  & Blue text.  Then, after the '-' ( ie. at the end of the date / time stamp ) i just need need it to take off the Bold and Blue part and just have typing show up as Arial & Size 12 Font.

Hope this makes sense ? Thanks so much for assisting and please let me know if you need any further info . . .
0
 
LVL 59

Expert Comment

by:Chris Bottomley
ID: 24294580
If I understand correctly then More like this?

Chris
Sub InsertAndFormatText()

    Const wdColorBlue = 16711680

    Dim olkTask As Outlook.TaskItem, _

        objDoc As Object, _

        objSel As Object, _

        strTime As String, _

        intStart As Integer, _

        intLen As Integer

    Set olkTask = Outlook.Application.ActiveInspector.CurrentItem

    Set objDoc = olkTask.GetInspector.WordEditor

    strTime = Format(Now, "ddd dd/m/yy h:mm AM/PM - ")

    intLen = Len(strTime)

    Set objSel = objDoc.Windows(1).Selection

    intStart = objSel.Start

    objSel.InsertAfter strTime

    Set objSel = objDoc.Windows(1).document.range

    With objSel

        .Font.Name = "Arial"

        .Font.Size = 12

        .Font.Bold = False

        .Font.Color = wdColorAutomatic

    End With

    objDoc.Windows(1).Document.Range(intStart, intStart + intLen).Select

    Set objSel = objDoc.Windows(1).Selection

    With objSel

        .Font.Bold = True

        .Font.Color = wdColorBlue

    End With

    objDoc.Windows(1).Document.Range(intStart + intLen - 1, intStart + intLen + 1).Select

    Set olkTask = Nothing

    Set objDoc = Nothing

    Set objSel = Nothing

End Sub 

Open in new window

0
 
LVL 59

Accepted Solution

by:
Chris Bottomley earned 500 total points
ID: 24294765
Looking at the previous one you want a hard return after the time post, so the following makes that correction

Chris
Sub InsertAndFormatText()

    Const wdColorBlue = 16711680

    Dim olkTask As Outlook.TaskItem, _

        objDoc As Object, _

        objSel As Object, _

        strTime As String, _

        intStart As Integer, _

        intLen As Integer

    Set olkTask = Outlook.Application.ActiveInspector.CurrentItem

    Set objDoc = olkTask.GetInspector.WordEditor

    strTime = Format(Now, "ddd dd/m/yy h:mm AM/PM - ")

    intLen = Len(strTime)

    Set objSel = objDoc.Windows(1).Selection

    intStart = objSel.Start

    objSel.InsertAfter strTime & vbCrLf

    Set objSel = objDoc.Windows(1).Document.Range

    With objSel

        .Font.Name = "Arial"

        .Font.Size = 12

        .Font.Bold = False

        .Font.Color = wdColorAutomatic

    End With

    objDoc.Windows(1).Document.Range(intStart, intStart + intLen).Select

    Set objSel = objDoc.Windows(1).Selection

    With objSel

        .Font.Bold = True

        .Font.Color = wdColorBlue

    End With

    objDoc.Windows(1).Document.Range(intStart + intLen - 1, intStart + intLen + 1).Select

    Set olkTask = Nothing

    Set objDoc = Nothing

    Set objSel = Nothing

End Sub

Open in new window

0
 

Author Closing Comment

by:troy_g
ID: 31577456
thanks heaps Chris, that is fantastic, and works, appreciate it !
0

Featured Post

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

Set OWA language and time zone in Exchange for individuals, all users or per database.
Outlook Free & Paid Tools
To add imagery to an HTML email signature, you have two options available to you. You can either add a logo/image by embedding it directly into the signature or hosting it externally and linking to it. The vast majority of email clients display l…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now