• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル2000マクロについて)

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

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

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

  • ベストアンサー
回答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/17069)
回答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