VBAのデータ抽出について

このQ&Aのポイント
  • VBAを使用してExcelのデータ抽出プログラムを組みたいと思っています。具体的には、コマンドボタンをクリックすると表示されるUserForm内のコンボボックスから条件を選択し、それに合致するデータを抽出する機能を作りたいです。
  • 具体的な手順は、コンボボックス1,2,3のうち1つを選択すると、その条件に合致するデータを抽出します。2つを選択すると、その2つの条件に合致するデータを抽出します。3つを選択すると、その3つの条件に合致するデータを抽出します。また、コマンドボタン2をクリックすると元のデータ一覧に戻ります。
  • このようなプログラムを組むには、VBAのコードを使用します。具体的な処理の流れは、コマンドボタン1をクリックするとUserFormが表示され、コンボボックスから条件を選択します。選択された条件に合致するデータを抽出し、結果を表示します。コマンドボタン2をクリックすると、元のデータ一覧に戻ります。このような条件抽出機能を実装するためには、VBAの操作やデータ処理の知識が必要です。
回答を見る
  • ベストアンサー

VBAのデータ抽出について

 列  A   B   C 行1 番号  色   形  2  1   白   丸  3  2   赤   三角  4  1   赤   丸  5  3   黄   四角 (1)Excel Sheet1にコマンドボタン1があり、それをクリックするとUserForm1が表示されます。 (2)UserForm1には「番号」「色」「形」の各コンボボックス1,2,3が配置されています。 (3)各コンボボックス1,2,3に表示されるのは、Sheet1の各列のデータです。 (4)コンボボックス1,2,3のうち1つ選択→その条件に合うデータを抽出。  コンボボックス1,2,3のうち2つ選択→その2つの条件に合うデータを抽出。  コンボボックス1,2,3のうち3つ選択→その3つの条件にあるデータを抽出。 (5)Sheet1のコマンドボタン2をクリックすると、Sheet1は元のデータ一覧に戻る。 というようなプログラムを組みたいと思っています。 (4)のデータ抽出、(5)の戻し方がよくわかりません。 どなたかご教授下さい。

  • gazo
  • お礼率30% (74/241)

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

  • ベストアンサー
  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.1

 列  A   B   C 行1 番号  色   形  2  1   白   丸  3  2   赤   三角  4  1   赤   丸  5  3   黄   四角 ************* この上のデータ らしきものは、なんですか? それとも抽出結果ですか?。 もし、これが データだとしたら これをどのように抽出したいのですか?。 質問するときは、これがデータで、これが 抽出 条件で 結果は、これ と言うように 説明すべきでは、 1の条件とは なに 2の条件とは なに 3の条件とは なに 自分の考えが、まとまっていないだけでは??。

