🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

451閲覧

【Excel VBA】値を取得したい

daifuku-mochi

総合スコア9

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/01/14 09:00

前提・実現したいこと

VBAを勉強中の初心者です。こちらの掲示板を度々利用させていただいております。
今回もまたどなたかのお知恵をお借りしたいと思い、質問させていただきました。

インプットボックスに手動で番号を入力してもらい、その番号が指定した範囲内に存在しない場合、
「番号が存在しません」というメッセージボックスを表示したいです。

発生している問題・エラーメッセージ

色々なサイトを参考にしながら、下記のコードを作成してみました。
しかし、マクロを実行してメッセージボックスに範囲内に存在する番号を打ち込んでも
「番号が存在しません」とメッセージが出てしまいます。

そこで、「=C3&D3&E3」のような計算式でなく、「1002050」という番号を取得できれば
番号を探し出せるようになるのではないかと推測しております。

イメージ説明

その場合、どのように工夫すれば「=C3&D3&E3」の値を取得できますでしょうか?
勉強不足で大変申し訳ありませんが、ご教授いただけましたら幸いです。

該当のソースコード

Dim 入力番号 As String 入力番号 = Application.InputBox("番号を入力してください") Dim Target As Range Set Target = Range("B3:B50").Find(入力番号) If Target Is Nothing Then MsgBox "番号が存在しません" End If

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

vba

1Set Target = Range("B3:B50").Find(What:=入力番号, LookIn:=xlValues)

LookInに「xValues」を指定すれば計算結果の方でFindしてくれます。

投稿2021/01/14 09:22

umau

総合スコア831

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

daifuku-mochi

2021/01/14 23:48

ご回答いただき本当にありがとうございます!思わず画面に向かって拝みました。 試してみたところ、無事に計算結果の数字をとることができました。LookInという存在をはじめて目にしたのですが、おかげさまで大変勉強になりました! もし差し支えなければ加えてご教授いただけると大変ありがたいのですが、umau様はどのようにして解決策を思いつかれたのでしょうか…?(猛勉強されてとても博識でいらっしゃるからでしょうか?もしくは検索するコツなどあるのでしょうか…?)ネットで調べたりExcel既存のヘルプを見たりしているのですが、最善策にたどり着くまでいつもかなりの時間を溶かしてしまいます…
umau

2021/01/15 04:48

おめでとうございます。何のことは無く、私も「vba find 計算結果」でググっただけですよ! グーグル先生に聞きまくるのが基本です。あまり1つのサイトや情報源にこだわらずに、サクっと次々見ていくのがコツです。全く知らない事でも「こういうことできないのかな」って思う事は、他にも同じこと考える人がいるものなんで、大抵の事はすでに機能があったり、やり方考えて公開してる人がいます。とにかく検索です。(検索しまくりで、常にブラウザのタブが30個以上開いてます、、) あと、こういうのを覚えるのって大変で、Findメソッドには「LookInというオプションがある」「:=で指定する」「xlValuesを当てる」とか、全部完璧に覚えるのはしんどいですよね。「計算結果でFindするやり方はググったら見つかった」という体験だけ覚えておいて、次回以降もググります。細かい事を頑張って覚えようとせずに「何が出来るのか」だけを頭に残していくのがコツです。毎回ググった方が、もっと良い新しいやり方が登場してたりして、知識が更新されていきますしね。 内容よりも、「何でググればこの情報にたどり着けるか」を意識するようにしていくと、「この単語は覚えとくと検索に便利そう」という観点で見るようになってきたり、「たぶんこういう機能はあるだろう」というアタリが付くようになってきたりします。だんだんとドンピシャじゃない情報源からもキーワードだけ頂いて再検索、とかするようになってきて、検索が上達していくように思います。 (まぁそれでも見つからない時は見つからないので、時間かかった時はしょうがない、位で気楽にやってます)
radames1000

2021/01/15 06:39

横から失礼します。 Excel操作にある程度習熟すれば、マクロの記録で 当該操作のコードを知ることができます。 ■今回の場合 検索オプションで検索対象を「数式」から「値」に変更すれば検索できます。 これをマクロの記録で操作してみてください。 色々無関係なものもついてきますが、知りたければ公式リファレンスで確認できます。 https://docs.microsoft.com/ja-jp/office/vba/api/excel.range.find こんな感じでExcelの機能について知っていけば色々と便利ですよ。 がんばってくださいね。
daifuku-mochi

2021/01/15 06:47

ご丁寧に教えていただき本当にありがとうございます! 私も「vba find 計算結果」で検索してみたところ、確かに上のほうに解決のヒントとなるサイトが載っておりました…!完全に私の検索が甘かったです。初歩的な内容にも関わらずご丁寧に教えていただきありがとうございました。 基本的にこの掲示板で教えてくださる方々は私の中では神的立ち位置(質問は神降臨の儀)なのですが、そのような方々もグーグル先生を活用されていらっしゃるというのが意外な事実でした……いかにたくさんの知識を抱えるかということよりも、情報をいかに早く正確に検索できるかというセンスを磨く方が重要なのですね。さっそく次回からはumau様がご教授いただいたコツを念頭に検索してみようと思います。 この度はご回答に加えアドバイスまでいただきありがとうございました!いただいた知恵、大事に活用させていただきます!
daifuku-mochi

2021/01/15 07:03

>radames1000様 大ヒントとなる情報、前回に引き続き本当にありがとうございます! 確かにマクロの記録を使って確認すれば分かる内容ですね…すっかり失念しておりました… リンクもありがとうございます!確かにパラメータの部分にばっちり書かれておりますね… しっかり読んでおけば解決できた内容だったと思います… 私の検索能力の低さを自ら露呈してしまい非常に恥ずかしいですが、 おかげさまで、自己解決する知恵を身につけられたように思います! 今回もまた貴重なお時間を割いていただき本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問