- ベストアンサー
エクセルのマクロで検索機能を使いたいのですが
お尋ねします。 エクセルのブックにsheet1とsheet2のシートがあります。 sheet1には、A1列料理名、B1列野菜、C1列和洋中の項目が入っており、値は、2行目から入っています。 sheet1のB列には、複数の野菜が入っている場合もあります。 sheet2には、A1列番号、B1列野菜(1種類しか入っていません)の項目があります。 sheet2の1行目は項目名で、2行目からA2が1、B2がナスというように B2列は、十数行あり、sheet2のB行の野菜を選択し、sheet1のB列を検索し、ヒットすれば、D2にヒットした野菜を記入します。 それを繰り返し、sheet2の野菜名を選択し、sheet1の料理名に該当の野菜が含まれるかを記載したいのですが、マクロの記述をどのようにすればいいでしょうか? よろしくお願いします。 sheet1 A B C D E ハンバーグ タマネギ 洋 タマネギ 卵焼き 和 ギョウザ 白菜、にんにく 中 白菜 にんにく sheet2 A B 1 ナス 2 タマネギ 3 白菜 4 にんにく 5 キャベツ 6 人参 sheet1のD列から入っている野菜をD列、E列、F列とそれぞれ 野菜名を入れていきます。 すみませんが、お助けください。
- みんなの回答 (2)
- 専門家の回答
お礼
早々にご教授頂きまして、ありがとうございます。 >sheet2のB行の野菜を選択し、sheet1のB列を検索し、ヒットすれば、D2にヒットした野菜を記入します とは「sheet1のB列の値にsheet2のB行に記入した材料があれば、Sheet1のD列から右方向に材料名を転記する」ということでよいですか →そうしたいのです。 FINDを使った検索を考えていたのですが、 If InStr(Sheets("Sheet1").Cells(idx1, "B").Value, Sheets("sheet2").Cells(idx2, "B").Value) > 0 Then Sheets("Sheet1").Cells(idx1, ptr).Value = Sheets("sheet2").Cells(idx2, "B").Value の部分で、ヒットさせるのでしょうか?