Vba で ifna を使用する方法 (例付き)


VBA でIfNaメソッドを使用すると、数式で#N/Aエラーが生成された場合に特定の値を返すことができます。

実際にIfNa を使用する一般的な方法は次のとおりです。

 Sub UseVLOOKUP()
    With Application
    Range(" F2 ").Value = .IfNa(.Vlookup(Range(" E2 "), Range(" A2:C11 "),3,False), "No Value Found")
End With
End Sub

この特定のマクロは、VLOOKUP 関数を使用して、範囲A2:C11内のセルE2の値を検索しようとします。

セルE2の値が見つからない場合、数式は#N/Aを返します。

ただし、 IfNaメソッドを使用すると、 #N/Aの代わりに「値が見つかりません」を返すことができます。

次の例は、この構文を実際に使用する方法を示しています。

例: VBA での IfNa の使用方法

さまざまなバスケットボール選手に関する情報を含む次のデータセットが Excel にあるとします。

データセットでチーム名「Kings」を検索し、対応する値をアシスト列に返したいとします。

これを行うには、次のマクロを作成できます。

 Sub UseVLOOKUP()
    With Application
    Range(" F2 ").Value = .IfNa(.Vlookup(Range(" E2 "), Range(" A2:C11 "),3,False), "No Value Found")
End With
End Sub

このマクロを実行すると、次の出力が表示されます。

このマクロは、キングスの3アシストの値を正しく返します。

ここで、セルE2のチーム名を、データセットには存在しない「グリズリーズ」に変更するとします。

このマクロを再度実行すると、「値が見つかりません」が返されます。これは、VLOOKUP 関数の結果 #N/A エラーが発生した場合に返される値が指定した値であるためです。

グリズリーズがチーム列に存在しないため、マクロは「値が見つかりません」を返します。

: VBA IfNaメソッドの完全なドキュメントはここにあります。

追加リソース

次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。

VBA: インデックス マッチングの使用方法
VBA: 複数の列でシートを並べ替える方法
VBA: 文字列に別の文字列が含まれているかどうかを確認する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です