
こんにちは。いつもお世話になっております。
VBAを勉強しているのですが、まだまだわからないことだらけでして教えていただきたいです。
他のかたの質問や回答を見ているのですが、ぴたっとハマるものがなく。
どなたか教えて頂けると嬉しいです。どうぞよろしくお願いいたします。
【やりたいこと】
・月次報告書のB2に対象月を入力し該当の月別シートを検索したい
・月別シートの該当商品カテゴリがある行をピックアップして月次報告書シートに貼り付けたい
【条件】
貼り付け元の月別シート
商品項目列:I列
該当商品名:ゼリー パイ デコレーション の3種類
貼り付けたい項目:B(ID),C(作業内容),E(工数),F(依頼日),G,H 列の6項目
貼り付け先の月次報告シート
B3:G3にタイトルが入っており、4行目以降に転記をしていきたい。

No.1ベストアンサー
- 回答日時:
こんにちは
不明点は適当ですが、こんな感じでしょうか?
Sub Q12864040()
Dim sht As Worksheet, sname
Dim tmp As String
Dim rw As Long, n As Long
sname = Split("ゼリー,パイ,デコレーション", ",")
With Worksheets("月次報告書")
tmp = .Range("B1").Text
For Each sht In Worksheets
If sht.Name = tmp Then Exit For
Next sht
If sht Is Nothing Then MsgBox "指定シートは存在しません": Exit Sub
.Cells(4, 2).Resize(Rows.Count - 3, 6).ClearContents
n = 4
For rw = 2 To sht.Cells(Rows.Count, 9).End(xlUp).Row
tmp = sht.Cells(rw, 9).Text
If tmp = sname(0) Or tmp = sname(1) Or tmp = sname(2) Then
.Cells(n, 2).Resize(, 2).Value = sht.Cells(rw, 2).Resize(, 2).Value
.Cells(n, 4).Resize(, 4).Value = sht.Cells(rw, 5).Resize(, 4).Value
n = n + 1
End If
Next rw
End With
End Sub
ありがとうございます!!
コピっただけで出来てしまいました。
中身でまだ理解できていない部分があるので調べてみようと思います!
本当にありがとうございました。
No.2
- 回答日時:
こんばんは
>VBAを勉強しているのですが
すでに処理コードが提示されていますが、
条件の作り方の参考の為、少し違う方法も
該当シートが無い場合処理されません
Sub test()
Dim ws As Worksheet
Dim V(), r
Dim n As Long
For Each ws In Worksheets
If ws.Name = Worksheets("月次報告書").Range("B1").Text Then
For Each r In Range(ws.Cells(2, "I"), ws.Cells(Rows.Count, "I").End(xlUp))
If r.Value <> "" And "$ゼリー$パイ$デコレーション" Like "*" & r.Value & "*" Then
ReDim Preserve V(6, n)
V(0, n) = r.Offset(, -7)
V(1, n) = r.Offset(, -6)
V(2, n) = r.Offset(, -4)
V(3, n) = r.Offset(, -3)
V(4, n) = r.Offset(, -2)
V(5, n) = r.Offset(, -1)
n = n + 1
End If
Next
Worksheets("月次報告書") _
.Cells(Rows.Count, 2).End(xlUp).Offset(1).Resize(UBound(V, 2) + 1, UBound(V, 1)) _
= WorksheetFunction.Transpose(V)
Exit For
End If
Next
End Sub
$ゼリー$パイ$デコレーションの$は単なるシンボルです
無くても良いですが、この方法( If Like)ですとゼリーパイなどのキーワードでも抽出してしまいますので一応$を付けました
r.Value <> "" は Like の弱点です (空白の場合* & "" & * となり
すべてがTrueとなる)
回答が出ているので参考程度で
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 【条件付き書式】countifsで複数条件を満たしたセルを赤くする方法
- 【困っています】VBA 追加処理の記述を教えてください。
- Excelで該当しない項目(#N/Aの商品名)を簡単に表示・抽出させる方法についてです
- VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。
- VBAを使いシート間で貼り付け
- 【困っています2】VBA 追加処理の記述を教えてください。
- VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お
- エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい
- EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約
- vba シートの並び替え
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
VBA 値と一致した行の一部の列のデータを転記について教えてください
Visual Basic(VBA)
-
複数条件が一致で別シートに転記【エクセルVBA】
Excel(エクセル)
-
-
4
VBA 条件が一致したら別シートに転記し、計算させたい
Visual Basic(VBA)
-
5
VBA シート名が一致した場合の転記内容について
Visual Basic(VBA)
-
6
【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。 VB
Visual Basic(VBA)
-
7
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
8
VBAを使って検索したセルをコピーして別の場所に貼り付ける。
Visual Basic(VBA)
-
9
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
10
VBA別シートの最終行の次行へ転記したい。
Visual Basic(VBA)
-
11
別のシートから値を取得するとき
Visual Basic(VBA)
-
12
Exel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について
Visual Basic(VBA)
-
13
【VBA】特定の文字が入っている行の一部を抽出して別シートコピーするには
Visual Basic(VBA)
-
14
VBA セルの値と同じ名前のシートにデータを補填するやり方を教えてください エクセルのブックがありま
Excel(エクセル)
-
15
別シートの最終行に貼り付けするマクロを教えてください。 シートYのE3からE15までをコピー シート
Excel(エクセル)
-
16
VBAで空白セルにのみ数値を代入する方法
Excel(エクセル)
-
17
VBA 条件が一致した場合のみコピーする
その他(ビジネス・キャリア)
-
18
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
19
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
20
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
ブック名、シート名を他のモジ...
-
特定の文字を含むシートだけマ...
-
XL:BeforeDoubleClickが動かない
-
Excel チェックボックスにチェ...
-
別のシートを参照して計算する方法
-
【Excel VBA】Worksheets().Act...
-
ユーザーフォームに入力したデ...
-
excelのマクロで該当処理できな...
-
Excel VBA リンク先をシート...
-
【VBA】指定した検索条件に一致...
-
Excelマクロのエラーを解決した...
-
【ExcelVBA】全シートのセルの...
-
エクセル・マクロ シートの非...
-
Excel VBA 複数行を数の分だけ...
-
セルの値によって、シート見出...
-
VBA 検索して一致したセル...
-
【VBA】シート名に特定文字が入...
-
実行時エラー'1004': WorkSheet...
-
VBA 存在しないシートを選...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
同じ作業を複数のシートに実行...
-
月ごとに作成している日報ファ...
-
excelのマクロで該当処理できな...
-
ブック名、シート名を他のモジ...
-
【ExcelVBA】全シートのセルの...
-
Excelの各シートを色ごとで分類...
-
実行時エラー'1004': WorkSheet...
-
特定の文字を含むシートだけマ...
-
VBA 存在しないシートを選...
-
ExcelのVBAのマクロで他のシー...
-
XL:BeforeDoubleClickが動かない
-
【Excel VBA】Worksheets().Act...
-
VBA 検索して一致したセル...
-
Excel VBA 複数行を数の分だけ...
-
Excel チェックボックスにチェ...
-
【VBA】指定した検索条件に一致...
-
Excelマクロのエラーを解決した...
-
エクセルのマクロでアクティブ...
おすすめ情報