
excel2010 マクロで下記のようなことをしたいのですが
どのようにしたら良いか教えていただけないでしょうか?
①sheet1のA1を検索用の欄とする
②sheet2・sheet3・sheet4にはそれぞれデータを入力しておく
(A列~H列
まで使用し、行数は多くても500程度)
③sheet1のA1に検索したい単語を入力することで、sheet2・sheet3・sheet4全てのA列を検索する
④一致(部分一致)したら、その行をsheet1の10行目以降にコピーする
なお複数ヒットすると思われるため、複数ヒットした場合には行を追加しながらコピーしたいです。
マクロでは無理なのでしょうか?
どのように書いたらよいか、参考になるHPでも助かりますので、教えていただきたく
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんなのどうでしょうか。
実行後は戻せませんので、元データはバックアップのうえ、お試しください。
検索ワードは、Sheet1のA1セルとしています。
-------------------------------------------------------------------------
Sub AAA()
Dim r As Long, k As Integer
Dim Ws1 As Worksheet
Dim Moji As String, Rng As Range, Lstrow As Long
Set Ws1 = Worksheets(1)
With Ws1
.Range(.Rows(10), .Rows(Rows.Count)).ClearContents
End With
Moji = Ws1.Cells(1, 1).Value
For k = 2 To 4
r = 2
With Worksheets(k)
Do While .Cells(r, 1).Value <> ""
If InStr(.Cells(r, 1), Moji) <> 0 Then
Set Rng = .Range(.Cells(r, 1), .Cells(r, 8))
Rng.Copy
Lstrow = Ws1.Cells(Rows.Count, 1).End(xlUp).Row + 1
If Lstrow < 10 Then Lstrow = 10
Ws1.Cells(Lstrow, 1).PasteSpecial Paste:=xlPasteAll
End If
r = r + 1
Loop
End With
Next k
Ws1.Cells(1, 1).Select
Application.CutCopyMode = False
Set Rng = Nothing
Set Ws1 = Nothing
MsgBox "End."
End Sub
----------------------------------------------------------------------
No.2
- 回答日時:
こんばんは!
Sheet2~Sheet4の1行目は項目行で、データは2行目以降にあるという前提です。
まず↓のコードをSheet1のシートモジュールにしてください。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lastRow As Long
With Target
If .Address = "$A$1" Then
'▼9行目が項目行になっていない場合、ストッパーの役目(念のため)
If .Value <> "" Then
If Range("A9") = "" Then
Range("A9") = "ダミー"
End If
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
If lastRow > 9 Then
Range(Cells(10, "A"), Cells(lastRow, "H")).Clear
End If
Call Sample1
End If
End If
End With
End Sub
次に↓のコードを標準モジュールにしてください。
Sub Sample1()
Dim k As Long, lastRow As Long, wS As Worksheet
With Worksheets("Sheet1")
For k = 2 To 4 '←Sheet2~Sheet4
Set wS = Worksheets(k)
lastRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
wS.Range("A1").AutoFilter field:=1, Criteria1:="*" & .Range("A1") & "*"
If wS.Cells(Rows.Count, "A").End(xlUp).Row > 1 Then
Range(wS.Cells(2, "A"), wS.Cells(lastRow, "H")).SpecialCells(xlCellTypeVisible).Copy .Cells(Rows.Count, "A").End(xlUp).Offset(1)
End If
wS.AutoFilterMode = False
Next k
If .Range("A9") = "ダミー" Then
.Range("A9").ClearContents
End If
End With
End Sub
※ Sheet1のA1セルにデータを入力してみてください。
※ A1セル変更のたびにマクロが実行されます。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Visual Basic(VBA) VBA For Each 〜 複数条件について 3 2022/10/20 20:05
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Visual Basic(VBA) VBA 別sheetからの転記なのですが 2 2023/05/22 15:55
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルのマクロで全シートを検索したい
Excel(エクセル)
-
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
VBA 複数あるシートから複数条件に一致する値を別シートに抽出して値貼り付けしたい
Excel(エクセル)
-
-
4
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
5
【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。 VB
Visual Basic(VBA)
-
6
EXCEL:複数シートから特定行を一覧化したい
その他(Microsoft Office)
-
7
Excel 複数シートから条件にあったデータを抽出したい
Excel(エクセル)
-
8
EXCEL VBAで複数シートから該当列のみを別シート列方向に順番に貼り付け
Visual Basic(VBA)
-
9
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
10
VBA 別ブックから条件に合うものを転記したいです
Visual Basic(VBA)
-
11
EXCELマクロで全シート対象の検索マクロを教えて
Excel(エクセル)
-
12
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
13
セルの値と同じ名前のシートをアクティブにするには?
Excel(エクセル)
-
14
エクセル VBA find は別シートを検索できますでしょうか?
Excel(エクセル)
-
15
他シートのある列を検索して一致したらセルに色をつける方法
会計ソフト・業務用ソフト
-
16
ある条件を満たすセルに対応する行のセル内容をコピーして・・
Visual Basic(VBA)
-
17
【VBA】全ての複数シートから指定した列をコピー、新しいブックの1シートに抽出する
Visual Basic(VBA)
-
18
VBA 値と一致した行の一部の列のデータを転記について教えてください
Visual Basic(VBA)
-
19
特定の文字列が含まれている行のみ抜き出して、別シートに書き出す方法(Excel 2007)
Excel(エクセル)
-
20
【VBA】特定の文字が入っている行の一部を抽出して別シートコピーするには
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
9月17日でサービス終了らし...
-
【マクロ】【配列】3つのシー...
-
エクセルのVBAで集計をしたい
-
vba テキストボックスとリフト...
-
エクセル ドロップダウンリスト...
-
【マクロ】列を折りたたみ非表...
-
【関数】同じ関数なのに、エラ...
-
ページが変なふうに切れる
-
【マクロ】アクティブセルの時...
-
【条件付き書式】シートの中で...
-
【マクロ】オートフィルターの...
-
Office2021のエクセルで米国株...
-
【マクロ】3行に上から下に並...
-
【マクロ】EXCELで読込したCSV...
-
エクセルの循環参照、?
-
【マクロ】A列にある、日付(本...
-
Excelファイルを開くと私だけVA...
-
【エクセル】期限アラートについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報