電子書籍の厳選無料作品が豊富!

現在、エクセルのマクロにて以下のマクロを組もうとしています。
「特定フォルダに入っているファイルの特定のセルが空白の場合
 Xを入力し保存して終了、空白でない場合、なにもせずに終了」
「特定フォルダの指定はブックのシート1のA1セルのパスを参照」

まだほとんど知識がない状態なのでネットで調べた情報を使って
なんとか以下のコードを組んでみました。


Sub 空白修正マクロ()
Dim buf As String, i As Long
Dim j
buf = Dir(Sheets("Sheet1").Range("A1").Value & "\*.xlsm")
Do While buf <> ""
Workbooks.Open Worksheets("Sheet1").Range("A1").Value & "\" & buf
If Worksheets(2).Range("F2").Value = "" Then
Worksheets(2).Range("F2").Value = "X"
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.DisplayAlerts = True
Else
Application.DisplayAlerts = Fales
ActiveWorkbook.Close
Application.DisplayAlerts = True
End If
Loop
End Sub


こちらのマクロを実行すると、特定フォルダ内の特定ファイル1種類のみが
開いては閉じを無限に繰り返すといった状況に陥ります。
例えば『特定ファイル(1)~特定ファイル(10)』があったとして
『特定ファイル(2)』にのみ処理がなされ、それが延々と続くような状態です。
根本的に間違いがあるかもしれませんが、ご教授頂ければ幸いです。
よろしくお願い致します。

A 回答 (1件)

こんにちは!



一旦Dir関数の中身をクリアする必要があると思うのですが・・・
>Loop
の前に
>buf = Dir()
を追加したらどうなりますか?

※ 細かい検証はしていませんので
お望み通りにならなかったらごめんなさい。m(_ _)m
    • good
    • 1
この回答へのお礼

返事が遅くなり申し訳ありません。
早速試したところ思ったとおりの動作ができました!
本当にありがとうございます!

お礼日時:2016/05/19 09:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!