• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのxvlookupという関数に悩んでます)

エクセルのxvlookupという関数に悩んでます

このQ&Aのポイント
  • エクセル10を使用しております。職場の先輩が代々受け継いで使用してきたエクセルシートをいつもと違う他のPCで展開したところ、ファイルを展開する前に「コンパイルエラー:プロジェクトまたはライブラリがみつかりません」という表示が出てマクロが止まり展開できません。
  • マクロを削除してシートを展開したが、あるセル1列全部が=Xvlookupという関数を参照し、N/Aになっています。新たに=Vlookup関数を入れてもうまく作動しません。
  • 正常にファイル展開、Vlookupを参照できる方法をお教えください。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

質問課題の、直接の原因究明ですが Googleで「プロジェクトまたはライブラリが見つかりません 」 で照会し https://www.moug.net/tech/exvba/0150128.html のようなものを出して、該当と対策をチェックしてください。 エクセルやVBAのエラーの場合、エラーコメントそのものの文章(1字1句同じにする)でWEB照会すると、余分な記事がでるのが少ないので、エラー究明に有効です。 この要領をぜひ活用すべきです。 ーーー もう元のVBAのコードの中身に、踏み込んでいるようだから、 Function XVLOOKUPの部分(XVLOOKUP を呼び出している部分は) たとえば Sub test01() i = 2 Range("B" & i) = WorksheetFunction.VLookup(Range("A" & i), Range("E1:F19"), 2, False) End Sub のように、置き換えてはどうですか?(もちろんSub test01()、End Subは除く。そしてFunction XVLOOKUPは除く) ワークシート関数にあるものを、またVBAの中で関数化するのは、ややこしくするだけではないですか。

JohnWillyBrandt
質問者

お礼

ありがとうございます。HPを参照し、参照を削除しましたらうまくいきました。今後は教えていただいた方法でよく調べます。

すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.4

本当にエクセル10(※確かOfficeXPだったと記憶)を 未だお使いだとしたらなかなかのアレですが・・・ というか、むしろそこが一番の問題のような気がします。 2010をお使いであると仮定して話を進めましょう。 まず、気になるキーワードとして >新たに=Vlookup関数を入れてもうまく作動しません。 これ。 うまく作動しない=画面にはなんと表示されているのでしょう? 仮に「#N/A」だとすると、 単純にVLOOKUP関数の第1引数(検索値)が 条件に合っていないだけのような気がします。 ※第4引数をFALSE=完全一致にしているが  リストに「検索値」に見合うデータが無い、とか  そもそも「検索値」が空白だ、とか。 なので、ご質問の3・4については「VBAは関係ない」はずです。 VLOOKUP式をよく見返してみると見えてくるかもしれません。 ユーザー定義関数に目を向けると・・ >プロジェクトまたはライブラリがみつかりません まぁ、書いてある通りでしょう。 参照設定を確認し、然るべきライブラリファイルを使える状態にしましょう。 ・・・でも、この文を見る限り、「#N/A」は出ないように見えるんですけどね。 VBA中のVLOOKUP関数で何らかのエラーが返ってきたら、 XVLOOKUPは第4引数で設定してある「エラー時の表示値」を返すはずですし、 「~の表示値」を省略したら#VALUE!が返りますよね。 何にせよ、シートに打ってあるはずのVLOOKUP関数式を もう一度見直してみることを強くオススメします。 とりあえず、もう少し情報が欲しいなぁ、という本音を吐きつつ。

すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

今まで使えていた =XVlookup(「検索値」,「範囲」,「列番号」,「エラー時の表示」) という書式で,「検索値」「範囲」「列番号」のところに何を入れて計算すれば良いのかは理解できていますね? >エクセル10を使用しております。 エクセル2010と言いたかったのだとします。 手順: マクロを消去する いままでのXVLOOKUP関数を入れていたセルを全部Deleteキーで消去する 代わりに =IFERROR(VLOOKUP(「検索値」,「範囲」,「列番号」,FALSE),「エラー時の値」) という数式に書き換えて計算する。 言わずもがなですが,「検索値」他は正しい内容を入れて数式を作成してください。

すると、全ての回答が全文表示されます。
  • ubku
  • ベストアンサー率37% (227/608)
回答No.1

「いつもと違う他のPC」でOfficeの修復を行ってみてください。

参考URL:
https://support.microsoft.com/ja-jp/kb/2179287
すると、全ての回答が全文表示されます。

関連するQ&A