2017-11-14 37 views
0

MS Access VBAを使用して単語ファイルのヘッダーに画像を挿入しようとしています。コードが正常に動作しないようです:vba経由でWordのヘッダーに画像を追加

Sub Insertpictoheader() 
    Dim oHeader As Word.HeaderFooter 
    Dim sh As Word.Shape, ils As Word.InlineShape 

    Set oSec = ActiveDocument.Sections(1) 
    Set oHeader = oSec.Headers(wdHeaderFooterFirstPage) 
    oHeader.Range.InlineShapes.AddPicture "C:\Desktop\Logo.png" 
End Sub 

何も表示されませんが、ファイルにはイメージが表示されますが、ヘッダーは表示されません。

答えて

2

以下のメソッドは、ヘッダーにテーブルを作成し、イメージを追加します。画像のパスを入力するだけです。

必要に応じて変更してください。

Public Sub UpdateHeader(oDoc As Word.Document) 
    Dim oSec As Word.Section, rng As Range 

    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:=-37, RulerStyle:=wdAdjustNone 
        .Cell(1, 1).Range.InlineShapes.AddPicture filename:="Your file path", LinkToFile:=False, SaveWithDocument:=True 
       End With 
      End With 
    Next oSec 
End Sub 
+0

コンパイラーがoDocとoSecのコード "メソッドまたはデータメンバーが見つかりません"を実行すると問題が発生します。ここでは、oDoc.SectionsのoDocの場合、oSec Set rng = oSec.Headers(Word.WdHeaderFooterIndex.wdHeaderFooterPrimary).Rangeの場合は – Lowpar

+0

です。更新された回答を参照してください( 'Section'を' Word.Section'に変更しました)。メソッドにパラメータとして 'Word.Document'オブジェクトを渡す必要があります。 –

+0

男性の中のヒーロー、あなたはコスタです! – Lowpar

関連する問題