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)
-
EXCEL:複数シートから特定行を一覧化したい
その他(Microsoft Office)
-
-
4
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
5
マクロでの全シート内検索
Excel(エクセル)
-
6
Exel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について
Visual Basic(VBA)
-
7
VBAを使って複数のシートから抽出する方法
Visual Basic(VBA)
-
8
EXCELマクロで全シート対象の検索マクロを教えて
Excel(エクセル)
-
9
Excel内での検索結果をシートに出力したい
Excel(エクセル)
-
10
Excel VBAでの全ワークシート検索について
Visual Basic(VBA)
-
11
エクセルVBA 別ブックの複数シートの参照について
Excel(エクセル)
-
12
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
13
VBA 複数あるシートから複数条件に一致する値を別シートに抽出して値貼り付けしたい
Excel(エクセル)
-
14
Excel マクロ VBA プロシージャが大きすぎます のエラー対処方法
Visual Basic(VBA)
-
15
VBAを使って検索したセルをコピーして別の場所に貼り付ける。
Visual Basic(VBA)
-
16
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
17
複数条件が一致で別シートに転記【エクセルVBA】
Excel(エクセル)
-
18
VBAで検索して、行をコピー&追加したい
Excel(エクセル)
-
19
VBA 値と一致した行の一部の列のデータを転記について教えてください
Visual Basic(VBA)
-
20
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
下記マクロでMsgBox "空白です...
-
在庫管理表に使うエクセルの関...
-
エクセルでバーコード作成し使...
-
【マクロ】for next構文について
-
ユーザー定義関数をアドイン登...
-
職場の人から聞かれており、こ...
-
PDFの請求明細をエクセルにしたい
-
エクセルで表
-
Excel関数-文字列で自動作成さ...
-
Microsoft Officeの中古は信用...
-
Excelデータをコピペして、ペー...
-
Excelで50個のセルに同じ文字を...
-
エクセルで会社の従業員のデー...
-
エクセルの関数について教えて...
-
エクセルの表で1年間の曜日を...
-
スプレッドシート、Excelでの数...
-
Excelで、項目の種類ごとにカウ...
-
「問題が発生しました」ですと?
-
LOOKUP関数を使えばいいのでし...
-
Excel:一部のフォントでセルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報