• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel 2007 マクロ 特定条件の抽出方法)

Excel 2007 マクロ 特定条件の抽出方法

このQ&Aのポイント
  • Excel 2007 マクロ作成について質問させていただきます。Sheet1に下記2つの表があります。特定条件を別Sheet2にコピーして貼り付けたいと思います。
  • 条件として、本数が空白以外の行をコピーしてSheet2に貼り付けます。2つの表の列数が異なるため、ピボットテーブルを作成してフィルタオプションで抽出することは難しいとおもいます。
  • どのようなマクロになりますでしょうか。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

作成例: Sub macro1()  Dim a() As Range  Dim i, h  ReDim a(Application.WorksheetFunction.CountIf(Worksheets("Sheet1").UsedRange, "本数"))  Set h = Cells.Find(what:="本数", LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlByRows)  For i = 0 To UBound(a) - 1   Set a(i) = h   Set h = Cells.FindNext(h)  Next i  Set a(i) = Cells.SpecialCells(xlCellTypeLastCell).Offset(2)  For i = 0 To UBound(a) - 1   a(i).Offset(-1).EntireRow.Copy Destination:=Worksheets("Sheet2").Cells.SpecialCells(xlCellTypeLastCell).Offset(1).End(xlToLeft)   With a(i).Resize(a(i + 1).Row - a(i).Row - 1, 1)    .AutoFilter field:=1, Criteria1:="<>"    .EntireRow.Copy Destination:=Worksheets("Sheet2").Cells.SpecialCells(xlCellTypeLastCell).Offset(1).End(xlToLeft)    ActiveSheet.AutoFilterMode = False   End With  Next i  Worksheets("Sheet2").Range("1:1").Delete shift:=xlShiftUp End Sub #そもそも元のシート1の作り方が,上と下で表が違うみたいな変な具合なのでここまで面倒なことになっているのですから,その困り事の根本原因になっているシート1の様子を,まず先に正しく具体的に画像で情報提供してください。 それと。まず回答された内容をよく吟味してその通りにやってみて,出来なかったら出来なかった様子を具体的に挙げて,それで返答を書くようにしてください。

hyogara777
質問者

お礼

