ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

EXCEL VBAコミュのVBAでのVLOOKUPについて

  • mixiチェック
  • このエントリーをはてなブックマークに追加
VBAでVLOOKUPを使いたいのですが一覧に検索対象がなかったときエラーになってしまいます。
※検索の型はFALSE固定

EXCEL関数のようにISNA()やISERROR()を使おうとしても関数として認識してくれませんでした。

今はしょうがないので先にFINDをしてTRUEのときだけVLOOKUPしています。

どなたかエラーの回避策またはIS関数を有効にする参照設定をご存知の方いませんか?

よろしくお願いします。

コメント(14)

On Error Resume Next
 変数 = WorksheetFunction.VLookup(・・・・・・)
myErr = Err.Number
On Error GoTo 0
 If myErr = 0 Then
  エラーなしの処理
 Else
  エラーがある場合の処理
 EndIf

でどうでしょうか?
Goldenさんのような、エラー回避のプログラミングを使う方法のほかに、以下のような反則技があります。


Sub ブイルック()
Range("A2").Value = "=VLookup(A1, B1:C4, 2, 0)"
End Sub


――つまり文字列としてVLOOKUP関数を書き込んでしまうわけです
Application.WorksheetFunction.で使用できない関数はたしか、E・・・なんとかメソッド?で使えると何かの本で読んだことがあります。が、ど忘れしてしまいました。この場を借りてどなたかお教え下さい。
よっちゃんさん、ありがとうございます。
いまヘルプみました。
使用する名前を、オブジェクトまたは値に変換するのですね。

↓こんな使い方もあるのですね
http://support.microsoft.com/kb/407898/ja
コミュ違いですが、「Excel(エクセル)活用」コミュニティの方で
何年か前にセルに入力された方程式を解くようなサンプルを提示したことあります。
Evaluateメソッドは使い方次第でVBAでできることの幅が広がります。

話がそれてすみません。
トピ主さん、脱線させてすみません(^^;

>>ISERROR()を使おうとしても関数として認識してくれませんでした。
IserrやIsErrorはWorksheetFunction.でつかえますね。
ちなみに.を入力するとリストが現れます。
今までは1÷0さんの提示された方法をたびたび使ってましたが、Evaluateを使えばセルの値をとりださず(セルに関数を入力せず)に値だけゲットできるから便利ですね。参考になりました。
http://www.moug.net/mmaga/back/472.htm

ところでトピ主さんは解決されたのでしょうか?
Application.VLookupなら関数の結果がエラーになった場合でも
実行時エラーになりません。
そして、IsError関数で関数の結果がエラーかどうか判別可能です。
  Dim Re As Variant
  Re = Application.VLookup("A", Range("A1:B3"), 2, False)
  If IsError(Re) Then
    MsgBox "#N/Aエラー"
  Else
    MsgBox Re
  End If
Evaluateは知りませんでした。
便利そうなので、今度何らかの業務に使用しましょう。
みなさんありがとうございますm(__)m

後で試してみます♪

IS関数ワークシートファンクションを定義するってのはちょっと盲点でした
>今はしょうがないので先にFINDをしてTRUEのときだけVLOOKUPしています。
Findメソッドを使っているなら、Findメソッドの戻り値をそのまま利用した方がスマートです。

  Dim rngF As Range
  Set rngF = Range("A:A").Find(・・・)
  If rngF Is Nothing Then
    Msgbox "なし"
  Else
    Msgbox rngF.Offset(,1).Value
  End If



それと
>IS関数ワークシートファンクションを定義するってのはちょっと盲点でした
は、多分使い物になりませんよ。
ISERROR…VBAのコマンドのほうだったのですね(^^;
間違えました。すみません。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

EXCEL VBA 更新情報

EXCEL VBAのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。