2017-12-18 64 views
1

テンプレートがあり、ヘッダーに画像が含まれているページがあります。これらの画像を私のActiveDocumentにコピーしたいと思います。テンプレートからヘッダーをコピー/ペーストする

Set doc = ActiveDocument 
strTemplate = "C:\Users\rajtilak\Desktop\Report.dotx" 
Set docTemplate = Documents.Open(strTemplate) 
Set hdr1 = docTemplate.Sections(1).headers(wdHeaderFooterPrimary) 
Set hdr2 = doc.Sections(3).headers(wdHeaderFooterPrimary) 

hdr1.Range.Copy 
hdr2.Range.PasteAndFormat wdFormatOriginalFormatting 
docTemplate.Close False 

これは、それはセクション1が、テンプレートのセクション5からヘッダをコピーされていないことを除いて、正常に動作している:私は、次のコードを使用しています。 VBAを使用してWordファイルからヘッダーをコピーする方法はありますか?

+0

[hdr1'を[このリスト(MSDN)]と異なるタイプのヘッダとして設定した場合(https://msdn.microsoft.com/en-us/vba/word-vba/articles/wdheaderfooterindex-enumeration) -ワード)。 –

+0

それは働いた!だから私がやったのは、私がコピーしていたページからヘッダーをコピーしていたテンプレートだったので、コードを次のように変更しました: hdr1 = docTemplate.Sections(1).headers(wdHeaderFooterFirstPage)を設定してください そして残りの部分については、コードを に変更しました。hdr2 = doc.Sections(3).headers(wdHeaderFooterPrimary) これが機能しました。 – rajb

答えて

2

Kazimierz Jaworのおかげで、コードが正常に動作しました。以下のようなオブジェクトで

Dim docTemplate As Document 
Dim strTemplate As String 
Dim hdr1 As headerfooter 
Dim hdr2 As headerfooter 
Dim doc As Document 

Set doc = ActiveDocument 
strTemplate = "C:\Users\rajtilak\Desktop\Report.dotx" 
Set docTemplate = Documents.Open(strTemplate) 
Set hdr1 = docTemplate.Sections(1).headers(wdHeaderFooterFirstPage) 
Set hdr2 = doc.Sections(3).headers(wdHeaderFooterPrimary) 
hdr1.Range.Copy 
hdr2.Range.Paste 
docTemplate.Close False 
2

  • WordのSections(index_number)、または、

  • ExcelのSeries(index_number)

  • ここで更新されたコードです

... index_number(うるさく)常にオブジェクト「位置番号」や場所の代表ではないですが、私たちはどここのようなサブで何を確認することができます

Sub ListHeaders() 

    Dim s As Integer, sec As Section, secs As Sections, outStr As String 
    Dim h As Integer, hdr As HeaderFooter, hdrs As HeadersFooters 

    Set secs = ActiveDocument.Sections 
    For s = 1 To secs.Count 
     outStr = outStr & "-----" & _ 
      "Section #" & s & " of " & secs.Count & _ 
      " : " & Replace(secs(s).Range.Text, vbCr, "") & _ 
      "-----" & vbCrLf 

     Set hdrs = ActiveDocument.Sections(s).Headers 

     outStr = outStr & " Header 1: wdHeaderFooterPrimary : " & Replace(hdrs(wdHeaderFooterPrimary).Range.Text, vbCr, "") & vbCrLf 
     outStr = outStr & " Header 2: wdHeaderFooterFirstPage : " & Replace(hdrs(wdHeaderFooterFirstPage).Range.Text, vbCr, "") & vbCrLf 
     outStr = outStr & " Header 3: wdHeaderFooterEvenPages : " & Replace(hdrs(wdHeaderFooterEvenPages).Range.Text, vbCr, "") & vbCrLf 

     outStr = outStr & vbCrLf 

    Next s 
    MsgBox outStr 

End Sub 

...特定のテキスト(または他の属性)を持つオブジェクトのindex_numberを検索するために、テキスト関数を使用できます。

関連する問題