• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAでフォルダ内の重複ファイルを表示)

エクセルVBAでフォルダ内の重複ファイルを表示

このQ&Aのポイント
  • フォルダ内には集計用マクロファイルと個々人用の複数の回答ファイルがあります。
  • 回答ファイルには重複ファイルが含まれる場合があり、処理を中断したいです。
  • VBAコードを修正して、重複ファイルの表示を改善したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • luka3
  • ベストアンサー率72% (433/596)
回答No.2

自分なりに整理して書き直してみました。 ThisWorkbook.Sheets(strMonth).Activate 'マクロファイルのシート名は4月~3月の12枚です。 MaxRow = Range("B4").End(xlDown).Row 'B4から下方に個々人のIDが記載されています。 msg1 = "" For Y3 = 4 To MaxRow  strID = Cells(Y3, 2)  Cells(1, 6) = "プリチェック中"  Target = Dir(ThisWorkbook.Path & "\" & "*" & strID & "*.xls", vbNormal)  msg2 = ""  i = 0    Do While Target <> ""   i = i + 1   msg2 = msg2 & Target & vbCrLf   Target = Dir()  Loop  If i > 1 Then msg1 = msg1 & msg2 & vbCrLf Next Y3 If msg1 <> "" Then  Cells(1, 6) = ""  MsgBox "下記のファイルが重複しているので処理を中止します。" & vbCrLf & msg1  Exit Sub End If

mayu1992
質問者

お礼

luka3さま ご回答ありがとうございます。 コードをコピペして、期待通りの結果でした♪ 整理(整然)された読みやすいコードのご回答で助かりました。 コードを見て感動しました! またご回答くださいませ♪<(_ _)>

その他の回答 (1)

  • ap_2
  • ベストアンサー率64% (70/109)
回答No.1

> msg2 = msg2 & vbCrLf & vbCrLf & msg1 & vbCrLf & Target ファイル検出する度に、msg1(最初のファイル)と Target(検出したファイル)追加してますよね。2つめの時だけmsg1追加するとか・・・  if i = 2 Then msg2 = msg2 & vbCrLf & vbCrLf & msg1  msg2 = msg2 & vbCrLf & Target > 'msg1 = "" 試行錯誤の跡?もう一息がんばってほしかった(--;

mayu1992
質問者

お礼

ap_2さま 深夜のご回答ありがとうございます。 先のコード作成に3時間、ご察しの通り試行錯誤に2時間弱。。。 何が何だか分からなくなり質問した次第です。 またご回答下さいネ♪

関連するQ&A

専門家に質問してみよう