関連するQ&A

  • コンボボックスからのデータ抽出

    Access2000です。 hozon - テーブル コンボボックス-nenn(2003,2004) コンボボックス-tsuki(1月から12月) コンボボックス-hi(1日~31日) コマンドボタン-抽出ボタン があり、各コンボボックスで抽出したい年月日を選択してコマンド抽出ボタンをクリックして その下にサブフォームにてテーブルから抽出したデータを表示したいのですが、どのようなコードになるのか教えてくださいませんか? データは月別の場合と日にちべつの場合とできればうれしいのですが、、 初心者なのでよろしくお願いします。

  • エクセル VBA コンボボックスで検索

    エクセルVBA初心者です。 シート1行目には工場名、2行目に見出し、3行目からデータが記入されています。 2行目に見出しとして、A列には作業者名、B列に工事番号、C列から作業時間などが記入されています。 ユーザーフォームにコンボボックス、コマンドボタンを設置し、コンボボックスには工事番号一覧が表示されるようにするところまではできましたが、コンボボックスで工事番号を選択し、コマンドボタンを実行することで、1シート内の一致する行だけを表示したいのですが、いろいろなサイトを参考に試してみたのですがうまくいきませんでした。 同じ内容のシートが複数ありますが、シート毎での検索・抽出をしたいと考えています。 どのようなコードを作成したら良いのかご教授願えたら幸いです。 よろしくお願い致します。

  • データシート(サブフォーム)の複数条件抽出について。

    データシート(サブフォーム)の複数条件抽出について。 現在メインフォーム上に、オートフォーム:データシート(基となるテーブル(マスターA)選択) をサブフォームとして置き、メインフォーム上にコンボボックス2個(コンボ1、コンボ2)&コマンドボタン1個設置してあります。 基テーブル(マスターA)には 種類    サイズ    商品名 の3フィールドがあります。 やりたい事は、コンボ1(対応フィールド:種類)及びコンボ2(対応フィールド:サイズ)で選択し コマンドボタンを押下で、サブフォーム内データの抽出です。 まだACCESSを始めたばかりの未熟者のため、ネットや本で調べながらやっているのですが どうしても上記がわからなくて完全に進行ストップしてしまったので ご教授願いたいと思い質問させて頂きました。 Filterをかけ、条件はANDで繋げば良いとは思うのですが どのようにコードを組み上げれば良いのか調べつかないため 何卒ご教授の程宜しくお願い致します。 また、質問させて頂いている間も引き続き自分で調べながら やっていこうと思います。

  • データシート(サブフォーム)の複数条件抽出について。

    データシート(サブフォーム)の複数条件抽出について。 データシート(サブフォーム)の複数条件抽出について。 環境:ACCESS2000 DAO利用  現在メインフォーム上に、オートフォーム:データシート(基となるテーブル(マスターA)選択) をサブフォームとして置き、メインフォーム上にコンボボックス2個(コンボ1、コンボ2)&コマンドボタン1個設置してあります。 基テーブル(マスターA)には 種類    サイズ    商品名 の3フィールドがあります。 やりたい事は、コンボ1(対応フィールド:種類)及びコンボ2(対応フィールド:サイズ)で選択し コマンドボタンを押下で、サブフォーム内データの抽出です。 上記をクエリ使用でも、vba利用でもどちらでも大丈夫です。 先日この質問板で丁寧に教えて頂いたのですが、 回答して下さった方もおっしゃってたのですが、 動的に動かないとの事で、やっているうちにやはり 動的でないと難があるようなので 再度ご質問させて頂きました。 何卒ご教授の程宜しくお願い致します。 先日の質問板は下記です。 http://okwave.jp/qa/q5845718.html また、質問させて頂いている間も引き続き自分で調べながら やっていこうと思います。

  • VBAでオプションボタン変更によって・・・

    エクセルVBAのユーザーフォーム内にあるコンボボックス3つを選択することによりデータ入力を行っています。 この度選択肢を増やすことになり、オプションボタンを2つ追加しようと思っています。 オプションボタンはどちらかを決定することで、コンボボックスの選択内容を変更する予定です。 コンボボックスは大中小分類としており、シート2から抽出したものをシート1に落としている現状をオプションボタン新設により、ボタン1は従来通りシート2から、ボタン2選択時はシート3にあるリストからコンボボックスへ繁栄させようとしたいのですが、方法が分かりません。 どなたか、教えていただけると助かります。 よろしくお願いします。 現在のコードを下記に記します。 Private Sub UserForm_Activate() With UserForm3 .OptionButton1 = True *この段階でボタン2を選択時は、シート3にあるリストよりコンボボックスの内容を抽出したい。 以下中小分類も同様としたい。 .ComboBox1.RowSource = "シート2!A3:A15" .ComboBox1.SetFocus End With End Sub Private Sub ComboBox1_Change() Dim myLlist As String myLlist = ComboBox1 With UserForm3 .ComboBox2.Text = "" .ComboBox3.Text = "" Select Case myLlist Case "大1" .ComboBox2.RowSource = "シート2!B21:B26" Case "大2" .ComboBox2.RowSource = "シート2!B27:B28" End Select End With End Sub Private Sub ComboBox2_Change() Dim myMlist As String myMlist = ComboBox2 With UserForm3 .ComboBox3.Text = "" Select Case myMlist Case "中1" .ComboBox3.RowSource = "シート2!C101:C111" Case "中2" .ComboBox3.RowSource = "シート2!C121:C124" End Select End With End Sub Private Sub OKボタン_Click() With UserForm3 ActiveSheet.Unprotect 行 = ActiveCell.Row 列 = ActiveCell.Column Cells(行, 列) = UserForm3.ComboBox1.Value Cells(行, 列 + 1) = UserForm3.ComboBox2.Value Cells(行, 列 + 2) = UserForm3.ComboBox3.Value ActiveSheet.Protect End With End Sub

  • Excelのコマンドボタンでアクセスのデータを返す。

    Excelのブックに2シートあります。 シート1にはコンボボックス商品を選択させる行が複数あります。 シート2には、商品名がずらっと並んでいます。 (その商品名をシート1のコンボボックスで選択) シート1上にコマンドボタンを設定して、 コマンドボタンを押すと、アクセスのクエリで 抽出したデータ(商品名)を返したいのです。 マクロに外部データの取り込み→アクセスクエリ→ シート2の行にデータを返す。 事はできましたが、それをコマンドボタンに 上記マクロを書き込むことはできるのでしょうか? 表現が下手ですみません。。 よろしくお願い致します。

  • ご教授願います。

    エクセルのVBAを多少勉強致しましたが、行き詰っていますのでどなたかご教授願います。 エクセルにコマンドボタンを二つ作成 最初のコマンドボタンをクリックするとコンボボックスが現れます。 コンボボックスには1~4があります。 1はシート1""あいう""のシート 2はシート1""かきく""のシート 3はシート1""さしす""のシート 4はシート1""たちつ""のシート を指定するようになっています。 ここでとりあえず自分の希望のしーとになるように1~4の数字を選びます。 次にもうひとつのコマンドボタンを選択するとテキストボックスが現れます。 記入し、テキストボックスと同userformにあらかじめ作っていたコマンドボタンをクリックすると先ほど選択した1~4にテキストボックスを転送するようにしたいのです。 hideを使って先ほど表示させたコンボボックスのuserformを隠して、テキストボックスのuserformを閉じる際に指定したシートをにとさせようとしましたが、 そのテキストボックスのuserformが何個かあるのでどうすればいいのかわかりません。 どなたかご教授願えませんでしょうか? よろしくお願い致します。 なお、私の説明不足で内容がよくわからなかったら一報ください。 申し訳ありませんが、どうぞよろしくお願い致します。

  • コンボボックス_データ抽出

    コンボボックスを使用し、<全台帳>から、自分の担当分の必要データのみ抽出し、新たに<一覧表>を作成したいと考えています。 ≪エクセルの状態≫ ・Sheet1 <メニュー欄>(表紙になっています) ・Sheet2 <全台帳>  部署全体の注文アイテム情報があります。      このデータは、毎日自動更新されるようにすでにマクロが組まれています。(行が日々変更します) ・Sheet3 <自分の一覧表>      今回作りたいものです。 ≪Sheet2と3の説明≫ ・Sheet2のデータは、下記のようなものが横に一列に並んでいます。 [入力日][注文番号][客先][品名][数量][納期][送り先]など物凄いたくさんの情報が部署全員分あります。 ・Sheet3には、[注文番号(唯一これが自分の分とわかるものです)]からデータを引っ張ってきて、その分の[客先][品名][数量]データのみ一緒に引っ張ってきてほしいのです。 ≪作りたいマクロ≫ 【1】Sheet1のメニュー欄にマクロボタンを作り、それをクリックすると、ユーザーフォーム(コンボボックス)が表示されます。 (表示場所は、Sheet1でも3でもかまいません。) 【2】コンボボックスは、Sheet2にリンクしてあり、[注文番号(直接入力は不可)]から自分の担当分を選ぶ。 【3】ユーザーフォーム上で、<登録ボタン(コマンドボタン?)>を押す。 【4】Sheet3に、[注文番号]とその分の[客先][品名][数量]のみ一緒に引っ張られてくる。 注文が入るたびに、この作業をするため、Sheet3は最終行に追加されるかたちにします。 この様なマクロの組み方を、教えてください。 よろしくお願いいたします。

  • 教えてください。

    vba初心者です。 エクセルのマクロです。 userformをでコンボボックスとテキストボックスを作りました。 userformを起動させ、コンボボックスで1~20のどれかを選択し、 テキストボックスに何か記入し、完了をおすと、コンボボックスで選択したシートにテキストボックスの内容を記録させたいのです。 コンボボックスには1~20までの数字を登録します。 その1~4を選択したときはシート1 5~10はシート2 6~15はシート3 15~20はシート4 と振り分けられるようにしたいのです。 現在の状況は。 userform作成 テキストボックス作成 コンボボックス作成 完了のコマンドボタン作成 完了を押すとテキストボックスが記録される ここまできています。 あとはコンボボックスの使い方がわかりません。 わかりにくい説明ではあったとは思いますが、どなたかご教授お願い致します。 よろしくお願い致します。

  • アクセス2000でデータ抽出できない

    アクセス2000でデータ抽出できない サブフォーム上でコンボリストを使用して入力し、その条件にあったものだけを別のコンボボックスに表示したい。 フォーム:[取引名][種別][資材名] ※全てコンボリスト 取引先を選択し、種別を選択し、その2つの条件を満たすものだけテーブルから抽出し、資材名のリストに表示したいのですが、どうしたらできるかわかりません。

専門家に質問してみよう