エクセル2000マクロで条件式を使ってリストを抽出する方法

このQ&Aのポイント
  • エクセル2000マクロを使って、条件式を作成し、リストを抽出する方法について教えてください。
  • フィルターオプションを使用し、巡視日の条件式を設定して、データを抽出するマクロの作成方法を教えてください。
  • エクセル2000マクロを使用して、シート名(A)と別シート名(B)を指定して、条件式に基づいてデータを抽出する方法について教えてください。
回答を見る
  • ベストアンサー

エクセル2000マクロについて

下記のデータベースを作っています。 フィルターオプションで条件式を作ってリスト抽出するマクロを教えてください。     B列~O列  シート名(A)                        3行目 No. 巡視日 管理部署 件名 場所     1 4月1日 製造一課 食器棚の上 事務所食堂      2 5月8日 製造一課 連絡系統図 作業場     3 6月8日 製造一課 帳票類の整理 事務所隣書類棚     4 7月8日 製造一課 爆発テスト用備品A倉庫右隣 条件式 巡視日   別シート名(B)で作っています。 >=200204 <=200206 上記の条件式で抽出するマクロを教えてください。 データの件数は決まっていません。その都度変わる。シート名(A) 

noname#72697
noname#72697

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

  • ベストアンサー
回答No.4

こんにちは。下記のごとく操作してみて下さい。私がエクセル2000で実行したら、正常の動作しました。 1.データが入力されているブックを開き、ALT+F11キーを押してVBE画面を表示させる。 2.画面左上にあるVBAProjectの下にあるSheet1にマウスポインターをあわせ、ダブルクリックしてSheet1のコードエディター(右側の白い部分)を表示する。 3.そこに、下記のコードをコピー・ペーストする。 4.ALT+F11キーを押してエクセルの画面にもどり、Sheet1のあいているところにコマンドボタンを配置する。もし、コマンドボタンのは一方法がお解りにならない時は、お知らせ下さい。ご説明させていただきます。 コマンドボタンを押すと、抽出が実行されます。 もし、動作が違う時にはご遠慮なくお知らせ下さい。あなた様が実現したい動作ができるようになるまで一緒に考えていきたいと思います。 Private Sub CommandButton1_Click() Columns("C:C").AutoFilter Field:=1, Criteria1:=">=4月1日", Operator:=xlAnd, _ Criteria2:="<=7月31日" End Sub

その他の回答 (3)

回答No.3

早速補足いただき有難うございます。 まだ解らない点があります。まぜ、抽出条件式が別シートにあるのでしょうか。シート1にデータベースのデータがあるとして、シート1のC列のデータで抽出をかけるだけではダメなのでしょうか。その点について詳しく教えて下さい。 お手数をおかけいたしますが、よろしくお願いいたします。

noname#72697
質問者

補足

補足します。 抽出条件式が別シートにあります。 条件式 巡視日  巡視日 >=2002/04 <=2002/06 シート1のC列のデータを上記の別シートに作った条件式に合ったものを 抽出したい。シート1のC列のデータで抽出で結構です。 条件式の意味 巡視日のデータが2002年4月以上で2002年6月以下のものを抽出する。 確認 出来れば条件式がこれでよいか確認をお願いします。 実際動かすと2002年6月以下のものが抽出できません。 何故でしょうか合わせてよろしくお願いします。

回答No.2

はじめまして。 私でよろしければ、サンプルマクロを作ってみたいと思います。 もしご希望でしたら、あなた様のおやりになりたいことを具体的に詳しく教えていただけないでしょうか。この内容では、サンプルマクロを作ることができません。次の内容も教えて下さい。 1.リストの項目名と項目名が入力されているセル番地 2.抽出をかけたいデータが入っている列 3.抽出した結果をどうするのか お手数をおかけいたしますが、よろしくお願いいたします。

noname#72697
質問者

補足

質問が具体性がなくてすいません。 下記に示します。 やりたいことは、データーベースのリストから、ある条件式の一致するものを データーベースから抽出する。マクロを作りたい。 1.リストの項目名と項目名が入力されているセル番地 項目名 B列3行目 NO     C列3行目 巡視日 2.抽出をかけたいデータが入っている列       C列 4行目 2002/4/8(表示は4月8日になっている)        5行目 2002/7/8(表示は7月8日になっている) 3.抽出した結果をどうするのか 抽出条件式  別シートにある。         G列   H列         巡視日 巡視日  2行目           >=200204 <=200206 3行目   上記の条件式に一致するものを抽出してそのデータを基に   ピボットを作りピボットグラフを作りたい。 以上よろしくお願いします。

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

