• 締切済み

エクセルVBAについての質問です。

エクセルVBAについての質問です。 A列のCという商品名が入った列を削除したい場合下記のようにすれば可能かと思いますが、C列のCという商品名が入った列を削除したい場合どのようにすればよいか教えて下さい。 VBAに関してまだ初心者ですがどうぞよろしくお願いします。 行 = 1 Do 行 = 行 + 1 If Cells(行, 1) = "" Then Exit Do End If '行の値がC以外の時は次の行に移る Do If Cells(行, 1) = "C" Then Rows(行 & ":" & 行).Select Selection.Delete Shift:=xlUp Else Exit Do 'ジャンプ先は内側のDo~Loopのすぐ下 End If Loop 'ジャンプ先はここ If Cells(行, 1) = "" Then Exit Do End If Loop End Sub

みんなの回答

回答No.2

まずは駄目出しから。 >A列のCという商品名が入った列を削除したい場合 A列のCという商品名が入った行を削除したい場合 >C列のCという商品名が入った列を削除したい場合 C列のCという商品名が入った行を削除したい場合 Cells(行, 1)を、Cells(行, 3)に全て変更すればいいと思いますが、 (特に9行目) ANo.1 さんの指摘を直すため、Selection.Delete Shift:=xlUp の 前後どちらかに 行 = 行 - 1 を入れたほうがいいと思います。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> Selection.Delete Shift:=xlUp 削除して、下のセルを上に詰めてます? 行の値が、Cが2回続くとどうなる?見逃しが生じませんか? 最下行から上(1行目)に向かって判断したほうが良いような。

関連するQ&A