• ベストアンサー

エクセル2000で教えて下さい。  

いつも お世話になっています。 例でお話させていただきます。 マクロで記述したいのですが、 SHEET1のセルA1に秋葉原A2に上野A3に秋葉と記入されています。 SHEET2のB1に秋と入力させています。 SHEET3のA1・・・に項目が一致した秋葉原 A2に秋葉と転送を 行いたいのですが、関数がわかりません。 よろしくお願いします。   

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

書き出す条件がはっきりしませんが、今は、Sheet2のB1セルとSheet1のA列の文字の先頭文字が一致すればSheet3に書き出しています。 質問の例でいえば、Sheet2のB1に『秋』と入力して、下のマクロを実行します。 Sheet2のB1セルの文字が、Sheet1のA列の文字に含まれていれば書き出すなら、  If InStr(ws1.Cells(schRow, 1), ws2.Cells(1, 2)) > 0 Then と変更します。 ここから。(標準モジュールに貼り付けます) ↓ Sub Kensaku()   Dim ws1 As Worksheet 'Sheet1   Dim ws2 As Worksheet 'Sheet2   Dim ws3 As Worksheet 'Sheet3     Set ws1 = Worksheets("Sheet1")     Set ws2 = Worksheets("Sheet2")     Set ws3 = Worksheets("Sheet3")   Dim schRow As Long '検索する行   Dim wrtRow As Long '書き出す行   schRow = 1   ws3.Columns(1).ClearContents 'シート3のA列をクリア   'シート1のA列が入力されているなら調べる   While ws1.Cells(schRow, 1) <> ""     If InStr(ws1.Cells(schRow, 1), ws2.Cells(1, 2)) = 1 Then       'シート2のB1がシート1のA列の先頭文字と一致ならシート3に書く       wrtRow = wrtRow + 1       ws3.Cells(wrtRow, 1) = ws1.Cells(schRow, 1)     End If     'シート1の次の行     schRow = schRow + 1   Wend End Sub

syusyusyusyu
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

