Solved

MS Word Macro Picture Help

Posted on 2009-05-19
1
195 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

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

Question has a verified solution.

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

Suggested Solutions

Introduction This tutorial provides instructions on how to properly format your Word document using the inbuilt tools provided. The benefits of using these tools means your documents are more accessible and easily portable to other applications an…
Shortcuts in Word Just the other day I had a training for Microsoft and they wanted me to show how well the new Windows and Office behaved on a touch device, which by the way is great, but it was only then that I realized that using keyboard shortc…
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…
Office 365 is currently available in five editions. Three of them are for business use: Office 365 Business Essentials, Office 365 Business, and Office 365 Business Premium. Two of them are for home/personal use: Office 365 Home and Office 365 Perso…

832 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