vbaについて教えてください。 今年に入って勉強し始めた超素人です。 宜しくお願いします。 下記の作業を行いたいです。 プルダウンでA列の削除を選択。 削除ボタンを押す。
vbaについて教えてください。 今年に入って勉強し始めた超素人です。 宜しくお願いします。 下記の作業を行いたいです。 プルダウンでA列の削除を選択。 削除ボタンを押す。 削除が選択された複数行をカットし、別シートのA列二行目に挿入。 元のシートのカットされた行は上方向にシフトされて空欄の行を詰める。 この作業は何度も繰り返されます。 説明がうまくできているか不安ですがよろしくお願いいたします。
Visual Basic・67閲覧
ベストアンサー
B列にはどの行にも必ずデータが入っているとして、1行目が見出し、2行目以降がデータ行という形でサンプルを作っています。 実際の表に合わせて変更してください。 Dim i As Long, flg As Long Dim sht1 As Worksheet, sht2 As Worksheet Set sht1 = Sheets("案件一覧表") Set sht2 = Sheets("削除済案件") flg = 1 With sht1 For i = .Cells(.Rows.Count, 2).End(xlUp).Row To 2 Step -1 If .Cells(i, 1) = "削除" Then .Rows(i).Cut sht2.Cells(sht2.Rows.Count, 2).End(xlUp).Offset(flg, 0).EntireRow.Insert .Rows(i).Delete flg = flg - 1 End If Next End With flgについては無くても良いのですが、下から消していく都合上順番がひっくりかえりますので、offsetを-1ずつずらすことで、削除対象を上から順番に挿入しています。 2回目ボタンを押したときは、その下に押したときの削除対象を上から順番に挿入といったコードにしてます。
早速のご回答ありがとうございます! きちんと動きました。 私の言葉足らずで本当に申し訳ありません。 毎回挿入されるのは必ず削除済案件シートのA列の2行目にしたいです。 よろしくお願いします。
質問者からのお礼コメント
仕事が進まなくて困っていたので本当に助かりました。 ありがとうございました!
お礼日時:1/18 18:52