• ベストアンサー

VBAマクロ抽出の記述

A列からAH列の6行目からデーターベースが入っています。 条件としてAH列6行目の欄にKという文字で F列~AC列までのデータがブランク以外のデータを抽出したい。 このマクロの記述の仕方を教えてください。

noname#72697
noname#72697

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 このご質問では、今ひとつデータのまとめ方が分らないですね。 Sheet2に列を詰めて、行間も詰めてまとめてみました。 Sub TestSample1()   Dim i As Long   Dim j As Integer   Dim k As Long   Dim c As Range   j = 1: k = 1   For i = 6 To Range("A6").CurrentRegion.Rows.Count + 5    If Cells(i, 34).Value = "k" Then      For Each c In Range(Cells(i, 6), Cells(i, 29))       If Not IsEmpty(c) Then         Sheet2.Cells(k, j).Value = c.Value         j = j + 1       End If      Next c      j = 1      If WorksheetFunction.Count(Sheet2.Rows(k)) > 0 Then       k = k + 1      End If    End If   Next i End Sub

その他の回答 (3)

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

Sub test01() Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") d1 = sh1.Range("A65536").End(xlUp).Row '最下データ行 k = 2 'Sheet2行指定ポインタ For i = 7 To d1 If sh1.Cells(i, "AH") = "k" Then For j = 6 To 29 If sh1.Cells(i, j) <> "" Then For j = i To 2 sh2.Cells(k, j) = sh1.Cells(i, j) Next j k = k + 1 Exit For End If Next j '---空白ばかり End If Next i End Sub >AH列6行目の欄にKという文字で は各行のAH列が”K"の場合ではないかと思い、そう組んでいます。 テストデータが作りにくいもので、テストしてません。後は修正などよろしく。

  • sam_inoue
  • ベストアンサー率47% (27/57)
回答No.2

> =IF(AND(F6<>"",G6<>"",H6<>"",・・・(中略)・・・,AH6<>""),"OK","NG") 作業列を使うなら、 =F6&G6&H6&・・・(略)・・・&AH6 で良いのではないでしょうか。 全てブランクならAI6もブランクで判定できると思います。

回答No.1

=IF(AND(F6<>"",G6<>"",H6<>"",・・・(中略)・・・,AH6<>""),"OK","NG") という式をAI列に作って、すべてのデータ行にコピー 後は、データ-フィルタ-オートフィルタで AH列をK、 AI列をOK を選択すればいいのはないでしょうか。 しかしデータ量が多く、Accessをお持ちでしたら 読み込ませてクエリを作ったほうが早いかもしれません。

