- ベストアンサー
エクセルVBAでフォルダ内の重複ファイルを表示
- フォルダ内には集計用マクロファイルと個々人用の複数の回答ファイルがあります。
- 回答ファイルには重複ファイルが含まれる場合があり、処理を中断したいです。
- VBAコードを修正して、重複ファイルの表示を改善したいです。
- みんなの回答 (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
その他の回答 (1)
- ap_2
- ベストアンサー率64% (70/109)
> 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 = "" 試行錯誤の跡?もう一息がんばってほしかった(--;
お礼
ap_2さま 深夜のご回答ありがとうございます。 先のコード作成に3時間、ご察しの通り試行錯誤に2時間弱。。。 何が何だか分からなくなり質問した次第です。 またご回答下さいネ♪
お礼
luka3さま ご回答ありがとうございます。 コードをコピペして、期待通りの結果でした♪ 整理(整然)された読みやすいコードのご回答で助かりました。 コードを見て感動しました! またご回答くださいませ♪<(_ _)>