• ベストアンサー

エクセルで任意でエラーメッセージを表示したいのですが

こんにちは。 エクセルでコード表を別シート上につくりVLOOKUP関数でコードを入力して表示しているのですが、別シートのコード表に登録されていない場合任意でエラーメッセージで ”登録されておりません”と言うように表示したいのですが 教えてください。 ちなみにAの1に10 Bの1には りんご と表示出来るようになってます。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

litoruさん、こんにちは。 Wendy02です。 >今作っているものは他の人が使うのでエラーメッセージを出してあげた方親切かなって思ったので。 私も、他人の使うものは、いくつかの「エラー処理」は考えてあげたほうが良いと思っています。 >ご指摘いただいたとおりエラーになっております。 そこで、 =VLOOKUP(A1,範囲,列番号,0) この式をもう一度、データの元の範囲をきちんと設定し直してみてください。次に列の数は範囲内ですか?何か、ずれているのではありませんか? 式を修正しようとすると、同じシート内でしたら、カラーリファレンスと言って、その引数の範囲に色の枠が付きますから、それで確認できるかと思います。

litoru
質問者

お礼

遅くなり誠に申し訳ありませんおかげさまで何とかなりそうです。 ありがとうございました。

その他の回答 (6)

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

#4です。 回答が続いているので、#4で述べたことをコードにしてみました。 Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo errdesp Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") If Target.Address = "$A$1" Then W = Application.WorksheetFunction.VLookup(sh1.Range("a1"), sh2.Range("a2:B6"), 2, False) sh1.Range("b1") = W End If Exit Sub errdesp: MsgBox "品名コードが表にありません" sh1.Range("a1:B1") = "" End Sub Sheet1のChangeイベントに下記を貼り付ける。 A1にコードを入力する。 Sheet2に コード 品名 1 りんご 2 みかん 3 バナナ 4 もも 6 ぶどう を作ったので、5や7以上を入れるとエラー表示が出ます。 使えるかどうかは心配ですが検討してください。 「Sheet1のChangeイベントに・・」は勉強してくだくとして、略します。

litoru
質問者

お礼

遅くなり誠に申し訳ありませんおかげさまで何とかなりそうです。 ありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

#2 の Wendy02 です。 単に、この式だけで、 =VLOOKUP(A1,範囲,列番号,0) 範囲、列番号の引数を入れて、A1 に「登録がされているコード」を入れたら、正しく、値が返りますか? エラーが返っているのではありませんか?

litoru
質問者

補足

お答えありがとうございます。 ご指摘いただいたとうりエラーになっております。 >< VLOOKUP関数を使用しているものを今までは、自分専用に使っておりましたが、今作っているものは他の人が使うのでエラーメッセージを出してあげた方親切かなって思ったので。 お願いしますm(_”_)m

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

VLOOKUP関数の前にISERRORでIF文で、エラーメッセージを表示されるということは、セルの値にエラーメッセージ文字列がセットされてしまいます。普通はそれで苦情がないのですが、それを避けてメッセージだけを出して、値は空白にしたいとなると、VBAでも使わないとできないように思います。 VBAでもWorksheetFunctionでVLOOKUP関数が使えます。 これをユーザー関数の中で使い、エラーを捕らえて、MSGBOXでメッセージを出し(エラー各行で出る)、値は空白を返す。

litoru
質問者

補足

お答えありがとうございます。 遅くなって申し訳ありません。 VBAですか・・・。今まで使った事ないですね・・・。 うまく組めるかな・・・? 今まではVLOOKUP関数を使用している表を自分専用として使っておりましたが、今作っている表は初めて使う人用に作っておりエラーメッセージをだして上げた方が解かりやすいかと思って下ります。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

B1: =IF(ISERROR(VLOOKUP(A1,範囲,列番号,0)),"登録されておりません",VLOOKUP(A1,範囲,列番号,0)) というような、IFの論理関数で、分けてみたらいかがですか?

litoru
質問者

補足

お答えありがとうございます。 =IF(ISERROR(VLOOKUP(A1,範囲,列番号,0)),"登録されておりません",VLOOKUP(A1,範囲,列番号,0)) 確かに"登録されておりません”と表示されるのです、 登録がされているコードを入力しても"登録されておりません”と出てしまってます  T-T

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

=if(isNA(VLOOKUP(…)),"登録されておりません",VLOOKUP(…))

  • TAK_999
  • ベストアンサー率43% (42/96)
回答No.1

データメニューに「入力規則」というのがあります。 ここでセルに入力できる数値の範囲や、範囲外の入力があった場合の エラーメッセージを定義できます。

関連するQ&A