質問: エクセルのマクロについて困っています。2 エクセルのマクロについて困っています。2 見てくださり有難うございます。 前回と似た内容の質問ですが、すみません。 前回の内容です。→ http://okwave.jp/qa/q5906335.html 私がマクロで行いたい作業が「場所と日付を検索、さらに要らない列を消し、別シートに表示したい」というものです。 以下の表を作ってみました。 検索したい→a列・b列 削除したい→c列・f列 a b c d e f 1 場 所 日 付 使用機械 作業内容 工数(h) 備 考 2 東京 2010/05/19 r形 掃除 1.00 なし 3 新潟 2010/05/17 l形 塗布 6.00 なし 4 東京 2010/06/01 l 掃除 2.50 なし 5 東京 2010/06/01 l形 掃除 1.00 なし 6 神戸 2010/05/18 r形 塗布 7.00 なし 7 新潟 2010/06/01 l形 塗布 7.50 なし 8 東京 2010/05/11 f形 掃除 2.00 なし 9 神戸 2010/06/01 l形 掃除 1.00 なし 10 神戸 2010/05/15 l形 塗布 5.00 なし ↓ (例)東京の5月分の検索をした場合の結果 a b c d 1 場 所 日付 作業内容 工数(h) 2 東京 2010/05/11 掃除 2.00 3 東京 2010/05/19 掃除 1.00 こうなるようにプログラムをくみたいです。前回の応用も含め、自分なりに組んでみましたがうまくいきません。どこがだめでしょうか?(回答欄にコードを入れますので見てもらえるとうれしいです。 また、こっちのやり方の方がいいんじゃない?というのがありましたら教えていただけますよう宜しくお願い致します。
回答: シンプルに作成してみました。 sub 新シート作成() sheets("sheet1").copy after:=sheets(sheets.count) for 行 = cells.specialcells(xlcelltypelastcell).row to 2 step -1 if cells(行, "a") <> "東京" or format(cells(行, "b"), "yyyymm") <> "201005" then cells(行, "a").entirerow.delete end if next 行 range("c:c,f:f").delete end sub 【説明】 ・元のシート(sheet1)をブックの最後に複写します。 ・全行をチェックし、東京、2001年05月 以外を削除します。 ・c列、f列を削除します。 注)結果のシート名変更はしていませんので、変更するように修正して下さい。