2011-11-15 14 views
7

私は基本的なVBAの経験があり、以前のマクロのエクスプレッションは主にWORD 2003でした。 WORD 2010では、この(および他の多くの)コマンドはマクロに「記録」しません(レコードモードでは、フッタの編集機能に入ります)。WORD 2010ヘッダーとフッターを編集するためのマクロ

さまざまなVBSオプションの調査では、フッターを作成してマクロ内でグローバルフッター設定を変更するいくつかの方法を示しています。しかし、単純にフッター内の会社名を変更したい場合(たとえば)、マクロサブルーチン内でこれを行う方法はありません。

このサブルーチンは、メインマクロから呼び出され、フォルダ内の各ファイルをステップ実行しています(&サブフォルダ)。私はメインのマクロが機能しています。

WORD 2010 Macro-VBAは簡単な編集 - フッター機能を排除しますか?事前

おかげので、Issunのおかげで、ここに私の解決策は次のとおりです。ここで

` 
Sub Sub_FTR_0() 
' 
ActiveDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter 

For i = 1 To ActiveDocument.Sections.Count 
'REM: INSERT Code from RECORD MACRO recorded when editing one Footer correctly 
    Selection. [[xxx]], etc. 

If i = ActiveDocument.Sections.Count Then GoTo Line1 

    ActiveDocument.ActiveWindow.ActivePane.View.NextHeaderFooter 

Line1: 
Next 

    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument 

End Sub 
` 

答えて

9

あなたがVBA経由で、ヘッダー/フッターにアクセスすることができる方法です。ここではそこのp

Sub EditHeadersAndFooters() 

Dim i As Long 

For i = 1 To ActiveDocument.Sections.Count 
    With ActiveDocument.Sections(i) 
     .Headers(wdHeaderFooterPrimary).Range.Text = "Foo" 
     .Footers(wdHeaderFooterPrimary).Range.Text = "Bar" 
    End With 
Next 

End Sub 

をフォルダ内のすべてのファイルのヘッダーを変更する方法の例のコードへのリンクです:あなたが見ることができるように、それはとても単純なものに取得するにはかなり複雑な構文は次のとおりです。それは別のアプローチを取ると私はそれを試したことはありませんが、あなたの参照のために:http://www.vbaexpress.com/kb/getarticle.php?kb_id=45

+0

おかげ! 私はこの構文を見て、ヘッダーやフッターを "FUBAR"マテリアルで完全に置き換えていると推測しています。[:)] ...私の編集内容を選択してフッターを選択することはまだできません(最初の3単語または最後の単語など)。 各ファイルには一意のページ番号体系(フィールドコード化されていない)がありますので、完全な置き換えはオプションではありません。 – Dan

+0

感謝します(もう一度)。あなたの提案と提供されたリンクの組み合わせは私を私に導きます。ここでは、私がフッターに入り、部分を編集するための「シンプルな」ルーチンがあります。 ActiveDocument.Sections.Count へのI = 1の場合 サブSub_FTR_0() ' ' Sub_FTR_0マクロ ActiveDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter 「(REM)を追加します。フッタEDIT選択を[CMDS] 場合、私= ActiveDocument.Sections.Countそして後藤ライン1 ActiveDocument.ActiveWindow.ActivePane.View.NextHeaderFooter行1: 次にActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument End Subの – Dan

+0

'code'サブSub_FTR_0() ' アクティブDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter ActiveDocument.Sections.Count へのI = 1の場合 「(REM)が追加:フッターEDITの選択を[CMDS] I = ActiveDocument.Sections場合。カウント次に後藤ライン1 ActiveDocument.ActiveWindow.ActivePane.View.NextHeaderFooter ライン1: 次 ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument End Subの 'code'それが助けた – Dan

0

これは私のドキュメントのすべてのページの私のために働いた。

word.ActiveDocument.Sections(1).Headers(1).Range.Text = "ここでヘッダを入れ"

関連する問題