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: 文字列に別の文字列が含まれているかどうかを確認する方法