• ベストアンサー

エクセル データーベース 削除したレコードを自動で別シートにどんどん追加していく方法は?

いつも大変お世話になっております。 エクセルのデータベースで、社員名簿を作りました。 名前、住所、職階級など、様々なデータが横1列に入力してあります。 入力しているシート名は「名簿」です。 H列に、社員、契約社員、派遣、パート、退職 といった情報を入れています。 この中で、 退職 とある人の分の情報を別シート(シート名 退職者 )に移して、削除したいのです。 今までは手作業でしておりましたが、これを自動でする方法はないでしょうか? 「名簿」シートで削除したものが、「退職者」シートの一番上、もしくは一番下にどんどん追加されるようにしたいのです。 どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.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

orennji1111
質問者

お礼

ご回答くださった皆様、ありがとうございました。 なんとかできることができました。 非常に助かりました。 感謝!感謝!!です。

その他の回答 (4)

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.4

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)
回答No.3

データ→フィルタ→オートフィルタ として、対象の方を抽出してなにかフラグを立てて 削除すれば、いいと思うのですが

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

こういうのは1つ1つ人手でやるのがエクセルの建前です。 >されるようにしたいのです。 VBAを勉強してください。勉強をしないで、「したいのです」といっても、それでは他人に作らせるより他ない。 関数を知っている程度ではできません。 行を削除はできません。行の非表示もできません。 関数は抜き出しは得意ではない。私のOKWAVEの回答の中に「imogasi方式」というのを、沢山載せてます。これは作業列を使いますが、退職サインを立てた人を別シートにもってこれます。しかし全セル式で構成といったものになります。 また削除・別シート追加には、VBAで処理をする必要がありますが、キッカケを指示するコマンドボタンなど使う方法があるでしょう。 また本質問はアクセスなどに適した問題です。

  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.1

マクロを作成すれば、自動でそれらの一連の作業ができます。

orennji1111
質問者

お礼

こんばんは。早速のお返事ありがとうございます。 そうですよね、やはりマクロですか・・・。 初心者で、どういうふうに作成すればよいのかがさっぱりわからないのです。 参考になるものがあればと、いろいろネットのマクロ集など検索してみたのですが、さっぱりわかりませんでした・・・。

