• ベストアンサー

検索の実行で、ヒットした行の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% (7418/18948)
回答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

  • A列にB列の空白セル以外のセルの数だけ1から番号をふりたい。

    A列にB列の空白セル以外のセルの数だけ1から番号をふりたい。 WIN7 Excel2007でマクロ作成中です。A列にB列の番号の入っているセル(空白セル以外の)の数だけ番号を入力したいのですが、下記コードで、うまく出来ません。どうしたらよろしいでしょうか。 Sub 行番号を入れる2() Dim i As Integer Dim fCnt As Long 'シートが保護されていたら保護を解除 If ActiveSheet.ProtectContents = True Then ActiveSheet.Unprotect End If fCnt = WorksheetFunction.CountA(Sheets("一覧").Columns(2)) 'COUNTA関数でB列の入力セル数を求める。 For i = 1 To fCnt Worksheets("一覧").Cells(i + 3, 1).Value = i Next i End Sub

  • Excelで、検索してヒットしたセルの隣のセルに値を入力したい

    Excelで、「検索してヒットしたセルのとなりのセルに、特定の値を 入力する」という作業をスムーズにできる方法を考えています。 具体的には在庫のチェックに使います。A列に品名が6000件ほどあって、 検索してヒットした品名の隣のセル(B列)に"●"を入力する作業です。 ただし、その隣のセル(B列)にはあらかじめ"○"が入力されています。 現在のところ、  ctrl+F で検索 → 該当するセルに"●"をペースト  で処理していますが、もっと効率的な方法をご存じないでしょうか。 少しでもマウスを動かしたりするのを減らしたいのです。 一つ考えているのは、以下のようにマクロを利用することです。 ユーザーフォーム  テキストボックス(検索する文字列の入力用)  コマンドボタン1(検索用)  コマンドボタン2(次を検索)  コマンドボタン3(前を検索)  ラベル(検索してヒットしたセルの値を確認する用)  コマンドボタン4("●"を該当セルに入力する用) ここまでたどり着いたのですが、お手上げになりました。 このような考えを実現するコードをお教えいただけないでしょうか。 あるいは、もっと楽なやり方があるということでしたら、それも お教えいただけないでしょうか。よろしくお願いします。

  • マクロを使って文字が入力されたセル数を数える

    マクロを用いて、文字が入力されたセル数をカウントしたいと考えていますがうまくいかず悩んでおります... 具体的には、セルB1からB1000にデータが入力された場合、左隣のA列に1から番号を付したいと考えています. B列が空白のままの行は、A列も空白にしておきたいです. (セルB1からB1000まで全てにデータが入力された場合、A1からA1000には1から1000までの番号が入る) また、A列に付された番号を判断し、100番毎にA列からE列までセル背景を色分けしていきたいと考えています. (B列が空白ならxlNoneでその行は無色のままにしたい) セル背景の色分けだけであればうまくいったのですが、B列の入力状況により自動でA列に番号(数字)を変化させたら思い通りに動かず困っています. ご教示、宜しくお願いします.

  • VBA 検索したセルに入力

    ExcelのVBAを使用して データの入力されたファイルに行列から検索したセルに数値を入力したいのです。 例えば、名前(行)と、日付(列) 2つの条件で、セルを検索し、該当するセルに、データ(数字とか)を 入力したいのです ------------------------------------  6/1 6/2 6/3 6/4 ・・・ a b c ・ ・ ------------------------------------ 例えば、A5に名前、B5に日付、データエリアがB10:Z20の場合 =INDEX(B10:Z20,MATCH(A5,A10:A20,0),MATCH(B5,B9:Z9,0)) で、該当するセルを探すことはできたのですが、 このセルに、データを入力したいときは、 ROWやCOLUMNで、行番号、列番号を取り出して Cellsで、入力すればいいのかな?と考えていますが もっと簡単にできるのでしょうか? (FIND関数は、使ったことがなく、どうなんだろう?と) それでいいよ とか、こっちの方が簡単 とかあれば、教えてください 

  • あるセルの値を別のセルを参照する際の行番号や列番号として使用したい

    あるセルに入っている値を別のセルを参照する際の行番号や列番号として使用したいのですが、可能でしょうか? たとえば、A1に10、A2に20と入っていたら、10行目の20列目の値を取得するようなことがしたいです。 マクロを使えばできそうですが、マクロを使わずにできる方法があれば教えてください。

  • A列の文字列によってB列への入力を変える

    こんにちは。マクロ初心者で、質問なのですが、 エクセルで、A列に入力されている文字列によって、 B列文字を自動で入力するマクロを作成したいのですが、 どのように記述すればよいでしょうか? 例: A列 |B列 |  あ | 01 |A列「あ」の場合、B列の同じ行に「01」  い | 02 |A列「い」の場合、B列の同じ行に「02」 といった感じです。 初歩的な質問で申し訳ございませんがご教授願います。

  • セル内の2行をそれぞれ別のセルにコピーするマクロ

    A列にデータが入力されていたとします。 そのデータのうち、複数のセルで改行されて2行になっています。 改行されているセルをサーチし、1行目をB列のセルに、2行目をC列のセルに分割してコピーしたいと思います。 この様な方法は、マクロで可能でしょうか。 適切な関数があれば、ご教授いただきたいと思います。

  • エクセル マクロを自動実行

    仕事で使っている書式で、A1に「あいうえお」と入力すると、A2「あ」、B2「い」、C2「う」、D2「え」、E2「お」とMID関数で振り分け、入力後、A行を「表示しない」と「再表示」するマクロをボタンで実行するようにしています。 そこで、 この書式には必ず入力しなければならない項目があるので(非表示しない行のセル)、この項目に入力したら行の非表示マクロを実行し、空白なら行の再表示マクロを実行出来るようにしたくて調べているのですが見つかりません。 1クリックの手間を省く方法をご存知の方ご教示ください。 宜しくお願いします。

  • 行と列情報を1つのセルにまとめたいです

    こんにちは。 現在、「マクロの記憶」で処理していますが、フリーズが多いため質問させてください。 -------------------------------------------------------------- 添付画像7行目までのように、データが入力されています。 同じシート内で、データを処理し添付画像11行目以降のように ・0が書かれたセルを削除したいです。 ・1と書かれたセルを、同列1行目に書かれた数字(日にち)に置き換えて、B列の年月とまとめて1セルに収めたいです。→年月日を作成したいです。 ・左詰めにまとめたいです。 A列:ID番号 B列:年月 C列-AG列:日にち(C1からAG1までは1~31が連続で入力されています。) ・A列のIDがB列の年月ごと1行でまとまっています。 ・IDによっては、年月が同じなのにもかかわらず複数行に分かれることがあります。添付画像16,17行目のようなことが起こります。 ・IDごとに、複数行存在する場合があります ・IDは昇順です。年月の順番はバラバラです。 例えば、2行目のIDが1000の方は、B2が201908、Q2とR2が1なので 2019年08月15日(20190815)、2019年8月16日(20190816)としたいです。 多い方だと、1行に15個の年月日が表示されています。 -------------------------------------------------------------- 分かりにくい部分がありましたらご教示いただけますと幸いです。 お忙しいところ恐縮ですが、何卒宜しくお願いいたします。

  • A列とB列の文字列を検索 結果をA列セル色で変化

    めぐみと申します。 エクセルのマクロのことで質問させて頂きます。 少し複雑ですみません。 A列とB列に文字列があります。 A列に並んでいる文字を1つずつ検索してB列にその文字列があればA列のその文字があるセルを赤色にするというマクロはできますでしょうか? お時間のある方がいらっしゃりましたら教えて頂ければ幸いです。 めぐみ

専門家に質問してみよう