関連するQ&A

  • excel2000マクロ記述

    シート名JISEKIの中のF列には2行目から4桁のコードが入っています。 X列の2行目から数値データが入っています。 条件としてF列のコードがA310又はA505で、X列の数値がマイナスの場合は、 R列からW列の数値データを非表示にしたい。 これをマクロ化したいのですが、記述の仕方を教えてください。

  • マクロの行削除の記述の仕方

    AI列の6行目からデータが入っています。 AI列にk000000が入っている行をすべて削除したい。 そのマクロの記述の仕方を教えてください

  • (Excel VBA)困っています・・・orz

    エクセルを使うとある業務でマクロを組み、最適化を図ろうと試みているのですが 気がつけば高度な領域に突入していまして、僕みたいなレベルじゃ全然???な状況になってしまいました。 まず A列の1行目から任意の行に(10行までしかなかったり、1000行まであったりとランダムにあるとする)、任意の文字列(ABCなど)があるとします。 それからオートフィルタを使い、A列からある任意の文字列(ABCなど)を検索条件にしてデータを抽出します。 抽出されたデータベースのA列には検索条件にある「ABC」が任意の行まであり、その抽出されたデーターベースのD列に今度は「XYZ」とという文字列を 抽出された分の最終行まで割り振る・・・ つまりA列《ABC》で検索され抽出されたデータのD列には《XYZ》が自動に入力される もし、検索条件(ABC)で抽出されたデータが「0」件だった場合は、D列には何もせず、次の検索条件に進む・・・ というものをマクロで組みたいのですがどうやったらよいのでしょうか?? 何卒、ご教授お願い致します。

  • Excel2000マクロ記述について

    下記の条件で下記のようなマスターを参照してマクロを作成したいのですが、どのように記述したら良いでしょうか シート名 滞留在庫表 条件 c列の5行目からdataが入っています。data例(AD1200S0110000000P)18桁 dataの頭8桁目がBの場合はL221をV列に表示 dataの頭8桁目が、A又はM又Pの場合はL222をV列に表示 dataの頭8桁目がB、A、M、P以外の場合は、ブランクをV列に表示 シート名 表示再設定マスタ             A列    B列 5行目****************** 6行目*******B********** L221 7行目*******A********** L222 8行目*******M********** L222 9行目*******P********** L222

  • マクロを使ってテキストを抽出したい?

    エクセルのマクロを使ってテキストを抽出したい? ある1つのCSVデータがあります。エクセルで開いてみるとA列からU列までデータがびっちり入っています。 F列の各セルにはテキストを含むhtmlタグや%%NL%%やスペースなどあります。 質問なのですがF列をテキストだけに変換(抽出)したいです。 そのようなマクロを教えていただけないでしょうか?

  • エクセルのマクロ記述について

    J列、K列に入力されている行まで下記処理を行うマクロの記述を教えてください。 J列のセルの文字列がにSHAPEの場合、その行のB~E列のセルの色を黄色にする。 K列のセルの文字列がにSHAPEの場合、その行のF~I列のセルの色を黄色にする。

  • excel2000マクロ抽出方法

    2つのファイルがあります。ブック名A.XLS シート名 WORK              ブック名b.XLS シート名 SORT              ブック名A.XLS シート名 WORKに下記のデータが入っています。 AD 1300G A227550 000PA505(C列2行目) 200112(F列)200201(G列)200202(H列)200203(I列)200204(J列)200205(K列)→1行目固定データ AD 1300G A227550 000PA533(C列3行目)   ブック名b.XLS シート名 SORTに下記のデータが入っています。 AD 1300G A227550 000PA505(A列2行目)200112(E列)200201(F列)200202(G列)200203(H列)200204(I列)200205(J列) →1行目E列~J列のデータは都度変わっている AD 1300G A227550 000PA533(A列3行目)    データ抽出条件  ブック名A.XLS シート名 WORKの F列~K列の1行目の列データとブック名b.XLS シート名 SORTの  E列~J列の1行目の列データが同じで、ブック名A.XLS シート名 WORKのC列の2行目以降のコードと  ブック名b.XLS シート名 SORTのA列の2行目以降のコードが同じだったら  ブック名b.XLS シート名 WORKの E列~J列の同じ行にデータを入れる。違うときは、  ブック名b.XLS シート名 WORKのデータはそのままにする。 上記の条件を満たしたマクロの記述の仕方を教えてください。 以上よろしくお願いします。

  • エクセルのVBAマクロで検索と結果表示(抽出)

    エクセルのVBAマクロで検索と結果表示(抽出)を行いたいです。 業務で使用している膨大なリストデータから、特定のキーワードで情報の絞り込みを行いたいのですが、上手くマクロが組めません。 機能としては、シート1で特定のキーワード(テキストボックスに)を入力し検索ボタンを押下すると、 シート2のリストデータから検索に引っかかったセルの"行"を、シート1にリストアップ(貼り付け)していくようなマクロを作りたいのです。 シート2にはB列~AH列xn行のリストデータがあり、シート2のK列のセル内から「シート1のテキストボックスで入力したキーワードを含む」検索を行い、 HITした行をシート1のA9の行から結果として表示を行いたいんです。 簡単に言えばオートフィルタ機能の部分一致版を作りたいのですが・・・。 (オートフィルタでは完全一致でしか抽出が出来ないので) そして、検索ボタンを押下すると前回結果はクリアしたいです。 ネット上のサンプル等も参考にしながらやってみたのですが上手く行きません。。。 どなたか上記のマクロ文をご教授願えないでしょうか。 必要な情報(シート2の特定の列)のみ表示させたいとも思いましたが、むずかしくて断念・・・。 もし可能でしたらこちらもお願い致します。 よろしくお願いいたします。

  • オートフィルで抽出後削除するマクロ

    いつもお世話になっております。 あるエクセルの表(1行目見出し、2行目以降データ)で、 A列は1~10がランダムに入っています。 (約4,000行、作業の度に変化します) オートフィルでA列を『2以上』で抽出、 (ここまでのマクロは判ります) 見えてる行を全削除(1行目の見出しは取っておく) はどのようなマクロを記述したらいいでしょうか? よろしくお願いいたします。

  • マクロでの並び替え

    V列の2行目からDATAが入っています。 DATAには、ブランク、L221、L222があります。 DATAの並び替えを下記のようにしたいのですが、 教えてください。   ブランク   L221   L222 マクロで記述したい。