列の値を検索するExcel VBA(6つの適切な例)

  • これを共有
Hugh West

Excelでは、データセット内のデータを検索したり、値を探したりすることがよくあります。 行や列のデータを検索することもあります。幸い、Excelにはこのような作業を行うための関数や数式があります。 Excel VBAコードの助けを借りて、この検索や値の検索作業を自動化できます。 この記事では、さまざまな方法について見ていきましょう。 列の値を見つける をExcel VBAで作成します。

練習用ワークブックをダウンロードする

列の値を検索する.xlsm

Excelで列の値を検索するVBAの6つの例

商品情報のデータセットと、その商品情報を持つ プロダクトID , ブランド , モデル , 単価 そして オーダーID 私たちの仕事は、マッチしたものを見つけることです。 オーダーID を見つけることです。 オーダーID に関連したものです。 プロダクトID .

1.VBAのFind関数でカラムの値を探す

最初の例では VBAのFind関数 を使用して、列内の値を検索することができます。

📌 ステップス

  • シートの下にあるシート名に移動します。
  • マウスの右ボタンを押す。
  • を選んでください。 表示コード オプションを一覧から選択します。

  • VBAウィンドウが開くので、以下を選択します。 モジュール から インサート オプション

  • 次に、VBAコンソールで次のコードを記述します。
 Sub Find_Value() Dim ProductID As Range Range("D4").ClearContents Set ProductID = Range("B8:B19").Find(What:=Range("C4").Value, _ LookIn:=xlValues, LookAt:=xlWhole) If Not ProductID Is Nothing Then Range("E5").Value = ProductID.Offset(, 4).Value Else MsgBox "No Matched Data Found !!!" End If End Sub 

  • 今度はデータセットにボタンを挿入してください。
  • に行ってみてください。 デベロッパー タブで表示します。
  • 選ぶ ボタン ( フォームコントロール )からは インサート のセクションをご覧ください。

  • ボタンの名前は自由につけてください。 検索 .

  • このボタンにコードを割り当てる。
  • ボタンを選択し、マウスの右ボタンを押す。
  • 選ぶ マクロを割り当てる をリストから選択します。

  • から目的のマクロを選びます。 マクロを割り当てる ウィンドウに表示されます。
  • 次に、 を押します。 よっしゃー .

  • ここで、任意の プロダクトID をクリックしてください。 検索 ボタンをクリックします。

この製品番号がリストにないため、No matchと表示されていることがわかります。

  • 別の言い方をすれば プロダクトID を押し、もう一度 検索 ボタンをクリックします。

与えられたオーダー番号を取得します。 プロダクトID .

続きを読む Excel VBAで行と列でセルの値を取得する方法

2.異なるワークシートから値を検索するVBA

さて、このセクションでは、上記と同じことを異なるワークシートに対して行います。 例えば、製品情報が、以下の場所にあるとします。 シート 2 で、検索ボックスは シート3 次に、商品IDから注文IDを検索するためのVBAコードを記述します。 シート3 .

シート2

Sheet3。

📌 ステップス

  • と同じ手順で行います。 ステップ1 まで ステップ2 をクリックすると、VBAコンソールが表示されます。
  • 次に、VBAコンソールで次のコードを記述します。
 Sub Find_Value_from_worksheets() Dim rng As Range Dim ProductID As String Dim rownumber As Long ProductID = Sheet3.Cells(4, 3) Set rng = Sheet2.Columns("B:B").Find(What:=ProductID, _ LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _ SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) rownumber = rng.Row Sheet3.Cells(5, 5).Value = Sheet2.Cells(rownumber, 6).Value End Sub 

  • ここでもう一度、先ほどのようなボタンを挿入してください。
  • そして、そのボタンにマクロコードを割り当てます。

  • 任意の項目を入力 プロダクトID をクリックしてください。 実行する ボタン

続きを読む Excelで列の値を検索して別の列の値を返す

3.列の値を検索してマークする

では、印をつけることでカラムから値を取り出す方法を見てみましょう。 ここでは、上記の同じデータセットに 配送状況 の値をマークすることです。 配送状況 という欄があります。 保留 .

