![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
VBAを殆ど使ったことがないのですが、
仕事でどうしても必要なため、以下のやり方を教えてください。
Aというシートにあるデータを貼り付けた後、
自動的にあるキーワードで検索してヒットした行と、
必要な項目が飛び飛びになっている列(複数)を
抽出してBというシートに貼り付けたいと思っています。
イメージとしては、Aというシートから商品名iで抽出して
商品名 |D(不要な列) |容量|E(不要な列)|製造会社|
F(商品名)|D’(不要) |G |E’(不要) |H |
i(商品名)|D’(不要) |J |E’(不要) |K |
L(商品名)|D’(不要) |J |E’(不要) |K |
i(商品名)|D’(不要) |M |E’(不要) |N |
________________________________
↓不要な列を省いた状態にしてBというシートに
この様な状態で貼り付けたいと思っています。
商品名 |容量|製造会社|
i(商品名)|J |K |
i(商品名)|M |N |
説明がわかりにくくてすみません。
よろしくお願い致します。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
キーワードは1列目と限定しています。
もととなるシート(A?)で検索したいセル(またはその行のセル)をセレクトした状態で、以下のマクロを実行すれば別シートに集計されます。注1)別シートは新しく作成され、名前が"B"または"B#"(#は番号:すでに同名のシートがある場合連番で振られる)となり、ここに結果が集計されます。
注2)コピーしたい列はマクロの中のcolで定義されていますので、ここを任意に変えればコピーされれる列が変わります。(サンプルでは1,3,5列を設定=A列、C列、E列)
Sub test()
Dim ss As Worksheet, ds As Worksheet
Dim cv As String, col, rc, i, j, imax
col = Array(1, 3, 5) '←ここにコピーする列番号を列挙
Set ss = ActiveSheet
j = Selection.Row
imax = Cells(Rows.Count, 1).End(xlUp).Row
i = 0
Do
If i = 0 Then cv = "B" Else cv = "B" & Format(i, "#")
rc = 0
For Each ds In Worksheets
If ds.Name = cv Then rc = 1
Next
i = i + 1
Loop Until rc = 0
Sheets.Add after:=ss
Set ds = ActiveSheet
ds.Name = cv
cv = ss.Cells(j, 1)
For i = 1 To imax
If ss.Cells(i, 1).Value = cv Then
rc = rc + 1
For j = 0 To UBound(col)
ds.Cells(rc, j + 1).Value = ss.Cells(i, col(j))
Next j
End If
Next i
End Sub
No.3
- 回答日時:
ANo.1です。
新規Bookのシート1のA1~F10位に適当なデータを打ち込みます。
Sub try()
Dim r As Range
Dim rr As Range
Set r = Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
Set rr = Intersect(r, Range("A:A,C:C,E:E"))
r.Select
MsgBox r.Address
rr.Select
MsgBox rr.Address
End Sub
コードを貼り付けて実行します。
1回目はセルA1から表示されているデータ範囲を選択し、そのアドレスをメッセージボックスにて表示します。
2回目は1回目の範囲から、A・C・E列を選択し、そのアドレスをメッセージボックスで表示します。
ご参考になれば。
No.1
- 回答日時:
Excel(エクセル) VBA入門:オートフィルタ(AutoFilter)でのデータ抽出
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/v …
こうゆう感じのことですか。
ありがとうございます。
拝見させていただきました。
大体回答いただいたHPの内容でなんとかなりそうですが、
列が連続していないので、その際の貼り付け方法が
どのように指定すればよいのか、わかりませんでした。
大変申し訳ありませんが、教えていただけませんか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】指定した検索条件に一致したら別シートに転記したい 2 2022/03/23 16:14
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- その他(Microsoft Office) Excelで該当しない項目(#N/Aの商品名)を簡単に表示・抽出させる方法についてです 1 2022/08/25 22:12
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Visual Basic(VBA) 【VBA】複数行あるカンマ区切りのデータを全て縦に一列に並べたい 5 2022/04/13 17:03
- その他(ビジネス・キャリア) スポット取引とは? 1 2023/04/06 15:23
- Excel(エクセル) エクセルで複数設定したハイパーリンク先を、どれを選んでも画面の左上に来るようにしたいのですが・・・ 3 2022/04/07 16:15
- Excel(エクセル) エクセルの表について 3 2023/04/14 18:00
- その他(買い物・ショッピング) JANコードの登録について 1 2022/07/23 14:19
- Excel(エクセル) VBAで同フォルダ内の別ブックを開かず参照して条件の一致する行の指定セルを抽出するには? 1 2022/07/21 19:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データチェックを行うエクセル...
-
文字の色も参照 VLOOKUP
-
ExcelのVlookup関数の制限について
-
エクセルの保護で、列の表示や...
-
マクロのコードを教えてください。
-
VBAで繰り返しコピーしながら下...
-
Excelでの並べ替えを全シートま...
-
Excel複数シートにあるデータを...
-
エクセル マクロ 標準モジュー...
-
エクセルのブック分割マクロを...
-
Excel の複数シートの列幅を同...
-
エクセルの列の限界は255列以上...
-
エクセルで、チェックボックス...
-
エクセルの複数シートにあるデ...
-
エクセルで横並びの複数データ...
-
条件付きのMEDIANとAVERAGEにつ...
-
データを別シートに抽出してリ...
-
SUMPRODUCTにて別シートのデー...
-
Excel VBA ピボットテーブルに...
-
エクセルでIPマッピング表を作る
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字の色も参照 VLOOKUP
-
ExcelのVlookup関数の制限について
-
エクセルの保護で、列の表示や...
-
VBAで繰り返しコピーしながら下...
-
Excel の複数シートの列幅を同...
-
Excel複数シートにあるデータを...
-
エクセルの列の限界は255列以上...
-
【条件付き書式】countifsで複...
-
エクセル マクロ 標準モジュー...
-
Excelでの並べ替えを全シートま...
-
SUMPRODUCTにて別シートのデー...
-
エクセルで、チェックボックス...
-
スプレッドシートでindexとIMPO...
-
VLOOKアップ関数の結果の...
-
Excel VBA ピボットテーブルに...
-
エクセルで横並びの複数データ...
-
Excelに自動で行の増減をしたい...
-
【VBA】ピボットテーブルを既存...
-
【VBA】複数のシートの指定した...
-
オートフィルタ使用時にCOUNTIF...
おすすめ情報