VBAでも#1のnishi6さんのものと、感じが違うのですが 上げて見ます。VBAも(1)繰り返しロジック中心(2) エクセルの操作(メソッド)を採り入れたもの(本件) (3)関数を中心に使ったものなどが考えられます。 (テストデータ) Sheet1のA1~A11 秋葉原 上野 御徒町 秋葉 日暮里 池袋 王子 秋津 大宮 秋田 山秋 Sheet2 秋(B1セル) Sheet3のA1~A5 秋葉 秋津 秋田 山秋 秋葉原 (VBA) Sub test02() Dim a As Range b = Sheet2.Cells(1, 2) j = 1 Sheet1.Activate Set a = Sheet1.Range("A1:A11").Find(What:=b, LookIn:=xlFormulas, LookAt _ '*    :=xlPart, SearchOrder:=xlByColumns, MatchCase:= _ False) a.Activate l = a.Address ' MsgBox a p01: Sheet3.Cells(j, 1) = a 'ActiveCell j = j + 1 Set a = Sheet1.Cells.FindNext(After:=ActiveCell) If l = a.Address Then GoTo p02 ' MsgBox a a.Activate GoTo p01 p02: End Sub (注)Find(・・・・)の()内は、OKWEBで強制改行されるでしょうが、1行に続けてください。 *の行は、その上の行の右端に続けてください。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelのユーザー定義関数

    シート名の一部とセルの値が一致したらLOOKUP関数をかえす関数を作成したいのですが… 例として。。。 シート名:20020301売上表、セルA1:2002/3/1の値があります。 シート名の"01"とA2の日付"1日"が一致したら、セルA2にLookup関数をかえす関数を作成したいのですが。。。 よろしくお願いします

  • 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のセルに返すという関数にしたいのです。 どなたかおわかりになる方がおりました宜しくお願いいたします。 また、マクロを使う方法でも良いのですが、当方マクロは詳しくないので出来るだけ判りやすくお願いいたします。

  • エクセルマクロ 「101」 ボタンをおして 「102」となるマクロ?

    エクセルです。 一つのセル(A4)に「101」と書いてあります。それをVlookup関数で他のシートから一致する情報を取り出しています。次に同じセルに「102」とうつと、同じように一致する情報を取り出しています。 そこで、一回、一回、セルに102や103と打つのではなく、ボタンを押すと次の番号にうつるようなマクロを組みたいと思ってます。 ただ、101~130 次は、201~231みたいになってます。 一つのマクロでなくても良いので、よろしくお願いします。 最初は、 Range("A4").select  セルA4を選択 だと思うのですが、この次から分かりません。

  • エクセル2000で教えて下さい。

    SUMIF関数をコードで書きたいのですが できるでしょうか? 何をしたいかと言うと、シート上である条件であてはまる金額を金額欄に入力 した場合は、集計が自動的に行いたいのですが・・・文章になっていませんので 例で説明させて頂きます。 例)シートにセル項目として、種類がA1:A30         金額項目がA1:A30   テキストボックスに合計金額が4つあります。(TEXTBOX1~4) 金額欄に入力があった時に条件で種類別に合計金額のテキストボックス に転送したいのですが、   できれば、集計の再計算を行わないで、SUMIFが使用できないかな   と思いまして、(そっちのほうが簡単かな?)   他に簡単な方法があれば、教えて下さい。   なぜセルをつかわないんだと思う方もいるかもしれませんが、   かなり複雑にシートが分かれていまして、   セルの項目で使用した場合、均等な大きなで行うのはかなり困難なので   難しくなるのは承知の上よろしくお願いします。   

  • Excelでこのようなときはどんな関数にすればよいでしょうか

    同じブック内で以下のような2シートがあるときに、 (シートA)    A   B    C    1  あい  123  りんご 2  うえ  456  みかん   3  おか  789  イチゴ (シートB)    A   B    C    1  あい  123  めろん 2  えお  456  みかん   3  おか  789  イチゴ 横に並んだ3項目が同じものにだけ、(シートB)のセルに色を付けたいのです。 (上記の例だと、3行目が3項目とも一致しているということです) 色は横3つのセルにつけられなければ、A列のセルだけでも構いません。 (上記の場合、色をつけたいのはシートB「おか」のセル) 列を増やすなど、処理用のデータが必要でも非表示にすればいいので その点は構いません。 関数や条件付書式などで、なんとかなりますでしょうか?

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

    (1)のお願い! 例えば関数で =COUNTIF(A1:A10,"*") と記述すれば「A1:A10のセル範囲に文字列のセルは何個あるか」ということですが、これをマクロではどのように記述しますか?教えて下さい。 (2)のお願い! マクロを本格的に勉強したいのですが、関数については理解できてますので、関数とマクロの記述の比較が出来れば私にとって非常に便利なのですが、そのような事を記載した書籍やWebサイトはないものでしょうか?

  • Excelのシート参照をするにあたって

    あるセルに他のシートを参照して集計する関数を記述しているのですが 参照先のシートが一度消去されてしまうと参照もとのセルに記述した 参照先シート名が自動的に#REFになってしまいます。 (例:「=Sheet1!A2」と記述していて「Sheet1」を削除すると「=#REF!A2」になってしまう) この現象はどうにか防げないものでしょうか? よろしくお願いします。

  • EXCELのセルの指定方法

    ※簡単な質問かもしれませんが、自分だけで解決できませんでしたのでご存知の方、おしえてください。 ※EXCELで、マクロではなくて、セルへ入力する関数についてです。 たとえばA3のセルに 「自分のセルの一つ上のセルの値をコピーする」 と指定したい時の記述方法を教えてください。 【具体例】 A2のセルに”goo”と直接入力されている状態のとき→ A3のセルに上記の指示を記述した関数を入力すると→ A3のセルにも”goo”と表示されるようにしたい。 また、A4にも同じ記述の関数を入力しておけば→ A4にも”goo”と表示したい。。。

  • エクセルの質問です。

    シート1でセルA2の数字が1~5の場合シート2のB3に記述される シート1でセルA3の数字が6~9の場合シート3のB4に記述される このような場合どういった関数を使うのでしょうか? 何卒よろしくお願いいたします。

  • 検索の方法(エクセル マクロ)

    マクロは記録マクロしかできない超初心者です。 エクセルのsheet1のA1のセルに入っている内容(都度変更)と同一のセルをsheet2で検索し、カーソルをそこに移動させるマクロ記述をしたいのですが、どうなりますか。 記録マクロで、sheet1のA1をコピーし、sheet2に移動して検索窓で貼り付けて「次を検索」とやったのですが、記述をみるとA1の内容がそのまま記述されていて汎用性が無いようです。 よろしくお願いいたします。

専門家に質問してみよう