- ベストアンサー
検索結果の値を返すマクロ
以下のような表で列「A」にある値を「C1~I1」より検索し 一致するものがあれば、列名を「B列」に返すマクロを作りたいのですが、どのようにマクロを記述したら良いでしょうか? A B C D E F G H I 10 20 30 40 50 60 80 10 20 10 50 60 勉強してみたのですが、変数をどのように使っていいか判りません。 ご助言いただければと思います。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 A列は2行目からデータがあるとして 最も基本的なコードを書くと --------------------------------------------------- Sub Test() Dim Rw As Long Dim Clm As Integer For Rw = 2 To Range("A65536").End(xlUp).Row For Clm = 3 To 9 Cells(Rw, "B") = "" If Cells(Rw, "A") = Cells(1, Clm) Then Cells(Rw, "B") = Chr(Clm + 64) Exit For End If Next Clm Next Rw End Sub ------------------------------------------------- 以上です。
その他の回答 (2)
- DoragonFang
- ベストアンサー率41% (91/221)
マクロの勉強のためでしょうか? それなら、ANo.2さんの回答でいいと思いますが。 蛇足ながら、ご質問のコトを関数でも可能です。 =CHAR(66+MATCH(A3,$C$1:$I$1,0))
お礼
勉強のためというわけではなく、関数の勉強がたりなかったようです。関数で出来るとは思いませんでした。 最終的には、返ってきた列にある数値から、検索値と同じ行数にあるものを拾いたいと思っていたのでマクロでしか出来ないと思っていました。 必要な運賃を表示するエクセルを目指してます。 マクロと関数の方法を教えていただけましたので、使い分けれるようになればいいなと思います。 ありがとうございました。
VLOOKUPとIFを使えばできそうですが マクロがよろしいんですよね
お礼
ありがとうございます。 助言どころか、丸々教えてくださり感謝です。 普段ならもう少し勉強するのですが、会社からせかされていたのでとても助かりました。 本当にありがとうございました。