ご回答ありがとうございました。問題なく解決できました。今後は質問する際の情報について、注意したいと思います。ご回答頂きましたマクロの一文一文を書籍やサイトで調べて勉強します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル2000マクロ条件抽出方法

    シート名(在庫月数マスター)に下記の条件のデータが入っています。 A列 B列 C列 最小値 最大値 在庫月数 0 50 4.0    0以上51未満の場合は4.0 51 100 3.0    51以上101未満の場合は3.0 101 500 2.0 101以上501未満の場合は2.0 501 1000 1.5 501以上1001未満の場合1.5 1001 1.2 1001以上1.2 別のシート名(実績)のN列に平均払出のデータが入っています。 在庫月数マスタの条件を判断してAB列に在庫月数を入れたい。 N列           AB列 平均払出→項目名(5行目) 在庫月数(5行目)  2000            1.2  75            3.0 45            4.0  0            4.0 105 2.0 このような場合マクロで抽出する方法を教えてください。 よろしくお願いします。

  • Excel2007 マクロ 表の値の抽出

    下記2つの表がSheet1にあります。 <野菜> 番号 製品名 外国産 国産 その他 AA-1 かぼちゃ 2 2 BN-3 ぴーまん 5 JK-2 れたす 5 1 KJ-76 いも TT-9 とまと 6 2 <くだもの> 番号 製品名 外国産 国産 その他 UI-4 ばなな 6 YU-34 りんご 4 9 i-45 なし 5 3 IO-34 ぱいなっぷる 6 OO-3 めろん 外国産、国産、その他のいずれかの列に数値が入って いる行をコピーしてSheet2に貼り付けるマクロを考えています。 マクロ超初心者ですので、文が長くなっても構いません。 元データの画像を添付します。 容易なマクロのサンプルをご紹介いただけませんでしょうか。

  • エクセル(2000)のマクロについて

    sheetaaa~(複数シート)~sheetZZZをすべて選んでこれらのシートのコピーを、他のブックに作成するというマクロを自動保存で作りました。出来上がったマクロをみるとコピーするシート名がひとつひとつマクロの中にかかれてしまいます。sheetaaaとsheetZZZはいつもコピーするので問題ないのですが、、間に入っているシートは数がどんどん増えていくので、マクロの中でおのおののシート名を指定してしまうのは困るのです。 マクロを実行した際に、sheetaaaとsheetZZZの間あるシートは無条件でコピーを作成するというマクロを作成したいのですが、どのように作ったらいいのかわかりません。 どなたかアドバイスいただけないでしょうか。

  • エクセルの抽出に関するマクロ

    (1)OSはVistaです。 (2)エクセル2007を使用しています。 (3)シートは「会員情報」「抽出条件」「抽出結果」の3枚です。 (4)「会員情報」シートのA5からR588までデータ(氏名、住所、電話番号など)が入っています。A5からR5は、タイトル行(フィールド)です。R列は「フォームコントロール」で挿入したチェックボックスです。。 (5)「抽出条件」シートには、会員の種類による抽出ができるような条件(正会員、準会員、協賛会員など)が設定してあります。 (6)「抽出結果」シートには、抽出された結果がコピーされます。 「会員情報」シートのデータを、「抽出条件」シートで指定した条件で抽出し、「抽出結果」シートにコピーするマクロは成功しました。 チェックボックスにチェックを入れた会員を抽出し、その方たちの郵便用ラベルを作成するのが最終目標ですが、今は「会員情報」シートのチェックボックスを使った抽出とその結果のコピーができないところでストップしています。チェックボックスを使った抽出とその結果のコピーのマクロを教えてください。

  • Excel 2007 マクロ 表の値の抽出について質問させて頂きます。

    Excel 2007 マクロ 表の値の抽出について質問させて頂きます。 4つの表がSheet1にあります。 表は画像として添付しました。 外国産、国産、その他のいずれかの列に数値が入って いる行をコピーしてSheet2に貼り付けるマクロを考えています。 昨日、2つの表の場合のマクロのご回答を頂きました。 2つ表が追加されると上の2つは、抽出されるのですが 下2つは抽出されません。 表が4つと2つではマクロが異なるのでしょうか。 マクロ超初心者ですので、文が長くなっても構いません。 容易なマクロのサンプルをご紹介いただけませんでしょうか。

  • EXCELのマクロでデータをクリアしたい

    仕事でエクセルのマクロを使ってリストを作る作業があるのですが、行き詰まりました。どなたか助けて下さい。お願いします。 表を作るのには二つのマクロを使っています。 【一つめのマクロ】 1.定形のウェブページからテキストをコピーする    内容は商品名や商品番号や数量です 2.エクセルの一番左上に貼り付ける 3.するとマクロが働いて貼り付けたデータはseet1に保存されて自動的に新しいシートが用意される 4.新しいシートに別のデータで1.2.を繰り返す この作業は9回まで繰り返し、一旦エクセルを閉じます。 次に再びエクセルで 【二つ目のマクロ】を立ち上げ、現れた『リスト作成』ボタンを押すと自動的に完成の表が作られます。 最初はこの方法で快調だったのですが、行き詰まりました。 ・行き詰まりその1 一つめのマクロで九つまでコピーペーストするのをくり返して、二つ目のマクロを使うと今までのデータをすべて反映して表が作られてしまいます。うまく説明できないのですが、例えば 月曜にコピーペーストして表完成。 火曜に別のデータでコピーペーストして表を完成させると、必要ない月曜のデータも含めて表が出来てしまう。 これが一つめの困りです。 ・行き詰まりその2 二つ目の困りは、ある日別の社員が一つめのマクロを使ってコピーペーストしていたところ、誤って9つ以上シートを作ってしまったらしく、作りすぎたシートを削除しました。 そうしたらフリーズしたので、再起動してやり直ししたら、そのマクロのファイルを開くたびに、上記の失敗が現れてそれ以上のデータが作ることができなくなりました。(2つめのマクロを動かすと失敗データが上書きされるのみです) 快調な時は表が完成すると、一つめのマクロでは何のデータも残りませんでした。 このような稚拙な説明しか出来ないのですが、どなたかご教授下さい

  • エクセルマクロで条件のシートを印刷する方法

    エクセルマクロで条件のシートを印刷する方法を教えてください 初め、目的のシートを作成する為の条件がセルに入力しているシート(以降:条件シート)があり マクロで条件シートから情報を吸い上げて情報に沿ったシート(以降:結果シート)を複数作成します。 ここでは条件シートが複数存在しています。 結果シートを作成する為の条件と作成するシート数はその都度違います。 結果シートを作成する際は前回に作った結果シートを全て削除してから作っています。 条件シートのシート名に「●」を入力しておいて、「●」が含まれていないシートを削除するようにしています。 ここで質問になりますが、作成した全ての結果シートだけを印刷する方法を教えていただけないでしょうか 方法としては「●」が含まれていないシートを全て印刷するという命令にしたいのですが。 ご教授お願いいたします エクセル2003を使用しています。

  • マクロで過去日付分の計算式を値のみコピーする方法を探しています。

    マクロで過去日付分の計算式を値のみコピーする方法を探しています。 1つのシートに1ヶ月分の在庫を管理している表をエクセルで作成しています。 ほとんどすべてのセルに計算式が入っているので、とても重いため、過去日付のものは確定する方法を探しています。  商品名   6/1 6/2 6/3 6/4・・・・・・  Aの出荷数 1 2 3 4 ・・・・  Aの在庫数 50  48  45  41・・・・・  Bの出荷数  5 6 7 8・・・・・  Bの在庫数 60 54 47 39・・・・・    ・    ・     ・    ・ というふうに600アイテム以上の商品在庫の表です。 「確定」というボタンを押せば商品の出荷数の過去日のみをコピーして値で貼りつけるようなマクロを作成したいのですが、可能でしょうか? 上手に説明ができなくてすみません。。。 よろしくお願いします。

  • Excel VBA 集計方法

    在庫状況にもとづいて、売上表の行を削除するマクロを組みたいと思います。(2つのシートに分かれています) <共通条件> お客様Noは一意です。 お客様No2以降は他のアカウントで別の品名が入っています。 <作業内容> お客様No2以降も同様に売上表シートの行を削除します。 お客様ごとに同じ品名で在庫状況シートの本数まで、売上表シートの在庫状況列の「No」の行を削除します。在庫状況シートの本数を超えると売上表シートの在庫状況列の「Yes」の行を削除します。 上記の作業はマクロで可能でしょうか。 下記に表を記載します。 <在庫状況>シート お客様No お客様名       品名 本数 在庫状況 1 はなまる商事 XYS Beta  5  Yes 2 3 4 5 <売上表>シート お客様No お客様名       品名 本数 在庫状況 1 はなまる商事 XYS Beta 1 No 1 はなまる商事 XYS Beta 1 Yes 1 はなまる商事 XYS Beta 1 No 1 はなまる商事 XYS Beta 1 Yes 1 はなまる商事 XYS Beta 1 No 1 はなまる商事 XYS Beta 1 Yes 1 はなまる商事 XYS Beta 1 No 1 はなまる商事 XYS Beta 1 Yes 1 はなまる商事 XYS Beta 1 No 1 はなまる商事 XYS Beta 1 Yes 1 はなまる商事 XYS Beta 1 No 1 はなまる商事 XYS Beta 1 Yes <マクロ実行後の結果> お客様No お客様名 品名 本数 在庫状況 1 はなまる商事 XYS Beta 1 Yes 1 はなまる商事 XYS Beta 1 Yes 1 はなまる商事 XYS Beta 1 Yes 1 はなまる商事 XYS Beta 1 Yes 1 はなまる商事 XYS Beta 1 Yes 1 はなまる商事 XYS Beta 1 No ※表がずれていますが、品名はアルファベットです。

  • エクセル 複数条件による検索・抽出 マクロ

    ユーザーフォームに5つのTextBoxを用意しまして、TextBox1に取引先会社名、TextBox2に商品名を入れると、(できれば自動的に)TextBox3に単価、TextBox4に商品番号、TextBox5に材料名が入るようなマクロを組みたいと考えております。 当社は、取引先相手が一次卸か二次卸かで、同じ商品でも単価が変わってくるので、二つの条件が必要となり、初心者の私には、どのようなマクロを組めば良いのかわかりません。 できれば、ユーザーフォームを立ち上げるSheet1とは、別のSheet2などに各会社名・対応する商品名、そして各々の単価などの表を作りたいと考えております。 分かりにくい質問かと思いますが、宜しくお願いします。 上記に書いた方法以外に、もっと良いアイデアなどありましたら、是非とも宜しくお願いします。

専門家に質問してみよう