Word VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


868 / 886 ←次へ | 前へ→

【19】Re:フォルダの中の複数ワープロファイルを1...
発言  らいでん  - 03/4/22(火) 23:19 -

引用なし
パスワード
   らいでんです。
訂正と追記です。

>    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

1,744 hits

【17】フォルダの中の複数ワープロファイルを1つにしたいのですが ikasumi 03/4/17(木) 17:45 質問
【18】Re:フォルダの中の複数ワープロファイルを1... らいでん 03/4/21(月) 2:15 回答
【19】Re:フォルダの中の複数ワープロファイルを1... らいでん 03/4/22(火) 23:19 発言
【20】ありがとうございます! ikasumi 03/4/24(木) 1:29 お礼

868 / 886 ←次へ | 前へ→
ページ:  ┃  記事番号:
207138
(SS)C-BOARD v3.8 is Free