- ベストアンサー
エクセル データーベース 削除したレコードを自動で別シートにどんどん追加していく方法は?
いつも大変お世話になっております。 エクセルのデータベースで、社員名簿を作りました。 名前、住所、職階級など、様々なデータが横1列に入力してあります。 入力しているシート名は「名簿」です。 H列に、社員、契約社員、派遣、パート、退職 といった情報を入れています。 この中で、 退職 とある人の分の情報を別シート(シート名 退職者 )に移して、削除したいのです。 今までは手作業でしておりましたが、これを自動でする方法はないでしょうか? 「名簿」シートで削除したものが、「退職者」シートの一番上、もしくは一番下にどんどん追加されるようにしたいのです。 どうぞよろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。こんなマクロでどうでしょう。 Sheets("名簿").Select 名簿最大 = Cells(65536, 1).End(xlUp).Row For i = 2 To 名簿最大 If Cells(i, 8) = "退職" Then Range(Cells(i, 1), Cells(i, 8)).Copy Rows(i).Delete Shift:=xlUp Sheets("退職者").Select 退職者最大 = Cells(65536, 1).End(xlUp).Row Cells(退職者最大 + 1, 1).Select ActiveSheet.Paste i = i - 1 End If Sheets("名簿").Select 名簿最大 = Cells(65536, 1).End(xlUp).Row Next
その他の回答 (4)
- ASIMOV
- ベストアンサー率41% (982/2351)
Sub Macro1() ' ' Macro7 Macro ' マクロ記録日 : 2006/5/9 ユーザー名 : @@@@@ ' ' Keyboard Shortcut: Ctrl+q ' ActiveCell.Range("A1:H1").Select Selection.Cut Sheets("Sheet2").Select Range("A1").Select Selection.Insert Shift:=xlDown Sheets("Sheet1").Select ActiveCell.Rows("1:1").EntireRow.Select Selection.Delete Shift:=xlUp End Sub -------------- これは、マクロの自動記録(新しいマクロの記録)で出来た物を一部改造した物です Sheet1 のカーソルの有る行のデータを、Sheet2の一番上の行に挿入し、Sheet1の元のデータを行削除します これでかなり自動化できると思います さらに、#3さんのオートフィルターを併用すればもっと省力化できます (データーはA列~H列と仮定しています)
- aco_michy
- ベストアンサー率25% (70/277)
データ→フィルタ→オートフィルタ として、対象の方を抽出してなにかフラグを立てて 削除すれば、いいと思うのですが
- imogasi
- ベストアンサー率27% (4737/17069)
こういうのは1つ1つ人手でやるのがエクセルの建前です。 >されるようにしたいのです。 VBAを勉強してください。勉強をしないで、「したいのです」といっても、それでは他人に作らせるより他ない。 関数を知っている程度ではできません。 行を削除はできません。行の非表示もできません。 関数は抜き出しは得意ではない。私のOKWAVEの回答の中に「imogasi方式」というのを、沢山載せてます。これは作業列を使いますが、退職サインを立てた人を別シートにもってこれます。しかし全セル式で構成といったものになります。 また削除・別シート追加には、VBAで処理をする必要がありますが、キッカケを指示するコマンドボタンなど使う方法があるでしょう。 また本質問はアクセスなどに適した問題です。
- toshi_2000
- ベストアンサー率30% (306/1002)
マクロを作成すれば、自動でそれらの一連の作業ができます。
お礼
こんばんは。早速のお返事ありがとうございます。 そうですよね、やはりマクロですか・・・。 初心者で、どういうふうに作成すればよいのかがさっぱりわからないのです。 参考になるものがあればと、いろいろネットのマクロ集など検索してみたのですが、さっぱりわかりませんでした・・・。
お礼
ご回答くださった皆様、ありがとうございました。 なんとかできることができました。 非常に助かりました。 感謝!感謝!!です。