- ベストアンサー
Excel VBA 空白セル以下のデータを繰り上げるには?
Excel2003で、従業員データを管理する表を作成してます。 B列~AC列まで、1行づつ個人のデータがあります。 例えば、4(任意)行目の人が退社した場合、4(任意)行目のデータのみデータクリア(B4~AC4)するVBAを組みましたが、自動的に5行目~のデータを繰り上げるのは可能でしょうか。 A列やAD列以降に管理番号などが入力されている(そのままにする)のと このシートを他のシートが参照しているので Rows.Delete で行ごと削除して繰り上げるわけにいかず悩んでます。 A B C D・・ AC AD AF・・ 1 業者(1) 氏名 住所 TEL 入社年 部署 担当 2 001 阿部 東京 03- 2000 営業 A社 3 002 和田 千葉 04- 1990 営業 A社 4 003 佐藤 秋田 01- 1995 営業 B社 5 004 前田 富山 07- 1998 営業 B社 6 005 今井 新潟 02- 1985 財務 財務 7 006 青柳 東京 03- 1980 財務 財務 8 007 鈴木 千葉 01- 1990 工事 工事 ・ ・ 20 業者(2) 氏名 住所 TEL 入社年 部署 担当 21 001 内藤 東京 03- 2000 営業 A社 ・ ・ こういった表です。よい案がありましたら、宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
データクリアのVBAがどんなものか分からないので、 参考程度に。 Sub kuriage() Dim RN As Integer Dim i As Integer Dim j As Integer Dim LR As Integer i = InputBox("削除する行番号を入力してください", "行番号指定") Debug.Print i Range(Cells(i, 2), Cells(i, 4)).Clear Application.ScreenUpdating = False '画面を更新しない LR = Range("b65536").End(xlUp).Row 'データ最終行を取得 For j = i To LR '削除した行からデータ最終行まで繰り返す Range(Cells(j, 2), Cells(j, 4)).Value = Range(Cells(j + 1, 2), Cells(j + 1, 4)).Value '1つ上の行にデータを移動 Next Application.ScreenUpdating = True '画面を更新する End Sub 範囲は適宜変更してください。 サンプルはB列からD列までのデータを繰り上げです。
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >A列やAD列以降に管理番号などが入力されている(そのままにする) 管理番号は、下の行の人へ繰り上げになるのですか? EntireRow で削除できないなら、範囲を選択して、削除(.Delete)すればよいと思います。
お礼
早速のご回答有難う御座います。 検討してみます。
お礼
ご回答有難う御座います。 ご回答を参考に組み直しましたら、希望どおりの動作が出来ました。 有難う御座いました。