Макрос Word, который добавляет имя файла к основному тексту серии документов Word в папке - PullRequest
3 голосов
/ 13 февраля 2012

Мне нужен макрос Word, который добавляет имя файла документа в первую строку этого документа Word. Но не один документ за раз. Я хотел бы, чтобы макрос добавил эти имена файлов в серию документов Word в определенной папке (каждый документ получал свое собственное имя).

Макрос, который добавляет имя файла в документ, прост:

Selection.HomeKey Unit:=wdStory
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
    Text:= "FILENAME  "
Selection.TypeParagraph

Но как я могу добавить имена файлов ко всей серии документов в папке? Я полагаю, что папка может быть названа в макросе. Например: C:\Users\username\Desktop\somefolder\. Я также предполагаю, что цикл может использоваться для прохода по папке, пока цикл не достигнет конца документов в папке.

1 Ответ

0 голосов
/ 13 февраля 2012

Это должно, по крайней мере, начать вас.Я не проверял это, но несколько раз писал подобные вещи, поэтому основная идея работает.

Dim filePath As String
Dim thisDoc As Document
Dim wordApp As Word.Application
Set wordApp = New Word.Application

'wordApp.Visible = True ' uncomment if you want to watch things happen

'Get first file that matches
filePath = Dir("C:\Users\username\Desktop\somefolder\*.doc") ' or *.whatever
Do While filePath <> ""
    Set thisDoc = wordApp.Documents.Open(filePath)

    'Add filename at top of document
    Selection.HomeKey Unit:=wdStory
    Selection.InsertAfter filePath
    'Selection.InsertAfter ThisDocument.FullName ' alternative
    'Your way using .Fields.Add is also fine if you want the file name as 
    ' a field instead of 
    ' plain text.

    thisDoc.Close SaveChanges:=True

    'Get next file that matches and start over
    filePath = Dir()
Loop

wordApp.Quit
Set wordApp = Nothing
...