Excel VBAでINDEX MATCHを使用する方法

  • これを共有
Hugh West

などのExcelワークシートの組み込み関数を利用することができます。 VLOOKUP関数 は、その CHOOSE機能 とのことです。 PMT機能 また、VBAのコードやアプリケーションの中にも、そのほとんどが含まれています。 エクセル ワークシートの関数にアクセスし、使用することができます。 ブイビーエー コード .使用感 Excel VBAコードでINDEX & MATCHワークシート関数を使用します。

を使いたい理由は? エクセル ワークシート の関数を使用することができます。 ブイビーエー コード また、すでにある機能であれば、特に必要でない限り、自分で機能を考える必要はありません。 基本的には、すでにある機能にアクセスすればよいので、車輪の再発明は必要ないのです。

では、さっそくその使い方を紹介しましょう。 Excel VBAでINDEX MATCHを行う。

を活用することになりました。 INDEX MATCH 機能 において エクセルブイビーエー コード このフォームでは,ユーザが生徒の名前を選択すると,それに対応する生徒の性別と目の色が検索され,返されます.

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

練習用ワークブックをダウンロードし、ご自身で練習してください。

INDEX-MATCH.xlsx

VBAのコードでINDEXとMATCHを使う9つの簡単なステップ

があります。 INDEX MATCH 関数は、高度な検索を行うために、しばしば数式と組み合わせて使用されます。 この2つを組み合わせることで、以下のような利点があります。 ブイルック .

の使用方法については、すでに詳しく説明しています。 INDEX MATCH で高度なルックアップを行うことができます。 エクセル ワークブック を、そのままワークシートの数式として使用することができます。 前回までのチュートリアル を使用する方法について、これから見ていきます。 INDEX MATCH での機能連携 ブイビーエー コード と同様の機能を持たせるために、ルックアップ ユーザーフォーム を創造していきます。

Step1: データセットにINDEX関数とMATCH関数を適用する

  • マクロを有効にしたワークブックに2つのシートを用意します。 1つは ユーザーフォーム というシートがあり、もう一つは 学生情報 を示す範囲を含む。 学生名、対応する性別、目の色 を以下のように設定しました。

を使おうと思ったら、すぐに思い出してみよう。 INDEX MATCH 実際のワークシートでは、調べたい生徒の名前の性別を出すために、1つの数式で関数を実行します。 次のような数式を使用することになります。

=INDEX(B2:B31, MATCH("Diana Graham", A2:A31, 0))

  • を押すと CTRL-ENTER のように、性別としてFemalesの値が返されます。

ステップ2:B列の名前をStudentNamesに変更する

  • ここで、範囲に名前を付けます。 A2: A31 , 生徒名 を以下のように設定しました。

  • を隠す 学生情報 シートで、右クリックして 隠す。 ユーザーが編集したり、見たくない情報を含むバックエンドワークシートを表面的に隠すのは良いアイデアです。

ステップ3:Visual Basicウィンドウを開く

  • UserFormシートをアクティブにした状態で、次のページに進みます。 開発者> コード> Visual Basic を開くために ビジュアルベーシックエディタ(VBE) .
  • に一度だけ。 VBEインターフェース で、下図のように「Insert」→「UserForm」と進みます。

