• 締切済み

エクセル2007のマクロで検索

マクロ初心者です。 どうぞよろしくお願いします。 sheet1のB1セルに都道府県名を入力すると、sheet2にある市町村名を抽出して、sheet1のB列(B3以降)に 反映したいのですが、どうぞご教授下さい。 (1)sheet1のB1セルに都道府県(例えば沖縄)を入力 (2)sheet1の適当な場所に『検索』ボタンを配置して、このボタンを押すと検索開始 (3)sheet2を検索して、ヒットした列の値(市町村)とセルの色をsheet1のB列に反映  この時、ヒットした列(都道府県)の値(市町村)の数はそれぞれ違うので、フレキシブルに反映 <sheet1>  B1 ⇒ 都道府県入力欄  B列(B3以降) ⇒ sheet2の値(市町村)を反映(都道府県により値の数は違います) <sheet2>  B2⇒東京都...............C2⇒沖縄県.............D2⇒埼玉県  B3⇒港区(セル色=青)......C3⇒那覇(セル色=灰)....D3⇒蕨(セル色=橙)  B4⇒江東区(セル色=黄)....C4⇒豊見城(セル色=黄). D4⇒草加(セル色=赤)  B5⇒江戸川区(セル色=緑)..C5⇒東風平(セル色=青)..D5⇒川越(セル色=緑)  B6⇒品川区(セル色=橙)....C6⇒空欄...............D6⇒大宮(セル色=紫)  B7⇒渋谷区(セル色=紫)....C7⇒空欄...............D7⇒空欄 【例】  sheet1のB1セルに[沖縄]と入力して『検索』ボタンを押下すると、sheet1に以下のように値が返る B3⇒那覇(セル色=灰) B4⇒豊見城(セル色=黄) B5⇒東風平(セル色=青) 宜しくお願いします。

みんなの回答

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

Findメソッドでのデータ検索 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_find.html#find シート2で見つかったセルから、下に向かってデータのある範囲を取得し、 その範囲をシート1にコピペする。 と言うのでは如何でしょうか。

