1

ヘッダーとフッターを変更する必要があるドキュメントが約 100 あります。

Wordファイルにvbaコードやマクロを書くだけでできる可能性はありますか?

フッター内のすべてのドキュメントのヘッダーとフッターを追加するマクロで特定のフォルダーを指定することは可能ですか?

以下のコードは私に与えます

エラー-5111

Private Sub Submit_Click()

        Call openAllfilesInALocation

End Sub


Sub openAllfilesInALocation()
Dim i As Integer
With Application.FileSearch
.NewSearch
.LookIn = "C:\MyFolder\MySubFolder"
.SearchSubFolders = False
.FileName = "*.xls"
.Execute
For i = 1 To .FoundFiles.Count
'Open each workbook
Set Doc = Documents.Open(FileName:=.FoundFiles(i))
'Perform the operation on the open workbook
'wb.Worksheets("sheet1").Range("A1") = Date
'Save and close the workbook
With ActiveDocument.Sections(1)
    .Headers(wdHeaderFooterPrimary).Range.Text = "Header goes here"
    .Footers(wdHeaderFooterPrimary).Range.Text = "Footer goes here"
End With

Doc.Save
Doc.Close
'On to the next workbook
Next i
End With
End Sub
4

1 に答える 1

3

あなたが提供したコードでは、古い.FileSearchプロパティを使用しようとしました。MS Office 2003 までは機能していましたが、現在は機能していません。改善されたコードを次に示します。標準のファイル ウィンドウが開き、処理するファイルを 1 つまたはいくつか選択できます。

Sub openAllfilesInALocation()
Dim Doc
Dim i As Integer

Dim docToOpen As FileDialog
Set docToOpen = Application.FileDialog(msoFileDialogFilePicker)
    docToOpen.Show

For i = 1 To docToOpen.SelectedItems.Count
'Open each document
Set Doc = Documents.Open(FileName:=docToOpen.SelectedItems(i))

With ActiveDocument.Sections(1)
    .Headers(wdHeaderFooterPrimary).Range.Text = "Header goes here"
    .Footers(wdHeaderFooterPrimary).Range.Text = "Footer goes here"
End With

Doc.Save
Doc.Close

Next i

End Sub
于 2013-03-20T10:02:22.393 に答える