2018.06.27みなさまこんにちは、ノグチです。前回は、エクセルのChangeイベントと、入力規則をVBAで操作するValidationオブジェクトを使って、セルに入力した値をマスタシートから検索し、ヒットした値をセルにプルダウンメニューに表示する方法をご紹介しました。【エクセルVBA】Changeイベントと組み合わせてもっと便利に!検索にヒットした値をドロップダウンリストに表示する方法エクセルのChangeイベントと、Validationオブジェクトを用いたドロップダウンリストを作成する方法を組み合わせて、セルに入力した値をマスタシートから検索し、検索にヒットした値を入力したセルのドロップダウンリストに表示させる方法をご紹介しています。この方法を使えば、入力作業が楽になるかもしれません。tonari-it.com2018.06.20その記事の中で使っていたFindメソッド。値の検索にはワークシート関数のVlookupなどがありますが、このFindメソッドも値を検索するときにとっても便利なのです。検索した値を取得してみる最後にFindメソッドとは?Findメソッドは、指定したRange型の範囲から指定した文字列を持つセルを返すメソッドです。Rangeオブジェクト.Find(パラメータ)検索したい値が見つかった場合はそのセルを表すRangeオブジェクトを、検索したい値が指定した範囲の中で見つからなかった場合にはNothingを返してくれます。FindメソッドのパラメータFindメソッドにはいくつかパラメータがありますが、個人的によく使うパラメータが以下です。検索したい値を指定するパラメータで、もちろん指定必須です。検索したい値で、部分一致検索なのか全体一致検索なのかを指定します。部分一致の場合はxlPartを、全体一致の場合はxlWholeを指定します。行方向に検索するのか列方向に検索するのかを指定します。行の場合はxlByColumnsを、列の場合はxlByRowsを指定します。省略した場合はxlByColumnsがデフォルトでセットされます。パラメータを使ってFindメソッドを書いてみると、こんな感じになります。LookAt:=xlWhole)Findメソッドを使った検索コードの例このメソッドを使って、前回の記事でもご紹介した、請求書シートに入力した値でマスタシートを検索し、入力したセルに検索結果を返す、というコードを書いてみましょう。請求書シートがこちら、マスタシートがこちらです。請求書シートのB5セルに入力した値で、マスタシートの得意先リストを部分一致検索したい場合、このようなコードになります。With戻り値がNothingの時の処理も大切Findメソッドを使う場合は、戻り値がNothingだったとき(検索にヒットする値を持つセルが見つからなかったとき)のことも考えておきましょう。上のコードで戻り値がNothingだった場合、9行目で検索にヒットした値をセルに出力するときにエラーになってしまいますので、戻り値がNothingだった場合の処理もセットで書くようにしましょう。検索にヒットするセルがある場合と、Nothingの場合をIF文を使って分岐させると、こんな感じのコードになります。"該当する得意先はありません。"該当する得意先はありません。Nextを差し込んでおく方法もありますよ。場合の処理は、必ず書き込んでおくのが安心ですね。検索した値を取得してみるでは、上のコードを実際に動かしてみます。検索値を入力するセルに”AAA”と入力します。マスタシートでは、”AAA”を含む得意先名は「AAA株式会社」だけなので、B5セルに「AAA株式会社」と出力されるはずです。コードを動かしてみると...このとおり、ちゃんとB5セルに「AAA株式会社」が出力されていますね。最後に今回は、Findメソッドを使って、セルに入力された値で指定範囲を検索する方法をご紹介しました。次回は、検索値に対して複数の値がヒットする可能性がある場合に使える、FindNextメソッドをご紹介します。【エクセルVBA】FindNextメソッドで指定範囲内の検索条件にヒットする値をすべて取得する方法Findextメソッドを使って、指定した範囲内で検索条件にヒットする値を全て取得する方法をご紹介しています。Findメソッドだけだと、指定範囲で一番最初に検索にヒットする値しか取得できませんが、FindNextメソッドなら複数の検索結果を取得できますよ。tonari-it.com2018.07.06それでは最後までお読みいただき、ありがとうございました!投稿者プロフィールノグチフリーランスPG・SE元製造子会社SE。業務システム保守・導入両方やった経験をお伝えすることで、少しでもシステムや手作業に悩まされる人が減ればいいなぁと日々夢見ております。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。関連記事Excel・VBA活用術エクセルVBAでクラスとコレクションを使うと簡単に請求書のデータ抽出できるエクセルVBAでクラスを使って請求書マクロを作るシリーズをお送りしています。今回は、請求データの中から該当の取引先のデータだけを抽出する方法です。これは、クラスとコレクションを使うと、実にスマートに実現できるんです。2019.02.02Excel・VBA活用術エクセルVBAでクラスを使った請求書マクロでシートのコピー&保存処理を作るエクセルVBAでクラスを使って請求書マクロを作ろう!のシリーズをお送りしております。今回はエクセルVBAでクラスを使った請求書マクロでシートのコピー&保存処理を作成していき、請求書マクロを完成させます。【エクセルVBA入門】オートフィルタや行の非表示で隠れている行を全て表示するエクセルVBAでバラバラの経費精算書のデータを収集するマクロの作り方をお伝えしています。今回はオートフィルタを解除する方法と、行の非表示で隠れている行を表示する方法についてそれぞれお伝えしていきます。【初心者向けエクセルVBA】文字列の連結&Format関数での書式変更エクセルVBAで文字列を連結する、文字列の書式を変更するなどの「文字列」に関するいくつかのテクニックを紹介しつつ、データ一覧から請求書を自動で作成するというシリーズ連載の序盤の完成を目指します。2015.05.21Excel・VBA活用術エクセルVBAのボタン設置で引数を渡してマクロを呼び出す方法エクセルVBAでプログラムを動かす際にボタンを設置しますよね。今回はボタンに登録したVBAマクロを引数を渡しながら実行する方法についてお伝えします。引数の記述方法や省略の仕方についても触れます。2016.04.07Excel・VBA活用術エクセルVBAによる運用業務で人為的ミスを減らす4つの方法エクセルVBAを運用業務で活用されている方必見!人為的ミスを大幅に減らす4つの方法を紹介します。エクセルVBAはメイン処理に偏らず人為的ミスを想定したコーディングが業務効率化に繋がります。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。Scriptが「V8ランタイム」をサポート!モダンなECMAScript構文が使えるようになった2020.02.072020.02.08GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法2020.02.052020.02.05Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。