ステップ4:プロパティの変更とテキストボックスの追加

  • を使用しています。 物件紹介 ウインドウ という名前に変更します。 スチューデントルックアップ を選択し、「キャプション」を「学生情報の検索」に変更し、さらに「キャプション」を「学生情報の検索」に変更します。 バックカラー を水色にし、高さを 300 px、幅を 350 プロパティウィンドウが表示されていないときは F4 キーボードのキーを押してご覧ください。

  • を使ってラベルを挿入していきます。 ツールボックス (ツールボックスが表示されない場合は、何らかの理由で[表示]に移動します。 ツールボックス )、CaptionをChoose a studentに変更し、私たちは バックカラー を白にする。 フォントを グルジア に、フォントスタイル 大胆 に、フォントサイズを 12 であり、また センター テキストを整列させます。 使用される特殊効果は 1- fmSpecialEffectRaised を以下のように設定しました。

  • ラベルの下にコンボボックスを挿入します。 このコンボボックスの名前を cmdStudentName とし、その下に ロウソース タイプ 生徒の名前

  • を設定した場合の効果を見るために ロウソース コンボボックスの クリック ザ・ラン サブ/ユーザーフォーム ボタンをクリックします。
  • を設定したため、現在は ロウソース を指定すると、ユーザフォームのドロップダウン矢印をクリックしたときに、以下のように自動的に指定した範囲の生徒名がコンボボックスに表示されます。

  • UserFormを閉じるボタンをクリックして、UserFormを閉じます。 を押します。 Alt-F11 に戻るためです。 ブイビーイー .
  • に戻ってから ブイビーイー というラベルを追加し、UserForm(コンボボックスの下)の キャプション まで 性別 を変更することになります。 バックカラー を白にする。 フォントを グルジア に、フォントスタイル 大胆 に、フォントサイズを 12 であり、また センター テキストを整列させます。 使用される特殊効果は 1- fmSpecialEffectRaised を以下のように設定しました。

  • 作成 の下にテキストボックスがあります。 性別 ラベル と名付けます。 txtGender .
  • 追加 という別のレーベルがあります。 アイ カラー という名前のテキストボックスがあります。 txtEyeColour を以下のように設定しました。 使用方法 が確実に動作するように、ラベルのプロパティは、以前にフォームに追加した他の2つのラベルと同じにします。 ユーザーフォーム は統一感がありますね。

  • 現在 選択 に追加されたすべてのコントロール。 ユーザーフォーム これまでコントロールキーを使って

  • センター を横向きにすると、下図のようになります。

続きを読む エクセルでINDEX MATCH式を使う方法(9例)

類似の読み物

  • Excel INDEX MATCH セルにテキストが含まれている場合
  • ExcelでINDEX-MATCH式を使用して、複数の結果を生成する方法
  • Excelで複数行のインデックスマッチの合計を行う(3つの方法)
  • Excel VBAプログラミング&マクロ (無料チュートリアル - ステップバイステップ)
  • Excel VBAによる22のマクロ例

ステップ5:ツールボックスからボタンを追加する

  • 次のページ 追加 を使用してフォームにボタンを追加します。 ツールボックス . 変更 その 名称 をクリックします。 cmdLookUp は、その バックカラー を薄いオレンジ色にしてください。 タホマ フォントと かわりめ というスタイルになります。 大胆 を変更し、最後に キャプション をクリックします。 見る 学生 詳細 を以下のように設定しました。

ステップ6:VBAコードの挿入

  • 右クリック と、新しく追加されたボタン、そして 選ぶ 表示 コード .

  • ボタンのクリックイベントに、次のコードを入力します。

 Dim a As Variant Dim b As Variant Dim c As Variant a = cmdStudentName.Value Sheets("StudentInformation").Activate If a = "" Then b = "" Let txtGender.Text = b c = "" Let txtEyeColour.Text = c Else b = Application.WorksheetFunction.Index(Sheets("StudentInformation").Range("B2:B31"), Application.WorksheetFunction.Match(a, Sheets("StudentInformation").Range("A2:A31"), 0)) c = Application.WorksheetFunction.Index(Sheet ("StudentsIfomination ").Range ("A3:A3")を参照)、Sheets("B4").Action (A1))。Application.WorksheetFunction.Index(Sheets("StudentInformation").Range("C2:C31"), Application.WorksheetFunction.Match(a, Sheets("StudentInformation").Range("A2:A31"), 0)) Let txtEyeColour.Text = c End If 

と宣言してスタートします。 3 変数 を作成し、宣言されたバリアントデータタイプに代入します。 バリアントデータタイプは最初に使うには良いデータ型です。 なぜなら ワークシート 機能 そのため、最初のうちはバリアントデータタイプを使用します。

のような、より具体的なデータ型を使用することをお勧めします。 整数 または の文字列を表示します。 より高度な長いコードでは、バリアントデータタイプは他のデータ型ほど効率的にメモリを使用しません。

