|
らいでんです。
訂正と追記です。
> If myFile.Type Like "Microsoft Word 文書" _
> And Not myFile Like "~$*" Then
としている所は
If myFile.Type Like "Microsoft Word 文書" _
And Not myFile.Name Like "~$*" Then
に訂正します。
それから実際にコードを走らせてみると
> Set OldDoc = Documents.Open(myFile.Path)
では、かなりバタバタして忙しい感がありますので
Set OldDoc = Documents.Open( _
FileName:=myFile.Path, Visible:=False)
とした方が良いかもしれません。
最後にこういったフォルダ内のファイルを総当りして1ファイル
に統合する処理では、ファイルを取り出す順番が重要になりますね。
今回はFileSearch オブジェクトを使用する方法を紹介します。
コードを全て提示してしまうと、面白くないと思いますので
ファイルをソートして取り出す部分だけのサンプルです。
後はご自分で頑張って組み立ててみてください。
Sub Test2()
Dim i As Long
Application.ScreenUpdating = False
With Application.FileSearch
.NewSearch
'検索対象フォルダの指定
.LookIn = "C:\My Documents"
'サブフォルダを検索対象外
.SearchSubFolders = False
.MatchAllWordForms = True
.FileType = msoFileTypeWordDocuments
'ファイル名でソートして検索実行
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
For i = 1 To .FoundFiles.Count
Debug.Print .FoundFiles(i)
If InStr(1, .FoundFiles(i), "~$") = 0 Then
Debug.Print FileLen(.FoundFiles(i))
'以下ファイルオープン処理等
'
End If
Next
End If
End With
Application.ScreenUpdating = True
End Sub
|
|