プロが教える店舗&オフィスのセキュリティ対策術

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社
 ・
 ・
 こういった表です。よい案がありましたら、宜しくお願いします。

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列までのデータを繰り上げです。
    • good
    • 0
この回答へのお礼

ご回答有難う御座います。
ご回答を参考に組み直しましたら、希望どおりの動作が出来ました。
有難う御座いました。

お礼日時:2005/10/20 18:43

こんにちは。



>A列やAD列以降に管理番号などが入力されている(そのままにする)

管理番号は、下の行の人へ繰り上げになるのですか?
EntireRow で削除できないなら、範囲を選択して、削除(.Delete)すればよいと思います。
    • good
    • 0
この回答へのお礼

早速のご回答有難う御座います。
検討してみます。

お礼日時:2005/10/20 18:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!