【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。
VBA初心者です。
現在契約書を作成しており、エクセルにまとめた顧客データを契約書フォーマットへ転記する作業をVBAで行いたいと思っているのですが、どうしてもデバッグを解消できない項目があり、質問させてください。
顧客データが2シートあり、それぞれ別の顧客データが並んでいます。軸とするデータ、sheet1のC列の値(No.)とsheet2のB列の値(No.)を比較し、sheet2のB列に同じ値があればその横のC列の値(商品名)をブック2(契約書)のD11に転記したいです。
また、sheet1のC列の値がsheet2のB列に存在しない時は、Book2のD11には"ー"が表示されるようにしたいです。
尚、契約書は顧客ごとに作成、PDFの作成まで自動化する予定で構築しており、No.を軸とした検索から商品名の転記までをループ化したいです。
どのようなVBAを記述すれば実現可能かご教示いただけますでしょうか。
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
こんにちは、
なんか、条件などおかしいのですけれど
まあ、構築中のサンプルとして、、、コードを書きましたので
参考になればと思います。
Book2の画像ではC列となっていますのでC列12行より
(複数商品がヒットした場合を想定)
下に商品名、D列12行目より下に№を出力します
出来るだけ纏めておきましたので、必要に応じて変更してください。
.Cells(12 + n, "C").Resize(, 2).Value = getRng.Resize(, 2).Value
みたいにも書けるかと思いますが、順番がsheet2の順番になるので
分けています。
抜出順位は顧客データsheet1の順位となります
取敢えず、Book2は開いている事
Sub test()
Dim 顧客データBK As Workbook, 契約書BK As Workbook
Dim cRng As Range, bRng As Range
Dim getRng As Range, r As Range
Dim n As Long
Set 顧客データBK = ThisWorkbook
Set 契約書BK = Workbooks("Book2.xlsx")
With 顧客データBK
Set cRng = .Worksheets("sheet1").Range("C2", .Worksheets("sheet1").Cells(Rows.Count, "C").End(xlUp))
Set bRng = .Worksheets("sheet2").Range("B2", .Worksheets("sheet2").Cells(Rows.Count, "B").End(xlUp))
End With
n = 0
For Each r In cRng
Set getRng = bRng.Find(What:=r.Text, LookIn:=xlValues, LookAt:=xlWhole)
If Not getRng Is Nothing Then
With 契約書BK.Worksheets("sheet1")
.Cells(12 + n, "C").Value = getRng.Offset(, 1).Value
.Cells(12 + n, "D").Value = getRng.Value
End With
n = n + 1
End If
Next
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- Excel(エクセル) VBAで、シート間の転記するコードを教えてください。 4 2023/03/26 10:43
- Excel(エクセル) Excelで、別シートの表のステータスに伴った動的な自動転記をしたいです。 2 2023/06/14 15:56
- Visual Basic(VBA) Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。 2 2023/07/14 14:06
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける (再質問) 4 2022/09/14 22:51
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
このQ&Aを見た人はこんなQ&Aも見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
秘密基地、どこに作った?
小さい頃、1度は誰もが作ったであろう秘密基地。 大人の今だからこそ言える、あなたの秘密基地の場所を教えてください!
-
「覚え間違い」を教えてください!
私はかなり長いこと「大団円」ということばを、たくさんの団員が祝ってくれるイメージで「大円団」だと間違えて覚えていました。
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
好きな和訳タイトルを教えてください
洋書・洋画の素敵な和訳タイトルをたくさん知りたいです!【例】 『Wuthering Heights』→『嵐が丘』
-
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
【VBA】元のシート内の文字列を別シートと比較し、一致したら元のシートの別のセルへ転記する方法。
Excel(エクセル)
-
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
-
4
VBA 値と一致した行の一部の列のデータを転記について教えてください
Visual Basic(VBA)
-
5
【VBA】指定した検索条件に一致したら別シートに転記したい
Visual Basic(VBA)
-
6
VBA 列全体を別シートの列と比較し、同じ値がある行の、右端に値をコピーする方法について
Excel(エクセル)
-
7
Excelにて、シート間で、データーを比較して、一致したら別シートへ転記するコードを教えてください。
Microsoft ASP
-
8
完全一致したら代入するマクロを教えてください
Excel(エクセル)
-
9
VBA 別ブックから条件に合うものを転記したいです
Visual Basic(VBA)
-
10
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
11
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
12
VBAで別ブックの列を検索し、該当があれば行ごと新規ブックにコピーしたい。
Excel(エクセル)
-
13
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
14
ある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?
Excel(エクセル)
-
15
Excel マクロ VBA 別シートのセルを検索し、該当するセルの右にあるセルを入力させる方法 s
Visual Basic(VBA)
-
16
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
17
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
18
別のシートから値を取得するとき
Visual Basic(VBA)
-
19
VBAで条件に一致するセルの隣の値をまとめる方法
Excel(エクセル)
-
20
excel2010 マクロで複数シート検索し、一致した行をコピーしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
Cellsのかっこの中はどっちが行...
-
Worksheets メソッドは失敗しま...
-
vba 2つの条件が一致したら...
-
URLのリンク切れをマクロを使っ...
-
B列の最終行までA列をオート...
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
targetをA列のセルに限定するに...
-
VBAを使って検索したセルをコピ...
-
VBAのFind関数で結合セルを検索...
-
Changeイベントでの複数セルの...
-
VBAで、特定の文字より後を削除...
-
VBAコンボボックスで選択した値...
-
rowsとcolsの意味
-
期限を超えた日付に警告のメッ...
-
マクロ 最終列をコピーして最終...
-
データグリッドビューの一番最...
-
VBAで指定範囲内の空白セルを左...
-
ExcelVBAで配列2つを結合させ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
B列の最終行までA列をオート...
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
Cellsのかっこの中はどっちが行...
-
URLのリンク切れをマクロを使っ...
-
vba 2つの条件が一致したら...
-
IIF関数の使い方
-
【Excel VBA】 B列に特定の文字...
-
VBAを使って検索したセルをコピ...
-
rowsとcolsの意味
-
文字列の結合を空白行まで実行
-
VBAのFind関数で結合セルを検索...
-
【VBA】2つのシートの値を比較...
-
VBAコンボボックスで選択した値...
-
データグリッドビューの一番最...
-
セルに値が入っていた時の処理
-
Changeイベントでの複数セルの...
-
VBAで、特定の文字より後を削除...
-
VBAで指定範囲内の空白セルを左...
-
マクロ 最終列をコピーして最終...
おすすめ情報