Home » エクセルマクロ・Excel VBAの使い方 » WorksheetFunction » WorksheetFunction.Matchの戻り値は?

WorksheetFunction.Matchの戻り値は?

動作検証バージョン:Windows版Excel(バージョン1901 ビルド11231.20130)

WorksheetFunction.Matchの戻り値は?

「excel vba match 戻り値」
といった検索キーワードでのアクセスが時折あります。

WorksheetFunctionオブジェクトのMatchメソッドの戻り値について調べていた方による検索です。

[スポンサードリンク]

WorksheetFunction.Matchの戻り値はDouble型と定義されている

WorksheetFunction.Matchメソッドの戻り値は、オブジェクトブラウザーの詳細ペインに、

WorksheetFunction.Matchの戻り値は?

「Function Match(Arg1, Arg2, [Arg3]) As Double」
と表示されているとおり、Double型(倍精度浮動小数点型)です。

コードウィンドウで「Match」にカーソルがある状態でショートカットキー[Ctrl]+[I]を押して表示されるヒントでも、

WorksheetFunction.Matchの戻り値は?

「As Double」を確認できます。

WorksheetFunction.Matchの戻り値をローカルウィンドウで確認する

WorksheetFunction.Matchメソッドの戻り値を、拙著『いちばんやさしいExcel VBAの教本』でも多用しているローカルウィンドウで確認してみましょう。

下図のような例で確認してみます。

WorksheetFunction.Matchの戻り値は?

ショートカットキー[F8]でステップ実行して、
  ret = WorksheetFunction.Match("ハ", Range("A1:A3"), 0)
が、実行されるとVariantで宣言した変数retが、Doubleになります。

WorksheetFunction.Matchの戻り値は?

Double型のデータを返すと定義されているのに、該当するデータが存在しない場合、
「WorksheetFunctionクラスのMatchプロパティを取得できません。」
という実行時エラーが発生してしまうわけです。

Match関数は整数値を返す

WorksheetFunction.Matchメソッドの戻り値がDoubleであることは確認できましたが、そもそもワークシート関数のMATCHが、何を返すのかを考えてみることも必要です。

MATCH関数は、セル範囲から指定した項目を検索して、範囲内での項目の相対的な位置(整数)を返す関数です。

ですからMATCH関数をVBAから利用するWorksheetFunction.Matchメソッドも、「As Long」とLong型で宣言しても、問題ありません。

WorksheetFunctionオブジェクトの数値を返すメソッドはDoubleを返す

ちなみに、WorksheetFunctionオブジェクトに用意されている、数値を返すタイプのメソッドは、多くの場合Double型の値を返すように定義されています。

例えば、曜日を表す整数を返すWorksheetFunction.Weekdayメソッドも「As Double」と定義されています。

最終更新日時:2019-02-05 16:17

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » WorksheetFunction » WorksheetFunction.Matchの戻り値は?

「WorksheetFunction」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.