関連するQ&A

  • エクセル2000 ピボットテーブル

    御世話になります。 エクセルにAシートをがあります。  A         B         C       D  1氏名     郵便番号 2氏名     郵便番号 3 4 Bシートがあります。  A         B         C       D 1郵便番号   都道府県    市町村 2郵便番号   都道府県    市町村 3郵便番号   都道府県    市町村 4郵便番号   都道府県    市町村            ・            ・            ・            ・ ここで行いたいことは、AシートのB列に郵便番号を入力すると 自動的にC列に都道府県、D列に市町村が入力をするようにしたいのです。 (Bシートから整合する郵便番号の行のB列、C列のデーターを取得する) 確かピボットテーブル使用すると出来るとの記憶があるのですが・・・ いまいち使い方がわかりません。これができると大変便利ですので お願い致します。

  • Excel マクロでの検索

    大量のデータ(約40000件)をDB(約3000件)から検索し該当する値を返す作業をしています。 マクロを今日初めて組んだのですが、うまく行きません。 だれか教えてください。 例:※同Sheet内での作業です。 DB(列1・2)     データ(列3・4)※ランダムに並んでます。   1  2      3     4 1 a  A      c   Cを返したい(cを1列より検索し2列の値を返す) 2 b  B      e   Eを返したい(eを1列より検索し2列の値を返す) 3 c  C      d   Dを返したい(dを1列より検索し2列の値を返す) 4 d  D      d   Dを返したい(dを1列より検索し2列の値を返す) 5 e  E      h   Hを返したい(hを1列より検索し2列の値を返す) 6 f  F      @   @が1列に無い場合は空欄でよい ・  ・ ・      ・     ・ ・  ・ ・      ・     ・ 今日、私は4列のワードを変数とし、1列より検索する方法をとりました。(Loopで組みました) Find.で組むと、不要なワードまで検索してしまう状況です。 例:aaaaで検索→aaaaaaがhitしてしまう。 同一ワードで検索する方法も試したのですが、エラーが出てしまいます。 自分なりにFindNextなども試してみましたが、無限Loopになってしまいます。 Loopを使わなくてもいいので、方法を教えてください。 本来自力で調べるべきですが、急ぎの仕事な為、ご協力ねがいます。

  • エクセルのマクロの組み方

    マクロの初心者です。エクセルのマクロを組んでいるのですが,壁にぶち当たってしまいました。次のようにしたいのですが。 たとえば,A1のセルに「りんご」B1に「割引(1)」C1に「割引(2)」が入っている場合にはD1のセルに200を返す。A1が「りんご」でB1が空欄,C1が「割引(2)」ならD1に230を返す,A1が「みかん」でB1,C1が空欄ならD1に150を返す,のようにいくつかのセルの入力内容によって特定のセル(この場合はD1)に返す値を変えるようなマクロってありますでしょうか。 Selection.Replaceのようなものを使おうと思ったのですが,見当違いでしょうか。 ご指導をお願いします。

  • エクセルの使い方で困っています

                   A   B  C   D     1   a   b   c  空欄 上記のように1行目のA列にa, B列にb, C列にcというある数字が存在するときに、 aが正の値のときにD列の空欄のセルに値bを、 aがそれ以外(0か負)の値のときにD列の空欄のセルに値cを表示させたいとき、 どのように関数などを設定すればよいでしょうか? エクセル初心者なので、このような条件付き抽出の方法がよく分かりません。 よろしくお願いします。

  • エクセル”検索条件はセル内のあいまい値”

    どうにも検討がつかず調べても対応したものができないのでお力添え願います。 D列に”A”と入力し、C列へ「D列のセル値が含まれた場合C値からB値をマイナスし それ以外は上のセル値を反映させる」としたいのですがどうするのがいいでしょうか。 直接値を指定してあいまい検索は『=IF(COUNTIF($A2,"*A*"),C1-$B2,C1)』でできたのですが この "*A*" 部分を”B”というときもあるのでD列のセル値であいまい検索としたいです。 A列の値は以下のように”A”の後ろに複数の数字がつくことがあります。 A列 A2 A3 B4 B3 B4 A2 A4

  • Excelの関数またはマクロを教えて下さい。

    Exsel2000の関数で、現在以下の関数まで出来たのですが、これを応用して検索値「A1」を2つのセル「A1&B1」にしたいのですが、どうすればよいのでしょうか?どなたか方法を教えて下さい。 =VLOOKUP(A1,Sheet1!$A$1:$E$2000,4) 上記の関数から判るように、これは 例えばSheet2のC1のセルにこの式を入れる場合、A1と同じ内容の値を、Sheet1のA列から検索して、そして同じ行のSheet1のD列の値をSheet2のC1のセルに返すという関数です。 これを応用して、「A1と同じ内容…のA1を、A1&B1の2つが一致するセルを検索して、同じ列のSheet1のD列の値をSheet2のC1のセルに返すという関数にしたいのです。 どなたかおわかりになる方がおりました宜しくお願いいたします。 また、マクロを使う方法でも良いのですが、当方マクロは詳しくないので出来るだけ判りやすくお願いいたします。

  • EXCELのマクロで。。。

    シートAのセルC2の値(数字)を シートBのE、F、Gの各列のうち空いている一番左のセルで、かつ、D列に何か書いてある一番下の行のセル に転記したいです。 たとえば、シートBが図のような場合にはF28です。これが毎回、変化します。 マクロの記述を教えて下さい。よろしくお願い致します。

  • エクセルのマクロについて

    QNo.3421130で質問させて頂いた件の続きなのですが 入力シート(1)のA1に入力された値を、シート2のB1に表示(つまりB列の同じ行数のセルに表示)するというマクロをお教え頂き、早速実践してみましたが、入力シートA1に入っている値が入力シートA10から算出された値(例:A11に日付の2007/10/18と入っていて、A10にはMONTH関数で10だけを抽出している。そのA10の値10をA1が参照している状態やIF関数で反映された値等)がシート2に表示されません。 また本マクロは入力シート(1)とシート2の同じ行列のセルの表示しか出来ませんが、たとえば入力シート(1)のA2セルの値をシート2のB4に表示(任意で表示位置を変更する方法、シート2の反映セルを下へずらす等)が分りません。 以下、お教え頂いたマクロです。 Private Sub Worksheet_Change(ByVal Target As Range)  If Target.Column = 1 Then    Sheets("Sheet2").Cells(Target.Row, "B").Value = Target.Value  End If End Sub 続きの質問であることと、説明が分りにくく大変申し訳ありません。 非常に困っております。よろしくお願いします。

  • Excel 2007 マクロ 表の集計について

    Excel 2007 マクロ 表の集計について 2つのシート(Sheet1とSheet2)の情報を集計して Sheet3に反映するマクロを考えています。 (1)Sheet1のC列、D列、E列とSheet2のC列が空欄の場合は  Sheet3に反映しません。 (2)Sheet1のC列、D列、E列とSheet2のC列のいずれかに数値が  入っている場合にはSheet3に行を反映します。  ※Sheet3に反映する際に、Sheet1とSheet2のキー(A列)は  反映しません。  各Sheetの表は画像を添付します。  どのようなマクロを作成すればよろしいでしょうか。  マクロの超初心者です。  マクロのサンプルをご紹介頂けますでしょうか。

  • エクセルの検索関数。

    こんにちわ。 sheet1に、 A B C 1 M 赤 10M 2 M 青 15M 3 M 黄 13M 4 C 赤 15M 5 C 青 18M 6 C 黄 13M        ・        ・        ・ と言うデータが入っているとします。 sheet2には A B C D 1 M 黄 20 2 C 青 30 3 M 赤 25 4 C 赤 28 5 C 青 21 6 C 黄 15       ・       ・       ・ と言う表が入っていて Cの列にそれぞれの値、 たとえばMの黄は「13M」、Cの赤は「15M」と言うように抽出し Dの列の値を掛けたものの値を表示したいのです。 どうしても関数を上手くつなげる事が出来ませんし、 VLOOKUPを使おうとしても上手く抽出が出来ません。 どなたか教えてください。 よろしくお願いいたします。