質問: true wb2.close false end sub しかし、実行すると★マークのついた所でエラーになってしまいます (対応するdoがありません、と出ます) vba初心者なので、どこがどう違うのかいまいちわかりません; アドバイスお願いします。
回答: こういう問題はインデントを見ればわかります with wb2.worksheets(1).range("a1:a100") if not c is nothing then firstaddress = c.address do set c = cell.findnext(c) for k = 0 to 10 .range("c100").end(xlup).offset(1).copy _ wb1.worksheets("sheet1").cells(7 + k, 2) exit for loop while not c is nothing and _ このloopと同じ高さにdoがあるはずですが、実際には1段低いところにあります。 exit forはforを閉じる文ではなく、forから抜け出す文です ※修正案1 do set c = cell.findnext(c) for k = 0 to 10 .range("c100").end(xlup).offset(1).copy _ wb1.worksheets("sheet1").cells(7 + k, 2) exit for next k loop while not c is nothing and _ ただし、これだとforループを回らずに、1回通っただけで抜けてしまいます なので、 ※修正案2 do set c = cell.findnext(c) for k = 0 to 10 .range("c100").end(xlup).offset(1).copy _ wb1.worksheets("sheet1").cells(7 + k, 2) next k loop while not c is nothing and _ とすべきでしょう。 (プログラムの中身(動作)は見ていません)