• ベストアンサー

Excel VBA Find関数の使い方

下記のようなマクロを作りたいと思います。 <シート名:元データ> B列(商品番号)がA列(ファイル名)に含まれていれば、 A列のファイル名をC列(チェック)に転記するものです。 <シート名:完成形> やりたいことの完成形がこちらのシートです。 詳しいデータは画像データを添付しました。 Findを使用するところまでは調べたのですが、VBA初心者のため シンプルな方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

少し簡略化して、こんなカンジで。 sub macro1()  dim h as range  on error resume next  for each h in range("B2:B" & range("B65536").end(xlup).row)  h.offset(0, 1) = range("A:A").find(what:=h.value, lookin:=xlvalues, lookat:=xlpart).value  next end sub

関連するQ&A

  • エクセルVBAでのvlookup関数の使い方

    エクセルでvlook up関数を用いたVBAを書こうと思っているのですが上手くいきません。 詳しい方がいらっしゃいましたら教えて頂けませんでしょうか。 使用しているエクセルは2010です。 いろいろ調べながら書いてみたのですが、繰り返しの処理かエラー処理が悪いようでVBAを実行することが出来ませんでした。 シート1にあるコマンドボタンを押すことで別シート(シート2、3)に入力されている値をもってくるというVBAを考えています。 Sheet1(取扱商品)にはA列に商品番号、B列に商品名、C列に管理者が入力されています。 D~H列には属性1~5というヘッダーだけがあり、コマンドボタンを押すことで、別シートから商品の属性が入ります。 Sheet1(取扱商品) 商品番号 商品名 管理者 属性1 属性2 属性3 属性4 属性5 001  桜   安部 002  薔薇  安部 002  薔薇  伊藤 004  梅   上田 007  水仙  伊藤 010  牡丹  榎本 ...(以下続く) Sheet2(データベース1) 商品番号 属性1 属性4 001  A1  A4 002      B4 004  D1     008  H1  H4 ...(以下続く) Sheet3(データベース2) 商品番号 属性2 属性3 属性5 001  A2      A5 003  C1  C3  C5 004      D3 011  K1  K3 ...(以下続く) 各シートの商品番号は1対1で対応していません。 Sheet1は商品番号が重複する場合があります。Sheet2、3は重複しません。 コマンド実行後のイメージは下記のような形です。 対応する商品番号、属性がない場合はnull入るようにしたいと思っています。 Sheet1(取扱商品) 商品番号 商品名 管理者 属性1 属性2 属性3 属性4 属性5 001  桜   安部  A1  A2      A4  A5 002  薔薇  安部              B4     002  薔薇  伊藤              B4     004  梅   上田  D1      D3         007  水仙  伊藤                     010  牡丹  榎本                     ...(以下続く) 要領が得ないところがあるかと思いますが、皆様のお知恵を拝借致したく、教えて頂ければ幸いです。 どうかよろしくお願い致します。

  • ExcelのVBAについて

    ExcelのVBAについて VBA全くの初心者です。 以下のような処理を行いたいのですが、どなたかご教授をお願いします。 以下のように支店(1)~(3)のシートがあります。 1.入力シートに調べたい商品No・商品名・備考を入力する(複数行あり) 2.マクロを実行すると、商品Noを検索対象として支店(1)~(3)シートをチェックし、   一致しない行を不一致データシートに出力する もう一つ別のマクロで、 1.入力シートに調べたい商品No・商品名・備考を入力する(複数行あり) 2.マクロを実行すると、商品Noを検索対象として支店(1)~(3)シートをチェックし、、   一致する行を一致データシートに出力し、D列に対象データがあるシート名を表示する   ※可能でしたら、E列に対象データがある行番号も表示する -------------------------------- シート名:支店(1) A      B     C 商品No   商品名   備考 011    商品A   備考A 009    商品B   備考B 015    商品C   備考C -------------------------------- シート名:支店(2) A      B     C 商品No   商品名   備考 008    商品A   備考A 023    商品B   備考B 004    商品C   備考C -------------------------------- シート名:支店(3) A      B     C 商品No   商品名   備考 007    商品A   備考A 033    商品B   備考B 018    商品C   備考C -------------------------------- シート名:入力シート A      B     C 商品No   商品名   備考 ※ここに複数行入力する -------------------------------- シート名:不一致データシート A      B     C 商品No   商品名   備考 ※ここに出力される -------------------------------- シート名:一致データシート A      B     C 商品No   商品名   備考 ※ここに出力される

  • Excel マクロ データ集計

    Excel マクロ データ集計 Sheet1にある情報を集計して、集計結果をSheet2に貼り付けるマクロを考えています。 「Sheet1」のA列、B列、C列が合致した場合に同じ商品とみなします。 C列で「新鮮」とついている場合には、商品名で一致させて、Sheet2の 同じ商品名のところに記載します。 「Sheet2」に貼り付ける際、「Sheet1」のA列は不要です。 どのようなマクロを作成すればよろしいでしょうか。 画像を添付します。 「Sheet2」は完成形です。

  • Excel VBAに詳しい方教えてください。

    Excel VBAについて 下記内容をマクロを使ってできるようにしたいのですが、どなたかお力添えいただけませんか? 例えば、下記のような記載のファイルBook1があるとします。 A1セル内 名前 B1セル内 〇〇会社 C2セル内 〇〇部 D2セル内 〇〇係 この内容を別のファイルBook2へ転記したいのです。 ただし、Book2の列は下記のようになっており A列 名前(すでに入力されている) B列 会社名 C列 部 D列 課 E列 係 Book1の内容をBook2の下記の条件で正しいセルへ転記したいです。 -Book1で[部]で終わっているものはBook2のB列[部]に転記 -Book2ですでに入力されている名前の行に、Book1の情報を転記 ご協力のほど何卒よろしくお願いいたします。

  • エクセル VBAで関数

    こんばんわ。いつもお世話になっております。 エクセルでデータを加工しているのですが、関数で加工するととても遅くなってしまうので なんとかVBAで作業できないかと模索中です。 Sheet1の、A列=取引先 B列=支店名 となっており、それが3,000行ほどあります。 Sheet2も、A列=取引先 B列=支店名 となっており、 Sheet1のC列に、Sheet1のA列のB列という支店が、Sheet2にあるか確認したいのです。 現在は、Sheet1のC列に、SUMPRODUCT関数でカウントさせているのですが、大変重いです。 ほかのSheetで、VBAを使って関数のような働きをさせている部分があります(前任者作成) そのように、なんとかVBAを使用したいのですが、なかなかうまく出来ません・・・。 どうか、お力を貸してください!! うまく説明できなくて、わかりづらかったらごめんなさい。 よろしくお願いいたします。

  • エクセルでデータを蓄積するVBA

    蔵書管理用の一覧表です。 エクセルでデータ入力用のフォームは作ることができたのですがシートに転記するVBAをどのように書けばよいのか分かりません。 データは次々に増えていきます。 A列には番号を入力せずに自動的に番号が増えていくようにしたい。 3番まで入力済みのあとは、自動で「4」と番号が付与されて、下の行に転記されるようにしたい。 VBA初心者です。よろしくお願いします。 A    B      C          D 番号 分類     図書名      冊数 1   文庫本    日本の歴史   3 2   週刊誌    新潮        1 3   月刊誌    月刊ゴルフ    1

  • エクセル2つのブック列の比較 VBAや関数について

    Aと言うブックとBと言うブックがあるとして、 Aのブックは共有ファイルではなく、Zサーバー上にあるエクセルファイルです。 Aのブックに色々な人が行の挿入、商品名の書き換え等をしていて、いつ挿入されたのかが分からないため、VBAや関数を使って調べたいのですが、 Aのブックは10シートあり、サイズ別で行も並べられているため、新しい情報を特定するのが困難です。 BのブックはAと同じシート名を作り、必要箇所だけコピーしているデータです。(オリジナルブック) やりたいことは、Aのブックから探してBのブックに追加されていない情報、一致していない情報があれば、色を付けてわかりやすくするか、Bのブックの新しいシートに結果を出すようなことがしたいのですが、可能でしょうか? AのブックはA列-IC列まであるのですが、必要な部分は全シートB列(商品コード)とE列(商品名)のみです。 Bのブックには同じシート名にして、A列に商品コード、B列に商品名としております。 AのブックのB列、E列を参照して、BのブックのA列、B列になければ、結果を表示したいです。 もし出来る方法があれば、教えてほしいです。 今はシートごとに左右比較して、見ていってるのですが、10シートの中に、行数は2000行くらいあるため、それで半日おわってしまいます。 もし分かるかた、マクロを組める方がいれば教えて頂きたいです。宜しくお願い致します。

  • エクセルVBAのFindメソッドを使って・・・

    こんばんは。エクセルのVBAで教えてください。 I列で「数量」という文字を見つけて、 その(I列の)右隣(J列)の値をB2以降に、 その2つ左(G列)のレートをC2以降に、 その3つ左(F列)の、2つ上の商品名をA2以降に 順に書き出していくようにしたいのですがどのようにコードを 書けばいいでしょうか? Findメソッドを使ってできそうだと考えたのですが、その先が さっぱりわかりませんが、なんとか形にしたいので質問させていただ きます。よろしくお願いします。

  • 急!!Excel VBA 転記マクロを教えて下さい

    Excel VBA超初心者です、 急ぎ作らなければならない資料があり、ご助力願います。 次の様な転記するアクションをコマンドボタンに設定したいです。 Sheet1の列A(先頭セルA2)に入力したデータを、 追加した(入力間違い等を除き、保存した)データ分だけ Sheet2の列B(先頭セルB3)の最終行から転記させていく。 列Aに入力したデータは、並び替えをするので (この分は、今回のVBAに含みません。入力・転記後、Sheet1で普通に並び替えをします。) 列Aと列Bのデータの順番が異なる。 以上です。 どうぞ宜しくお願いします。

  • VBAに関して質問です

    VBA初心者のため教えてくれますと助かります。 シート1にリストが記載されています。 チェックボックスで選択されている値を取得して(シート1のA列の商品名から)、チェックされている値のデータを転記するようなコードを作成したいと思っております。(別途シート追加する) 知識不足でうまく動きません。よろしくお願いします。

専門家に質問してみよう