Excel VBAで範囲内の値を一致させる(3例)

  • これを共有
Hugh West

と連携しながら マイクロソフトエクセル このような場合、Excelの関数を使えば簡単にできます。 VBAにも使える関数はありますが、どれも、「Select」「Select」「Select」「Select」と同じようなものです。 MATCH を使用して、範囲内の値を一致させる方法を学びます。 エクセルブイビーエー .

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

ワークブックをダウンロードして、一緒に練習することができます。

VBA 範囲内の値を一致させる.xlsm

エクセルVBAマッチ関数入門

があります。 マッチング機能 は、Excel VBA のルックアップ関数と同様、便利な構造になっています。 ブイルック , HLOOKUP であり、また INDEX この関数は、プログラムが使用するワークシート関数である。 ワークシート関数であるため、Match関数のパラメータはワークシート関数のパラメータと同様である。

範囲内の値を一致させるExcel VBAの3つの例

1.ExcelのVBA Match関数で範囲内の値を一致させる

使用方法 エクセルVBAのMatch関数 このデータセットには、生徒の名前が列挙されています。 C の欄には、特定の科目の点数が表示されます。 D の列で、各生徒の通し番号が表示されます。 B ここで,セル G5 の、特定のマークと一致させたいマークがセル F5 .

excel VBAのMatch関数を使って、範囲内の一致する値を見つける手順を実演してみましょう。 .

STEPS

  • まず デベロッパー タブをクリックします。
  • 2つ目は、「」をクリックします。 ビジュアルベーシック を開いてください。 Visual Basic エディター をクリックすると、コードが表示されます。 Alt + 11 を開いてください。 Visual Basic エディター .

  • もう一つの開き方 Visual Basic エディター は、ただ 右クリック をワークシート上でクリックします。 表示コード .

  • を開くことができます。 Visual Basic エディター さて、そこにコードを書きましょう。

VBAのコードです。

 Sub example1_match() Range("G5").Value = WorksheetFunction.Match(Range("F5").Value, Range("D5:D10"), 0) End Sub 
  • その後、コードを実行するために F5 キーボードのキーを押すか ラブ・サブ ボタンをクリックします。

  • 最後に、一致するのは位置 5 .

🔎 VBAコードはどのように動作しますか?

  • Sub example1_match() : つまり、マクロ名を与えてサブプロシージャーを定義するのです。
  • レンジ("G5").Value : 出力は、セルに格納されるようにしたい G5 .
  • ワークシート機能 : このコードを使用することで、VBAの関数にアクセスすることができるようになります。
  • Match(Range("F5").Value, Range("D5:D10"), 0) : ここでは マッチ機能 セルから値を取得したいので、VBAで F5 を表示し、範囲内の位置を調べる D5:D10 .
  • エンド・サブ : これは、手順を終了することを意味します。

続きを読む: 列内の文字列を一致させるエクセルVBA(5例)

2.エクセルVBAで他のワークシートの値と一致させる

別のワークシートから範囲内の一致する値を見つけるには、次のようにします。 VBAのMatch関数 において エクセル という名前のシートにデータセットがあると仮定します。 データ " というシート名で結果を表示させたい。 結果 " と、同じデータセットを使っています。 では、その手順を追ってみましょう。

STEPS

  • はじめに、先ほどの例と同じ要領で デベロッパー タブをクリックします。
  • をクリックします。 ビジュアルベーシック を押すか Alt + F11 を開いてください。 Visual Basic エディター .
  • そのかわり、開くには Visual Basic エディター を選択すると、シート上で右クリックして 表示コード .

  • さて、VBAのコードを書きましょう。

VBAのコードです。

 Sub example2_match() Sheets("Result").Range("C5").Value = WorksheetFunction.Match(Sheets("Result").Range("C5").Value, Sheets("Data").Range("D5:D10"), 0) End Sub 
  • 次に、コードを実行するために F5 キーを押すか ラン・サブ ボタンをクリックします。

  • そして、その結果は、" 結果 " シートです。

続きを読む Excelで2つのワークシートのデータを一致させる方法

類似の読み物

  • ExcelでVLOOKUPを使用してすべてのマッチを合計する(3つの簡単な方法)
  • エクセルで大文字小文字を区別して検索する方法(6つの計算式)
  • エクセルでスペルが異なる人名を一致させる方法(8つの方法)

3.範囲内の一致した値を取得するExcel VBAのループ

複数のマークで値を一致させたい場合、VBAのループを使用します。 前と同じデータセットを使用します。 ここで、一致する位置を列 G であり,一致を求めたいマークは,列 F ステップダウンして見ましょう。

STEPS

  • まず、リボンから デベロッパー タブで表示します。
  • 2つ目は、「開く」です。 Visual Basic エディター をクリックします。 ビジュアルベーシック を押すか Alt + F11 .
  • または、単にシート上で右クリックし 表示コード .

  • を開くことができます。 Visual Basic エディター .
  • さて、そこにコードを打ち込みます。

VBAコードです。

 Sub example3_match() Dim i As Integer For i = 5 To 8 Cells(i, 7).Value = WorksheetFunction.Match(Cells(i, 6).Value, Range("D5:D10"), 0) Next i End Sub 
  • その後 F5 キーを押すか ラン・サブ ボタンをクリックすると、コードが実行されます。

  • そして、その結果をカラム G .

🔎 VBAコードはどのように動作しますか?

  • For i = 5 To 8 : これは、ループを行から開始させたいことを意味します。 5 で終わり 8 .
  • セルズ(i, 7).Value : から、各行の結果位置の値を保存します。 5 まで 8 列行 G は、列番号 7 .
  • Match(Cells(i, 6).Value, Range("D5:D10"), 0) : を使ってセルをマッチングさせることができます。 マッチ 関数 (i, 6) を使用します。 値は、行で見つかった各 Lookup 値を検索します。 5 を通して 8 6日 列で検索されます。 D5:D10 を、データのあるエクセルシートに書き出す。

続きを読む Excel 2つの列で一致する値を検索する

留意点

  • マッチタイプがない、あるいは指定されていない場合、次のように見なされます。 1 .
  • 一致しない場合、関連するExcelフィールドは空白になります。
  • ルックアップ値は、数値、文字、論理データ、または数量、テキスト、論理的意義へのセル参照であるかもしれません。

結論

上記の方法は、Excel VBAで範囲内の値を一致させるのに役立ちます。 これがあなたの助けになることを願っています!何か質問、提案、またはフィードバックがある場合は、コメント欄でお知らせください。 または、当社の他の記事もご覧いただけます。 エクセルウィキ・ドットコム ブログ

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