プロが教えるわが家の防犯対策術!

早速ですが、データベースの中から別シートに抽出をしたいのですが、これは可能ですか?
できるならどうすればいいのか教えてください。
具体的に言うと、次のようなことがしたいんです。

[Sheet1]に以下のようなデータベースがあるとします。
A列:部署コード(4桁)
B列:部署名
C列:社員コード(6桁)
D列:社員名

この[Sheet1]のデータをもとに、[Sheet2]以下のシートには指定した部署のみの一覧を抽出したいんです。
例えば、A1セルにある部署コードを入力しておけば、指定したセルに該当する社員だけを表示したいということです。

よろしくお願いします。

A 回答 (3件)

#2のものです。


部の数だけ実行しないといけませんが。
第2行目だけにフィールド見だしがあるとします。
A1セルに抜き出したい部のコードを入れます。
コマンドボタンを1つ貼りつけ
Private Sub CommandButton1_Click()

End Sub
の真中に、(Sub test02()とSub Endを除いて)下記を挟むのも良いと思います。
Worksheets("sheet2").Cells(j, "A") = _
Worksheets("sheet1").Cells(i, "A")
以下は列の数(=フィールド=項目の数)だけ増やしてください。Aのところを、E,F,G,・・・と変えたものを増やすと良い。
OKWEBの強制改行を避けるため、スペース+アンダーバーでわざと改行しています。=を挟んで左右にならべるのが普通です。
Sub test02()
d = Worksheets("sheet1").Range("a3"). _
CurrentRegion.Rows.Count
j = 2
For i = 2 To d
If i = 2 Or Cells(i, "A") = Cells(1, "A") Then
Worksheets("sheet2").Cells(j, "A") = _
Worksheets("sheet1").Cells(i, "A")
Worksheets("sheet2").Cells(j, "B") = _
Worksheets("sheet1").Cells(i, "B")
Worksheets("sheet2").Cells(j, "C") = _
Worksheets("sheet1").Cells(i, "C")
Worksheets("sheet2").Cells(j, "D") = _
Worksheets("sheet1").Cells(i, "D")
j = j + 1
End If
Next i
End Sub
    • good
    • 0
この回答へのお礼

詳しい説明をありがとうございます。
さっそくやってみました。
でも、実はまだ完成してないんです。(><)

ここで再度質問をしようとも考えたんですが、そもそもVBA自体を分かっていないので上手く説明できません。
なので説明書を買ってきました。
VBAを理解するいいチャンスだと思って・・・。
この機会に頑張って習得してみます。
本当にありがとうございました。

お礼日時:2003/05/30 09:37

オートフィルタの後のコピーを嫌うとすると


VBAの問題でしょう。
(1)データの最下行を知る。
(2)最上行について
   部署コード(A列)=A1セルの内容、ならば
   Sheet2の対応フィールド<==Sheet1   のフィールド
(3)部署コード(A列)=A1セルの内容、でなければ   何もしない。
(4)次ぎの行について(2)(3)を繰り返す。
(5)最下行まで処理して終わり。
難しいロジックは使はなくてもできます。
興味があれば、VBAコードを載せますが。
    • good
    • 0
この回答へのお礼

ありがとうございます。
やはりVBAですか!
なんらかの関数でできないかなぁって思ってたんですが、無理そうですね。
挑戦してみようと思いますので、詳しく教えてください。
よろしくお願いします。

お礼日時:2003/05/29 08:33

メニューから


[データ]-[フィルタ]-[オートフィルタ]
を使ってはどうでしょうか?

どうしてもSheet2上でということでしたら、
Sheet1をコピーして、それをSheet2とする
ということも考えられます。

上記がご要望に沿わない場合には
補足をお願い致します。

この回答への補足

さっそく回答ありがとうございます。

でも、オートフィルじゃダメなんですよ。
現在、約500行のデータを15のシートに分けてるんです。
[sheet1]でオートフィルした後、計15回のコピーをして・・・。
ですから、なんとか自動的に各シートに該当する部署のみのリストを表示させたいんですよね。

補足日時:2003/05/29 08:26
    • good
    • 0

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