1

対応するMSDN 記事のサンプル コードをテストしました。

Sub WorkWithPages() 
    ' Fill random data: 
    Range("A1", "R100").Formula = "=RANDBETWEEN(1, 100)" 

    Dim pgs As Pages 
    Set pgs = PageSetup.Pages 

    PageSetup.DifferentFirstPageHeaderFooter = True 

    ' Look in the Immediate window for this output: 
    Debug.Print "The current sheet can be printed on " & _ 
     pgs.Count & " page(s)." 

    Dim pg As Page 
    Set pg = pgs(1) 
    pg.CenterHeader.Text = "This is the first page's header" 

    Set pg = pgs(2) 
    pg.CenterFooter.Text = "This is the second page's footer" 

    Set pg = pgs(pgs.Count) 
    pg.CenterFooter.Text = "This is the last page's center footer." 
    pg.LeftHeader.Text = "This is the last page's header" 

    ' Note that Excel supports only distinct headers/footers 
    ' for the first page, so headers and footers on the second 
    ' and other pages are combined--the last value set overwrites 
    ' the header/footer. 

    ' See the values in the Immediate window. 
    ' Note that the code disregards errors that occur--attempting 
    ' to retrieve a header/footer setting that doesn't exist raises an error: 
    On Error Resume Next 
    Debug.Print "First page (CenterHeader) : " & pgs(1).CenterHeader.Text 
    Debug.Print "Second page (CenterHeader): " & pgs(2).CenterHeader.Text 
    Debug.Print "Second page (CenterFooter): " & pgs(2).CenterFooter.Text 
    Debug.Print "Third page (CenterFooter) : " & pgs(3).CenterFooter.Text 
    Debug.Print "Last page (LeftHeader)    : " & pgs(pgs.Count).LeftHeader.Text 
    Debug.Print "Last page (CenterFooter)  : " & pgs(pgs.Count).CenterFooter.Text 

    ' In conclusion, use the Page class to retrieve information about headers 
    ' and footers for specific pages. Use the PageSetup object to set the headers 
    ' and footers, as it's clearer to set them there. 
End Sub

ただし、Debug.Print "Second page (CenterFooter): " & pgs(2).CenterFooter.Text行によって出力される値は、期待されるものとは異なります。

Second page (CenterFooter): This is the last page's center footer

右の代わりに: Second page (CenterFooter): This is the second page's footer.

私はさまざまなことを試しましたが、CenterFooter常に最後の入力値を保持しています。各ページが必要な正確なフッターを取得するように、この動作を変更するにはどうすればよいですか?

4

2 に答える 2

1

さまざまなフッター/ヘッダー構成がありますが、ページごとに異なる値を書き込むことはできません。最初のページと偶数ページと偶数ページに別のテキストを書くことができます。また、ページごとに特定のバリエーション(ページ番号など)を使用してフォーマットを追加することもできますが、これで終わりです。Word では、ルールは同等です。

あなたが提供したMSDNコードに関して、そのコメントの1つは次のように述べています:

Excel は最初のページの個別のヘッダー/フッターのみをサポートするため、2 ページ目と他のページのヘッダーとフッターは結合され、最後の値セットがヘッダー/フッターを上書きすることに注意してください。

したがって、このコードは実際には期待どおりに機能しています。一見するとあまり明確ではありませんが。

于 2013-11-03T10:07:55.793 に答える