2017-12-27 61 views
1

Word 2010でマクロを作成する必要があります。この場合、拡張子なしでファイル名のフッターが追加されます。印刷する前に既存のフッターを削除せずにファイル名を指定したフッタを追加する

私はあなたがDOCVARIABLEフィールドを使用するときに拡張子のないファイル名を表示するコードが見つかりました:

  1. フーツ:

    Sub autofilenamefooter() 
    
    Dim fname As String 
    fname = ActiveDocument.Name 
    fname = Left(fname, InStr(fname, ".") - 1) 
    
    With ActiveDocument 
    
        .Variables("fname").Value = fname 
    
        .PrintPreview 
        .ClosePrintPreview 
    
    End With 
    
    End Sub 
    

    どのようにマクロを作成するためにこれを使用することができますしていることドキュメントを印刷前にファイル名に置き換えます(ドキュメントを印刷するたびにフィールドが更新されるようにします)。

  2. さらに、新しいフッター(ファイル名付き)は、既存のフッターがあれば削除しません。この要件は、マクロを文書管理システムのすべての文書に適用する必要があり、一部の文書には既にフッター(ロゴ付きの会社紙など)が保存されているためです。事前に

ありがとう!

答えて

0

コードには実装のためのコードは必要ありません。ファイル名を表示する場所のフッタに参照フィールドを配置するだけです。 [挿入]タブから[クイック部品]> [フィールド]を選択し、DocVariableフィールドを挿入します。フィールドに "Fname"(またはコード内の名前と一致する他の名前)と名前を付けます。次に、ファイル名を有効にするドキュメントを開きながら、以下のコードを実行します。

Sub SetDocVariable() 
    ' 28 Dec 2017 

    Dim Sp() As String 
    Dim Test As String 
    Dim VarName As String 
    Dim VarValue As String 

    VarName = "Fname" 
    With ActiveDocument 
     Sp = Split(.Name, ".") 
     ReDim Preserve Sp(UBound(Sp) - 1) 
     VarValue = Join(Sp, ".") 
'  VarValue = ""     ' Use this line to show nothing 
     On Error Resume Next 
     Test = .Variables(VarName).Value 
     If Err Then 
      .Variables.Add VarName 
      Err.Clear 
     End If 
     If .Variables(VarName).Value <> VarValue Then .Variables(VarName).Value = VarValue 
    End With 
End Sub 

このコードは、ドキュメント変数にファイル名を書き込み、存在しない場合はドキュメントに変数を追加します。変数が空白の間は、挿入したフィールドには何も表示されません。変数が存在しない場合、エラーを表示します。ドキュメント変数を ""に設定すると、エラーもファイル名もなくなります。

ドキュメント変数の代わりに、組み込みのドキュメントプロパティ(または組み込みドキュメントプロパティのいずれもその目的のために流用できない場合はカスタムドキュメントプロパティ)を使用することが、おそらくもっと良い方法です適切な参照フィールド([クイック部品]> [ドキュメントのプロパティ])を使用します。プロパティダイアログにファイル名を入力する必要がありますが、コードはまったく必要ありません。

ところで、 'FileName'参照フィールド(Quick Parts> Fields> FileName)はファイル名を表示しますが、空白にすることはできません。

関連する問題