2017-12-27 10 views
1

Word 2010에서 매크로를 만들어 파일 이름이있는 바닥 글을 확장자없이 추가해야합니다. 인쇄하기 전에 파일 이름이있는 바닥 글 추가 기존 바닥 글/삭제없이

나는 당신이에서는 DocVariable 필드를 사용할 때 확장자가없는 파일 이름을 표시하는 코드를 발견 : 나는 매크로를 만들려면이 사용 방법

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 

을 그 :

  1. 발자취 문서를 인쇄하기 전에 파일 이름으로 저장하십시오 (문서를 인쇄 할 때마다 필드가 업데이트되도록).

  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'참조 필드 (빠른 부분> 필드> FileName)는 원하는 형식으로 파일 이름을 표시하지만 비워 둘 수 없습니다.