- ベストアンサー
エクセルで指定した項目の列だけ残し、残りは削除する方法
- エクセルで特定の項目の列だけを残し、他の列を削除する方法を教えてください。
- 項目位置が変わることがあるため、品目コードや個数などの指定した項目だけを残して列を削除したいです。
- エクセル2003を使っており、1行目に表の「項目」があります。指定した項目の行だけを残し、それ以外の行は全て削除するコードを教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
再度の補足です。 エクセルのマクロにはFor文だけでなく、DOループが用意されている ようです。これを使えばもっと簡潔に記述できます。 Sub Macro2() Dim i i = 2 '探索開始列 Do If Cells(1, i) <> "品目コード" And Cells(1, i) <> "手番" Then Columns(i).Delete Else i = i + 1 End If Loop Until Cells(1, i) = "" End Sub
その他の回答 (3)
- ka_na_de
- ベストアンサー率56% (162/286)
2番に回答した者です。 補足説明です。 1列目を残して2列目以降にこの処理をしたければ、 For i = 2 To としてくださいね。 いきなり試さず、データをバックアップした上で 自己責任でお願いします。
- ka_na_de
- ベストアンサー率56% (162/286)
こんなんでどうでしょう? 1行目のセルの中身を見て空白セルなら終了。 そうでなければ、「品目コード」「手番」かチェックし違うなら列削除 削除した場合は、次の列が左へシフトしてるので、もう一度同じ列を チェックするためにカウンター(i)を戻す(1引く) この例では、抽出する列を10と仮定してループをまわしています。 Sub Macro1() For i = 1 To 10 If Cells(1, i) = "" Then Exit For ElseIf Cells(1, i) <> "品目コード" And Cells(1, i) <> "手番" Then Columns(i).Delete i = i - 1 End If Next i End Sub
アルファベット部分(一番上のバー)を横へドラッグして右クリック→削除では当たり前すぎですか?
補足
回答ありがとうございました。 はぃ、やはりマクロがいいです。 いちいち項目を見ながら、これは残して、消して、という作業をするのは面倒だと思います。 なので、コードを教えて頂けたらと思った次第です。
お礼
お礼が遅くなり大変申し訳ありません。 いろいろなやり方、大変参考になりました。 ありがとうございました!!