• ベストアンサー

検索の実行で、ヒットした行のA列の番号を、セルB3に自動入力するマクロ

検索の実行で、ヒットした行のA列の番号を、セルB3に自動入力するマクロを教えてください。 エクセルの6行目から約19000行目まで、A列には1からの番号、B列に薬名、C列に剤形、D列にコードが入力されている薬台帳があるのですが、この台帳から薬名を検索して、最初にヒットしたA列の番号をセルB3に表示したいのです。 どなたかよろしくお願いします。

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

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.3

>標準モジュールに貼り付けたのですが、動いてくれません。 動作しないのは、まるまる提示のコードを実行しようとしているか、あなたの質問に不備があるか、です。 当然のことながら、「What:="薬名"」の"薬名"の部分は検索したい薬名に正確に修正しないとダメです。 それでも動作しないなら、質問に記載されていない事項があるためです。 たとえば、新規ブックに、A6:A10に1から順に番号を振り、B10にでも「薬名」と入れて、提示したコードを貼り付け実行すれば、B3に5と表示されます。やりたいことと違う場合は再度質問を読み直されることをお勧めします。

hijtxa
質問者

お礼

出来ました。 はい、言われるように簡単にそのままの実行でした。 二度ものご指導ありがとうございました。 また、よろしくお願いいたします。

その他の回答 (3)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

薬名がA3にあるとして B3=IF(COUNTIF($B$6:$B$19000,A3),INDIRECT("A"&MATCH(A3,$B$6:$B$19000,0)),"") または B3=IF(COUNTIF($B$6:$B$19000,A3),INDEX($A$6:$A$19000,MATCH(A3,$B$6:$B$19000,0)),"")

  • seastar3
  • ベストアンサー率69% (99/142)
回答No.2

セルB3に以下のような関数を埋め込めばできるでしょう。 =Index($A$6:$D$19000,Match("薬名",$B$6:$B$19000)+5,1)

  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

以下はB列の「薬名」で検索してA列の数字をB3に表示します。 Sub macro() Dim R As Range Set R = Range("B6:B19000").Find(What:="薬名", LookAt:=xlWhole) If Not R Is Nothing Then Range("B3").Value = R.Offset(, -1).Value End If End Sub

hijtxa
質問者

補足

早速、ありがとうございます。 標準モジュールに貼り付けたのですが、動いてくれません。 エクセルは2003を使用しています。 ご教示願います。

関連するQ&A