目次
Excelでは、データセット内のデータを検索したり、値を探したりすることがよくあります。 行や列のデータを検索することもあります。幸い、Excelにはこのような作業を行うための関数や数式があります。 Excel VBAコードの助けを借りて、この検索や値の検索作業を自動化できます。 この記事では、さまざまな方法について見ていきましょう。 列の値を見つける をExcel VBAで作成します。
練習用ワークブックをダウンロードする
列の値を検索する.xlsmExcelで列の値を検索する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に関する興味深い記事をご覧いただけます。