ツール-マクロ-新しいマクロの記録-Macro1でマクロの記録を行えば、マクロが作成されます。 あとは(1)「データの件数は決まっていません」のために、相対化するためのコードの書き方と(2)シート名を 相対化するためのコードの書き方が判ればすむことではないでしょうか。今の2000,2002のところでは、抽中出後のデータを書き出すシートは別シートに出来ないようです。 (1)はRange("a1").CurrentRegion.Rows.Countなど (2)は Sub test01() Dim a As String a = InputBox("シート=") Worksheets(a).Range("a1") = "aaa" End Sub で動くようです。

関連するQ&A

  • エクセル2000フィルター抽出条件式について

    フィルター抽出条件がうまく抽出出来ません教えてください。 抽出条件式 別シートで作っている。(Bシート)  巡視日      巡視日 >=2002/05 <=2002/07 条件式の意味 2002年5月以上で2002年7月以下のデータを抽出する。 2002年5月以上のデータは抽出できるが、2002年7月が抽出されない 2002年5月と2002年6月しか出てこない。 データベース(Aシート) C列 巡視日 4月8日 5月11日 5月11日 6月5日 7月4日 7月4日 エクセル操作(データ→フィルター→フィルターオプション設定)で 検索条件範囲を 巡視日      巡視日 >=2002/05 <=2002/07 指定してやるとデータベース(Aシート)のC列の抽出が 2002年5月以上のデータは抽出できるが、2002年7月が抽出されない 2002年5月と2002年6月しか出てこない。 何故でしょうかよろしくお願いします。

  • エクセルマクロ

    全くの素人です。 200人のお得意先に案内状を送付します。 sheet1 A列1~A列200に会社名、 B列1~200までに、代表者の名前を入力しています。 sheet2に案内状があります。 会社名と名前だけ変えて200回するのもひと苦労ですので、マクロを使えればと思います。 1マクロに記憶する 2A列1・B列1をコピー 3sheet2に貼り付け4印刷 5マクロ記憶終了 マクロを実行するとA列1・B列1ばかり印刷されます。 A列2・B列2 A列3・B列3 と言うように順番に下段を印刷させる設定はどのようにすれば良いのでしょうか

  • エクセル2000マクロ検索方法

    Aのファイル a.xls シート名 aaa Bのファイル b.xls シート名 bbb Aのファイルに下記のデータベースがあります。   A列 B列   0001 100   0002 200   0004 300 Bのファイルに下記のデータベースがあります。   A列 B列   0001 300   0002 200    抽出条件方法 AのファイルとBのファイルのA列を参照して違うものだけを、Aのファイルから 別のファイルに取り出す方法をマクロでの記述方法を教えてください。 別のファイルに取り出すデータは、下記の通リです。   A列 B列   0004 300 以上よろしくお願いします。

  • エクセルのマクロを知りたい

    エクセルで,たくさんのデータが入力された【シートa】があります。 新しく【シートb】を作成して,そこに空白の表(1)~(10)までを作成します。 (ちなみに表(1)は1行から始まり100行まで,表(2)は101行から始まり200行まで・・・・といった感じです) 【シートb】の表(1)には,【シートa】でA列に「1」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。同様に,表(2)には,【シートa】でA列に「2」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。・・・というのを表(10)まで続けます。 上記のような命令をボタン一つで操作できるようなマクロを教えて欲しいのです。 お願いします。

  • Excelマクロ

    Excel2000でBook<A>のSheet<B>のデータを一定の条件でBook<C>の各Sheetにそれぞれ条件ごとに抽出したいと思います。どのようにマクロを記入したら良いでしょうか?すみません。初心者なのでよろしくお願いします。

  • エクセルのマクロで

    下記のような表において(行数は500ほど) 別シートに 担当者名「 」検索 、 処理年月「  」検索 というアイコンを作成し、 たとえば 処理年月「2007/06」検索 と入力し、アイコンをクリックすると 2007/06のデータ抽出されてが別シート(またはアイコンの下)に作成されるといったしくみをつくりたいと思っています。 A列 番号 (例;A-001,B-002) B列 タイトル C列 担当 D列 処理年月 マクロについては初心者に近いので、上記のようなしくみをやさしく紹介しているサイトがありましたら、お教えください。 よろしくお願いいたします。

  • エクセル 抽出マクロについて

    はじめまして。マクロ初心者です。 エクセルで抽出結果を別シートにコピーしたいのですが、 抽出条件が2列にわたっています。 A     B      C      D 日付   タイトル   分類(あ)  分類(い) 11/22   テレビ    3      2 12/15   ラジオ    1      4 11/18   雑誌     2      5 …というような感じです。 例えば分類が「2」のものを抽出したい時に、 ●シート1のあるセルに「2」と入力してマクロを実行。  ↓ ●シート2に以下のように結果をコピーして表示。 A       B 日付     タイトル 11/22     テレビ 11/18     雑誌 という具合にしたいのです。(C列、D列は表示しない) データはシート3に入力されていて、今後どんどん増えていく予定です。 エクセルは2007です。 本やホームページを参考に試行錯誤したのですが、うまくいきません…。 どなたかご回答よろしくお願いいたします。  

  • EXCEL で検索、更新したい

    EXCEL でわからない箇所があり質問します。 前提条件 Sheet1 A列:名前 B列:年月 C列:値 データは、名前と年月で一意になるデータシートがあり マスターデータとして全データが登録されている Sheet2 A列:名前 B列:年月 C列:値 ある条件でとあるデータベースから抽出した名前と年月の一覧がある この段階で値のセルには何も入っていない やりたい事 (1)この状態でマクロを実行し、A列、B列を条件に該当する行から    C列を抽出しSheet2 にセット (2)Sheet2のC列の値を変更後、マクロの実行で    A列、B列の条件を元該当する行から、Sheet1の C列に値を更新 (3)もし、Sheet2のA列、B列の条件に該当しない行がある場合、    Sheet1に行追加しC列を格納 という事をしたいと考えています。 Sheet1 の全ての行をマクロでループさせて A列、B列をif分で比較し行を取得し、Sheet2 に張る場合、 遅くなるのであまりやりたくないと思っています Find 関数も考えたのですが、ヘルプを見る限り、条件が1つしか指定でき ないように思えるのですが、複数列の条件を指定できる Find 関数 あるいは、類似の関数とあかがあるのなら教えてください 最悪は、EXCEL ADO で、自分自身をSQLで抽出、Update、Insert を行う 事も考えていますが、 EXCELのセル内の式で、INDEX関数やDGET関数で簡単に抽出できるのに (ただ、値を変更するので式はかけないけど・・・) わざわざ、ADOでプログラムを組むのもどうなんだろうと疑問に思ってます。

  • エクセルのマクロについての質問です。

    エクセルのマクロについての質問です。 長文申し訳ございません。 Excelマクロが何度作り直してもうまく作動せず非常に困っております。 (1)ファイルAのシート1のDB列3行目に1の値をいれます。 (2)ファイルAのDC列172行目の値をファイルBのシート名が「1」のシートのD列4行目に入れます。 (3)ファイルAのDC列2733行目の値をファイルBのシート名が「1」のシートのD列6行目に入れます。 (4)ファイルAのDC列3128行目の値をファイルBのシート名が「1」のシートのD列7行目に入れます。 (5)ファイルAのシート1のDB列3行目に1.2の値をいれます。 (6)ファイルAのDC列172行目の値をファイルBのシート名が「1.2」のシートのD列4行目に入れます。 (7)ファイルAのDC列2733行目の値をファイルBのシート名が「1.2」のシートのD列6行目に入れます。 (8)ファイルAのDC列3128行目の値をファイルBのシート名が「1.2」のシートのD列7行目に入れます。 (9)以上のようにファイルAのシート1のDB列3行目に入れる値を0.2ずつ増やしていき、その値に対応したファイルBのシートに上記のように値を入れていくという動作を20まで繰り返す。 以上のようなマクロを作る事は可能でしょうか? マクロについて勉強はしているのですが上手く使いこなせず苦労しております。 長文の質問で大変申し訳ございませんがよろしければ皆さまのお知恵をお貸しください。 宜しくお願い致します。

  • エクセル2000(マクロ)を使っていくつかの処理を一度にしたい・・・

    A列に下記の例のようなデータがあり、件数は毎日変わります。 マクロに登録したいのは (1)B列にはA列の最終行まで、(例えば)1、2と繰り返し入力させたい (2)B列に2のデータが入っているものだけを抽出し、抽出したA列のデータだけをコピーし、別のシートに貼り付けたい というところまでを一つのマクロで処理させたいのですが、うまくいきません。 A列のデータ数は必ず偶数で、数字のみで出てきています。貼付け先は日々のデータを月ごとに表にしていくため、毎日変わります。 ※土日祝日分はデータがでてきませんが、項目には記載がありますので、土日祝日は飛ばさなければいけないようになっています。 別シートは行の項目が日付で、列に抽出したデータを入れるようなレイアウトになっています。 A列   B列 1    1 1    2 2    1 0    2 10    1 2    2 13    1 2    2 ちなみに私が取得するデータはA列のデータだけなので、B列に入れるデータは1、2でなくてもなんでも大丈夫です。また処理や他にいい考え方等があれば教えてください。 宜しくお願いします。

専門家に質問してみよう