関連するQ&A

  • エクセルVBAで、行削除⇒別シートに自動入力をしたい

    いつもお世話になります。よろしくご指導お願いします。 VBA初心者です。最近随分皆様に助けていただいています。尚、業務の関係でお助けください。 エクセルで名簿形式のデータベースシートがあります。 (山田太郎 ○○市○○町 911-1234 ・・・) 例えば、この山田さんが解約したり死亡されたりすると「行削除」をします。そのとき、別シート(シート名「解約者台帳」)に自動的に削除した行の全データをもっていきたいのです。 ★解約者台帳のフィールドは、元シートと基本的に同じですが、A~AG列のデータが必要。AH列以降のデータは不要です。 解約者台帳に追加していく(新しい行=何も入力されていない行への自動入力)等のVBAのイメージを含めて、私の力ではやはりさっぱりです。どうかまたまたお助けください。お待ちしています。

  • データベースを検索するマクロ(エクセルで)

    エクセル初級者です。 データベース化してある顧客名簿がsheet2にあり、A列は個人別コードが、B列は氏名、C列は郵便番号、D列は住所、・・・といった感じになってます。 教えていただきたいのは、sheet1上で氏名を入力して検索するフォームを作り、検索の結果、ヒットしたすべてがsheet3上に抜き出す方法って可能ですか? うまくいえないのですが、例えば「佐藤」と入力して検索ボタンを押せば、sheet2のすべての佐藤さんのデータがsheet2の形式と同じ形でsheet3に表示されるようにしたいのです。 情報に不足があれば補足しますので、どなたかVBAの書き方を教えてください。よろしくお願い致します。

  • Excelのデータベース活用で・・・

    早速ですが、データベースの中から別シートに抽出をしたいのですが、これは可能ですか? できるならどうすればいいのか教えてください。 具体的に言うと、次のようなことがしたいんです。 [Sheet1]に以下のようなデータベースがあるとします。 A列:部署コード(4桁) B列:部署名 C列:社員コード(6桁) D列:社員名 この[Sheet1]のデータをもとに、[Sheet2]以下のシートには指定した部署のみの一覧を抽出したいんです。 例えば、A1セルにある部署コードを入力しておけば、指定したセルに該当する社員だけを表示したいということです。 よろしくお願いします。

  • エクセルで各Sheetへの自動振り分け

    エクセルで次のような作業がしたいのですが相談にのってください。 Sheet1は個人データベースで A列・・氏名 B列・・クラス名 C列以降はその他の情報が続きます。 クラス名がA、B、Cの三つだと仮定して Sheet2はAクラス、Sheet3はBクラス、Sheet4はCクラスに対応させたいのです。 Sheet1のB列にクラスを入力したらその行がクラスに対応するSheetに自動入力(リンク?)させたいと考えています。 例えば Sheet1のB列に「A」と入力したらSheet2に、 Sheet1のB列に「C」と入力したらSheet4に、 自動振り分けしたいのです。 意味が分かりにくい文章ですみません。補足があればしますのでご指導お願い致します。 WindowsXP、MS Office2000で作業してます。

  • エクセルのデータベースで参照・貼り付け

    エクセル2003で、データベースを作成してあります。 別のシートに、コードを入力すると、データベースを参照して関連の項目を貼り付けるという作業したいと思っています。 例 シート2にデータベース住所録を作成。 [コード][氏名][住所][電話]... シート1の[A]列にコードを入力すると、データベースから氏名をコピーし[B]列に貼り付け...[C]列に住所... ※貼り付けたデータを後で編集したいため、貼り付けで行いたいと思います。 ※マクロではなくて、関数で行いたいと思います。 ※実際には住所録ではなくて、在庫管理です。 よろしくお願いいたします。

  • Excelで条件別にシートを振り分ける方法

    初心者です。よろしくお願いします。 Excelで条件別にシートを振り分ける方法を教えてください。 名簿の管理をしています。 シート1にNoや名前を入力し、条件ごとに別シートに行ごと自動で振り分ける方法がありますか? 情報を入力するのは、シート1のみで、 シート2~6を自動で振り分けたクラス名簿という形にしたいです。 現在、以下のようにシート1を作成してます。     列A   列B   列C   行1  No  氏名   クラス  行2  1   花子    A 行3  2   太郎    C 行4  3   二朗    B 行5  4   京子    B 行6  5   史郎    B 行7  6   典子    C 行8  7   公子    A ・ ・ これを、シート2はAクラス、シート3はBクラスという具合に、Noと氏名を振り分けたいです。 よろしくお願いいたします。

  • 見積内容を別シートに自動ナンバリングしデータベースに

    見積シートに、会社名、住所、連絡先等の記入をしていますがそのデータを別シートにコピーして、自動でナンバリングして顧客データ(データベース)として、まとめたいと思います。 ---------------------------------------- ・見積シート 会社名、住所、連絡先 ↓ ・データベースシート 0001 東京都世田谷区,OOOO(株),TEL.03123456 0002 千葉県....... ----------------------------------------

  • エクセルのシートを同時に行削除、行挿入させて自動連動させたい

    エクセルで、横(列)256列以上のデータを入力したいため、シートを分けざるをえません。その場合、次のようなことがしたいとき、どのようにすればよろしいでしょうか?(やりたいことの結論下記(3)になります。) エクセルのシートが2つ以上あるとします。 (1)「sheet1」には、基本データ(名簿録のようなもの・氏名ふりがなアイウエオ順配列) (2)ふたつめ以降のシートには、毎月変更するデータを入力し、「sheet1」の名簿の個々のIDに対応したそれぞれ同じ行番号に入力することになります。 (3)「sheet1」で行削除(名簿対象者解約)や行挿入(新規契約者)を任意の場所で行いたい。それに連動して、2つ目以降のシートでも同じ列で行削除・行挿入を自動でしたい。 ★この簡易システムを作成するのはマクロ初心者の私であり、日々の入力作業するのはエクセルそのものが初心者である他者となります。 ★行挿入、行削除のときだけシートの同時選択を手作業でしてもらうことは想定していません。そのあたりをも含めた自動化の智恵がでてこないのです。 以上、よろしくお願いします。

  • EXCEL データベースより別シートに抽出

    Sheet1に商品の受注状況をリストにしています。 A列-オーダーNo、B列-顧客No、C列-顧客名、G列-商品Aの注文数、H列-商品Bの注文数、、、、J列-商品Dの注文数、というように。これをデータベースとして、次のような事をするにはどのようにすればよいでしょうか? 商品の入荷はバラバラです。入荷した時点で、その商品の出荷指示書を顧客毎に作り倉庫に渡します。 そこで、、、 Sheet2に出荷指示書を作ります。 A1にオーダーNoを入力するとB1に顧客名が表示されます(これは出来ます)。 たとえば今回は商品Bが入荷したとして、A7に商品Aのコードを入れると、この顧客の商品Aに対する注文数がB8に表示されるようにしたいのですが、それが出来ません。。欲を言えば、もしその顧客が商品Aを注文していなければ、B8に「0」または「×」が表示されると尚良いのですが。 よろしくお願い致します。

  • EXCELでシートを自動作成し、入力する。

    いつも参考にさせて頂いております。 とても初歩的な質問ですが教えていただけないでしょうか? Accessに人物名簿のデータベースがあります。 人物をある条件で検索し、検索にヒットした人物の情報を名簿.csvへ書き出すという作業をVBAで行いました。 検索をかける度に名簿.csvの内容は更新されます。 ここからなのですが、 Excelに下のような名簿のシートを作成しました。(名簿.xls) ―――――――――――――――――――――――――    氏名:  生年月日:        住所:   Tell:         Fax:   会社名:   会社Tell:   会社Fax: ――――――――――――――――――――――――― (実際にはもっと沢山の項目があり、レイアウトも複雑ですが、簡略しています。) 名簿.xlsを開いた時、もしくは名簿.csvを更新した時点で名簿.xlsに名簿.csvの内容を書き込みたいのですが、 (1)検索にヒットした人物が複数いる事がほとんどなので、このシートを人数分コピーしたい。 (2)そもそもどうすればこのシートにCSVファイルの内容を書き込めるのでしょうか? よろしくご教授の程、お願い致します。

専門家に質問してみよう