Questão Existe um código de campo do Word para o caminho da pasta?


No MS Word você pode inserir um código de campo para mostrar o nome do arquivo do documento com a opção de incluir ou não o caminho completo.

O que eu quero é inserir apenas o caminho da pasta, excluindo o nome do arquivo.

Macros não são uma opção.

Isso pode ser feito?

Existe um código de campo alternativo?

Existe algum interruptor mágico não documentado no campo FILENAME? (Microsoft foram conhecidos para fazer isso antes!)


4


origem


Eu editei minha resposta para adicionar uma possível solução ... macros não são uma opção no arquivo de saída ou em tudo? Eu acho que você tem que usar uma macro em algum lugar, mas a minha solução significaria que o arquivo que fica salvou é macro livre enquanto a pessoa que cria o documento tem uma macro, essa é uma solução aceitável? - Mokubai♦
Macros não são permitidas - política corporativa - Shevek
Eu passei um tempo olhando para o que pode ser feito com os códigos de campo no Word e não há nada como versatilidade tanto para pensar em fazê-lo sem usar uma macro ou alguma outra inteligente linguagem de programação. Pelo que pesquisei no Google, não consigo encontrar nenhuma opção ou maneira de fazer isso que não envolva uma macro. Dado algum tempo, eu provavelmente poderia escrever um pouco de código Python que atravessasse um diretório cheio de arquivos e colocasse o caminho correto no rodapé, mas ele nunca seria totalmente automatizado no Word. Se alguém encontrar o jeito que eu ficaria curioso ... - Mokubai♦
Política corporativa? Isso deve realmente atrapalhar a produtividade! - marcusw


Respostas:


Eu ainda estou brincando com isso, já que parece ser uma coisa razoável o suficiente para esperar ser capaz de fazer ... mas até agora a única maneira que eu encontrei é pela trapaça bastante desagradável de inserir um campo de nome de arquivo com caminho e em seguida, aplicar uma cor de fonte branca ao texto (ou seja, o nome do arquivo em si) e assim você acaba com apenas o caminho e um bloco de texto invisível depois dele.

O problema é que isso pode atrapalhar a formatação e é muito ruim.

- = EDIT = -

Solução ligeiramente mais desleixada ...

Se você não se importa em ter uma macro no seu normal.dotm e ter uma variável oculta no seu documento, então você pode usar essa macro e definir um botão no seu acesso rápido para executá-la ... Eu tentei e funciona em um documento livre de macro para que o próprio documento não precise de macros para usar esse método, eu colocaria isso no meu modelo normal.dotm ...

Sub updatePath()
'
' updatePath Macro
'
'
Dim myPath As String
myPath = ActiveDocument.Path
If myPath = "" Then
    'do nothing as the document has no path... needs to be saved first
Else
    If ActiveDocument.Variables.Count = 0 Then
        ActiveDocument.Variables.Add Name:="myPath", Value:=myPath
    Else
        i = 1
        Do While i < (ActiveDocument.Variables.Count + 1)
            If ActiveDocument.Variables.Item(i).Name = "myPath" Then
                ActiveDocument.Variables.Item(i).Value = myPath
            End If
            i = i + 1
        Loop
    End If
End If

End Sub

E então é só adicionar um código de campo

DOCVARIABLE myPath

que, quando atualizado depois de executar a macro acima, faria exatamente o que você queria. Concedido é dois ou três cliques em vez de apenas uma simples atualização, mas significa que o documento exportado recebe o tipo de campo adequado e apenas as pessoas com essa macro podem dizer onde o documento devemos Ser armazenado :)


3



Eu gosto do pensamento, mas concordo que é kludgy! - Shevek


Infelizmente, não há como fazer isso com o campo FILENAME sem uma macro, o campo FILENAME não oferece uma opção para omitir o nome do arquivo.

Enfim, aqui está uma macro para inserir o caminho do arquivo, sem o nome do arquivo, para quem precisar.

Sub InsertPath ()
  Dim passo como String

  sPath = ActiveDocument.Path
  Se sPath = "" Então
    MsgBox "Você precisa salvar o documento antes de executar essa macro.", _
           vbOKOnly, "Documento não salvo"
  Outro
    sPath = sPath e Application.PathSeparator
    Selection.TypeText (sPath)
  Fim se
EndSub

3



Eu realmente não posso acreditar que não há código de campo embutido para isso, FILEPATH por exemplo ou até mesmo uma mudança adicional em FILENAME. Mau no MS - Shevek