変数 a のドロップダウンコンボボックスでユーザーが選択したオプションから値を描画します。 ユーザーフォーム 選択されていない場合、他のすべてのテキストボックスは 空っぽ .

から生徒名を選択すると コンボ について ユーザーフォームです。 を使って変数bが値を描画します。 INDEX ワークシート との組み合わせによる機能 MATCH 機能 において ブイビーエー コードを表示します。

基本的にワークシート関数と同じ構文で値を検索します。 ワークシート関数を ブイビーエー は、その ブイビーエー インテリセンス この特定のケースでは、あまり 直感的 そのため、ワークシートの知識から得た構文に精通していることが推奨されます。 変数 c で値を描画します。 INDEX ワークシート 機能 と合わせて MATCH 機能 において ブイビーエー コンボボックスからオプションを選択したときのコードです。

変数 b が価値を持つ。 性別 をワークシートで使用するのに対し 可変c ワークシートの瞳の色の列から値を取得します。

性別のテキストボックスに入力されるのは b の値が入力され、瞳の色のテキストボックスには c の値です。

続きを読む Excel VBAのイベント(完全ガイドブック)

ステップ7:コマンドボタンの挿入

  • というワークシートに移動してください。 ユーザーフォーム をワークブックに追加してください。 フォーマット のように、それを 入れる の提供する画像です。 エクセルウィキ .

  • 次のページへ デベロッパー名:コントロール名:挿入名:ActiveX Controls.

  • インサート をクリックすると、図のようになります。

  • ボタンを選択した状態 出向く デベロッパー> コントロールズ> プロパティ .

  • 変更 その 名称 をクリックします。 cmdShowForm とのことです。 キャプション まで ルックアップ 学生情報 .

ステップ8:ルックアップコードの表示

  • 右クリック ボタンと 選ぶ 表示コード を以下のように設定しました。

  • 以下のコードを入力してください。
 Private Sub cmdShowForm_Click() StudentLookup.Show End Sub 

ステップ9:最終結果を展示する

  • 戻る になります。 のワークシートがあります。 チェックが外れていることを確認してください。 デザイン モード .
  • クリック をクリックすると、フォームが表示されます。

  • 選択 を使用して生徒の名前を入力します。 コンボボックス このコードでは、生徒の性別と目の色を自動的に返します。

を忘れないようにしましょう。 救う としてワークブックを作成します。 マクロ可能なワークブック を使用しています。 INDEX & MATCH ワークシート関数(Excel VBA コード を、ルックアップ・フォームを作成するために使用します。

続きを読む 複数の値を水平に返すExcelのINDEX-MATCH式

結論

エクセルには多くの便利な機能があります。 ワークシート機能 で活用することができます。 ブイビーエー のように、as like as, using Excel VBAコードでINDEX & MATCHワークシート関数を使用します。 これらの機能を利用することで、拡張することができます。 ブイビーエー のコードで表示されます。 標準的な動作が既に分かっている場合 エクセル ワークシートに適応させることで、学習曲線はそれほど大きくはありません。 ブイビーエー ワークシート機能へのアクセスは、自分の中で ブイビーエー コード なぜなら、すでにある機能に対してカスタム関数を開発する必要がないからです。

VBAのコードやアプリケーションでワークシート関数を使用しているかどうか、お気軽にコメントください。

復習編:理解度を確認する

1) A列にミカン、ニンジン、オレンジの3品目の簡単なリストを設定し、B列の各品目の隣のセルにA列の品目が果物か野菜かを記載します。サンプルデータの設定が完了したら INDEX & MATCH ニンジンが果物か野菜かをお届けするコンビネーション機能。

2) ESPNが提供するNFLのヘッドコーチと監督しているチームのデータセットを使用します。 ユーザーがテキストボックスに特定のコーチの名前を入力できるユーザーフォームを作成します。 そして、ユーザーが送信をクリックすると、別のテキストボックスにコーチが所属するチームが表示されます。 使用方法 INDEX & MATCH VBAコード内のワークシート関数の組み合わせ。

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