Solved

MS Word Macro Picture Help

Posted on 2009-05-19
1
196 Views
Last Modified: 2012-05-07
Folks:

I need to play two graphic files at the top of my page.  This is to create a letter head using a macro.  The transcription department transcribes medical records, and we want to stop printing on letterhead.  I would like the graphics to be part of the Header, since I cut and past the body frequently for other purposes.

I have a start, but I cannot get the two images to be far left and far right respectively.  I want the LOGO to be far left (Farther than the margin, and the second graphic LH2.bmp to be far right.  This is the address portion saved as a graphic.

The macro then puts some text at the bottom.  

I just need a little help.  High points for speed.

Troyo

Sub LH1()
'
' LH1 Macro
' Macro recorded 5/19/2009 by overhotl
'
    If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
        ActiveWindow.Panes(2).Close
    End If
    If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
        ActivePane.View.Type = wdOutlineView Then
        ActiveWindow.ActivePane.View.Type = wdPrintView
    End If
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    Selection.InlineShapes.AddPicture FileName:= _
        "C:\Documents and Settings\overhotl\My Documents\LH1LOGO.PNG", LinkToFile _
        :=False, SaveWithDocument:=True
        Selection.PageSetup.RightMargin = InchesToPoints(0.25)
    With Selection.ParagraphFormat
        .LeftIndent = InchesToPoints(-1.5)
        .SpaceBeforeAuto = False
        .SpaceAfterAuto = False
    End With
    
    Selection.InlineShapes.AddPicture FileName:= _
        "C:\Documents and Settings\overhotl\My Documents\LH2.BMP", LinkToFile _
        :=False, SaveWithDocument:=True
        Selection.PageSetup.RightMargin = InchesToPoints(0.25)
    With Selection.ParagraphFormat
        .LeftIndent = InchesToPoints(5.5)
        .SpaceBeforeAuto = False
        .SpaceAfterAuto = False
    End With
    'Selection.TypeText Text:="                    "
    If Selection.HeaderFooter.IsHeader = True Then
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
    Else
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    End If
    Selection.TypeText Text:="Work Well Clinic" & vbTab & "Therapy Plus" & _
        vbTab & "Hearing Conservation"
    Selection.TypeParagraph
    Selection.TypeText Text:="(319) 369-8153" & vbTab & "(3190 369-8107" & _
        vbTab & "(319) 369-7569"
    Selection.MoveUp Unit:=wdLine, Count:=2, Extend:=wdExtend
    Selection.Font.Name = "Monotype Corsiva"
    Selection.Font.Size = 14
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub

Open in new window

0
Comment
Question by:toverholt
1 Comment
 
LVL 76

Accepted Solution

by:
GrahamSkan earned 500 total points
ID: 24427194
You need to insert  the pictures as Shapes if you want the flexibility to locate them in any position.
Sub LH2()
    Dim strPicture1 As String
    Dim strPicture2 As String
    Dim Doc As Document
    Dim hdr As HeaderFooter
    Dim ftr As HeaderFooter
    Dim sh1 As Shape
    Dim sh2 As Shape
    Dim hfix As WdHeaderFooterIndex
    
    strPicture1 = "C:\Documents and Settings\overhotl\My Documents\LH1LOGO.PNG"
    strPicture2 = "C:\Documents and Settings\overhotl\My Documents\LH2.BMP"
 
    Set Doc = ActiveDocument
    If Doc.Sections(1).PageSetup.DifferentFirstPageHeaderFooter Then
        hfix = wdHeaderFooterFirstPage
    Else
        hfix = wdHeaderFooterPrimary
    End If
    Set hdr = Doc.Sections(1).Headers(hfix)
    Set sh1 = Doc.Shapes.AddPicture(strPicture1, False, True, , , , , hdr.Range)
    sh1.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
    sh1.Left = 0
    Set sh2 = Doc.Shapes.AddPicture(strPicture1, False, True, , , , , hdr.Range)
    sh2.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
    sh2.Left = Doc.Sections(1).PageSetup.PageWidth - sh2.Width
    
    Set ftr = Doc.Sections(1).Footers(hfix)
    ftr.Range.Text = "Work Well Clinic" & vbTab & "Therapy Plus" & _
        vbTab & "Hearing Conservation" & vbCr & _
                "(319) 369-8153" & vbTab & "(3190 369-8107" & _
                vbTab & "(319) 369-7569"
        
    ftr.Range.Font.Name = "Monotype Corsiva"
    ftr.Range.Font.Size = 14
End Sub

Open in new window

0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

There is a feature provided by MS Word that lets you create an Table of Contents for your Word document automatically. To use this feature for other documents there are two steps involved,   1.  Prepare your document for a table of contents (he…
I would like to show you some basics you can do with Mailings in MS Word. It´s quite handy feature you can use for creating envelopes, labels, personalized letters etc. First question could be what is this feature good for? Mailing can really he…
This video walks the viewer through the process of creating Hyperlinks for the web and other documents. Select the "Insert" tab: Click "Hyperlink":  Type "http://" followed by a web address to reference a website or navigate to a document to ref…
Learn how to make your own table of contents in Microsoft Word using paragraph styles and the automatic table of contents tool. We'll be using the paragraph styles in Word’s Home toolbar to help you create a table of contents. Type out your initial …

830 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