2017-07-27 5 views
1

フッター、ページ番号、現在のファイル名、フッタブロックのイメージのコードはありますが、フィールドを挿入してファイル名とパスを取得できるようにします。それを更新することができます。問題は、パスファイルが含まれていないことと、自動ではないことです。 What I want to be able to do automaticallyたぶん、あなたはこのような何かしてみてくださいパスとファイル名を取得するには...VBA insertフィールド、ファイル名、パス

'Page Number & Footer Algorithm 
    With wdapp.ActiveDocument.Sections(1).Footers(1).range.Paragraphs(1) 
    .Alignment = wdAlignParagraphLeft 
    '.Insert.quickparts.Field.Filename 
     .range.InsertBefore Text:=Left(ActiveDocument.Name, _ 
    Len(ActiveDocument.name)) 
    .Alignment = wdAlignParagraphRight 

    .range.InsertAfter vbCr & "Page " 
    Set r = .range 
    E = .range.End 
    r.Start = E 
    .range.Fields.Add r, wdFieldPage 
    .range.InsertAfter " of " 
    E = .range.End 
    r.Start = E 
    .range.Fields.Add r, wdFieldNumPages 
    .range.InsertAfter vbCr 
    .Alignment = wdAlignParagraphRight 
    .Alignment = wdAlignParagraphCenter 
    .range.InlineShapes.AddPicture ("X:\EQP\Residential Maintenance Agreement\Footer Template.PNG") 
    End With 

答えて

1

を助けることができる:あなたが

ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Paragraphs(1).Range 

TargetRangeのようなものかもしれないあなたのケースでは

TargetRange.Fields.Add Range:=TargetRange, Type:=wdFieldEmpty, Text:="FILENAME \p ", PreserveFormatting:=True 

TargetRangeで再生する必要があります(最初の出現と2番目の出現を異ならせるなど)。

自動的に更新するために、それはより厄介です。 this answerによれば、ヘッダーまたはフッターに配置されたフィールドは、プレビューまたは印刷プレビュー時に更新されます。そうしないと、手動で更新を強制する必要があります。その答えは、この問題に対するVBAの解決策であると主張する別の答えにリンクしています。

希望に役立ちます。

0

これは、ジョブ

.range.Fields.Add range:=.range, Type:=wdFieldEmpty, Text:="FILENAME \p ", PreserveFormatting:=True 
を行うようだ
関連する問題