📌 ステップス

  • から同じ手順で行います。 ステップ1 まで ステップ2 VBAのコンソールを開く前の方法と同様に
  • 次に、VBAコンソールで次のコードを記述します。
 Sub Find_and_Mark() Dim strAddress_First As String Dim rngFind_Value As Range Dim rngSrch As Range Dim rng_Find As Range Set rng_Find = ActiveSheet.Range("G1:G16") Set rngSrch = rng_Find.Cells(rng_Find.Cells.Count) Set rngFind_Value = rng_Find.Find("Pending", rngSrch, xlValues) If Not rngFind_Value Is Nothing Then strAddress_First = rngFind_Value.Address rngFind_Value.Font.Color = vbRed Do SetrngFind_Value = rng_Find.FindNext(rngFind_Value) rngFind_Value.Font.Color = vbRed Loop Until rngFind_Value.Address = strAddress_First End If End Sub 

  • では、ワークシートに移動して、コードを実行してください。
  • 表中の出力をご覧ください。

続きを読む エクセル列の最高値の求め方(4つの方法)

4.ワイルドカードを使って列内の値を検索するVBA

最後に、Excel VBAでワイルドカード文字を使用して、列内の値を検索する方法を紹介します。 ここでも、上記の同じデータセットを使用します。 このタスクは、製品の価格をモデルで検索することです。 プロダクトID .

📌 ステップス

  • から同じ手順で行います。 ステップ1 まで ステップ2 VBAのコンソールを開く前の方法と同様に
  • 次に、VBAコンソールで次のコードを記述します。
 Sub Find_Using_Wildcards() Set myerange = Range("B5:G16") Set ID = Range("D19") Set Price = Range("F20") Price.Value = Application.WorksheetFunction.VLookup _ ("*" & Range("D19") & "*", myerange, 4, False) End Sub. 

  • 再び、先ほどのようなボタンを挿入します。
  • ここで、ボタンにマクロコードを割り当てます。

  • ここで、任意の部分を入力します。 プロダクトID を押してください。 実行する ボタンをクリックします。

続きを読む Excelの列で最も低い値を検索する方法(6つの方法)

5.列の最大値を検索するExcel VBA

ここでは、VBAのコードを使用して、ある列の最大値を求めたいと思います。

📌 ステップス

  • 上限価格を調べたい。

  • ここで、新しいモジュールに以下のVBAコードを記述してください。
 Sub Column_Max() Dim range_1 As Range Set range_1 = Application.InputBox(prompt:="Select Range", Type:=8) Max_Column = WorksheetFunction.Max(range_1) MsgBox Max_Column End Sub 

  • 次に F5 ボタンをクリックすると、VBAコードが実行されます。
  • があります。 入力 のダイアログボックスが表示されます。
  • データセットから範囲を選択します。

  • 最後に よっしゃー ボタンをクリックします。

最大値がダイアログボックスに表示されているのがわかります。

6.列の最後の値を検索するExcel VBA

ここでは、特定の列の最後の行またはセルの値を知りたい。 例えば、Product列の最後の製品を知りたい。

📌 ステップス

  • を入力します。 ブイビーエー のコードをモジュールに貼り付けてください。
 Sub last_value() Dim L_Row As Long L_Row = Cells(Rows.Count, "B").End(xlUp).Row MsgBox Cells(L_Row, 2).Value End Sub 

  • そして、コードを実行するために F5 ボタンをクリックします。

最後の値がダイアログボックスに表示されます。

続きを読む Excelで列内の値の最後の出現回数を検索する方法(5つのメソッド)

覚えておきたいこと

よくあるエラー

  • エラーです。 One Value at a Time. なぜなら FIND メソッドは一度に一つの値しか見つけることができません。
  • エラーです。 #エヌエー において ブイルック 検索した値が与えられたデータセットに存在しない場合,この関数は次のような結果を返します. #エヌエー のエラーが発生しました。
  • Range("Cell_Number").ClearContents の部分は、セルから前の値をクリアするために使用されます。 それ以外の場合は、前の値を手動で削除する必要があります。

結論

以上、ExcelのVBAコードを使って列の値を見つける方法を紹介しました。 すべての方法をそれぞれの例とともに紹介しましたが、他にもさまざまな反復が考えられます。 また、使用する関数の基本的なことも説明しました。 もし、他に実現する方法があれば、ぜひ教えてください。 当社のウェブサイトをご覧ください。 エクセルウィキ をクリックすると、Excelに関する興味深い記事をご覧いただけます。

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。