2017-11-17 35 views
1

私はWord vbaにはかなり新しく、このコードはこの週に役立ちました。コードはヘッダーにイメージを挿入しますが、私の唯一の課題は、最初のページにこのイメージが必要なことです。しかし、これを行う必要があるサブアクティブを実行すると、元のページに何も表示されません。私はアクセスデータベースを介してコードを実行しており、これ以外はすべて正常に動作しています。最初のページのヘッダーにある画像

Public Sub UpdateHeader(oDoc As Word.Document) 
     Dim oSec As Word.Section, rng As Range 
     active oDoc 
     For Each oSec In oDoc.Sections 
      Set rng = oSec.Headers(Word.WdHeaderFooterIndex.wdHeaderFooterPrimary).Range 
       With rng 
        .Tables.Add Range:=rng, NumRows:=1, NumColumns:=1, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitWindow 
        With .Tables(1) 
         .Borders.InsideLineStyle = wdLineStyleNone 
         .Borders.OutsideLineStyle = wdLineStyleNone 
         .Rows.SetLeftIndent LeftIndent:=15, RulerStyle:=wdAdjustNone 
         .Cell(1, 1).Range.InlineShapes.AddPicture FileName:="C:\Images\Logo.jpg", LinkToFile:=False, SaveWithDocument:=True 
        End With 
       End With 
     Next oSec 

    End Sub 

    Sub active(oDoc As Word.Document) 

    oDoc.Sections.PageSetup.DifferentFirstPageHeaderFooter = True 

    End Sub 
+0

wdHeaderFooterFirstPage' ''に変更しwdHeaderFooterPrimary'。 –

+0

ありがとうKostas、それは完全に働いた! – Lowpar

答えて

4

Wordのヘッダーに関する詳細。

最初のページに別のヘッダーを残りたい場合は、このように設定することができます。

With oDoc.PageSetup 
    .DifferentFirstPageHeaderFooter = True 
    .OddAndEvenPagesHeaderFooter = False 
End With 

次に、あなたが他のすべてのページのためにwdHeaderFooterFirstPage範囲、またはwdHeaderFooterPrimaryを取得することにより、最初のページに追加することができます。

最後に、あなたが既存のヘッダをクリアして、新鮮な起動する必要がある場合は、あなたがこれを行うことができます:

Private Sub ClearExistingHeaders(oDoc As Word.Document) 
    Dim oSec As Word.Section, oHeader As HeaderFooter 
    For Each oSec In oDoc.Sections 
     For Each oHeader In oSec.Headers 
      oHeader.Range.Delete 
     Next 
    Next 
End Sub 
+1

この回答が役に立ちましたら、それを受け入れることを検討してください(http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。回答を受け入れることは寄稿者に報酬を与え、他者が実際の解決策を見つけるのを助けます。 –

関連する問題