• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルで指定した項目の列だけ残し、残りは削除したい)

エクセルで指定した項目の列だけ残し、残りは削除する方法

このQ&Aのポイント
  • エクセルで特定の項目の列だけを残し、他の列を削除する方法を教えてください。
  • 項目位置が変わることがあるため、品目コードや個数などの指定した項目だけを残して列を削除したいです。
  • エクセル2003を使っており、1行目に表の「項目」があります。指定した項目の行だけを残し、それ以外の行は全て削除するコードを教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.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)
回答No.3

2番に回答した者です。 補足説明です。 1列目を残して2列目以降にこの処理をしたければ、 For i = 2 To としてくださいね。 いきなり試さず、データをバックアップした上で 自己責任でお願いします。

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.2

こんなんでどうでしょう? 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

mipomipo
質問者

お礼

お礼が遅くなり大変申し訳ありません。 いろいろなやり方、大変参考になりました。 ありがとうございました!!

noname#153377
noname#153377
回答No.1

アルファベット部分(一番上のバー)を横へドラッグして右クリック→削除では当たり前すぎですか?

mipomipo
質問者

補足

回答ありがとうございました。 はぃ、やはりマクロがいいです。 いちいち項目を見ながら、これは残して、消して、という作業をするのは面倒だと思います。 なので、コードを教えて頂けたらと思った次第です。

関連するQ&A

専門家に質問してみよう