• ベストアンサー

エクセル関数で検索した結果の値だけ表示したい

エクセルのセルに値を探すvlook関数を入力していますが、そのままグラフや集計表を作ったり、移動させたりと色々編集したいので値を探した後、数式を値に変えたいのです。 =IF(ISNA(VLOOKUP(D6,**!$B:$E,4,FALSE)),"",VLOOKUP(D6,**!$B:$E,4,FALSE))のような値が見つからなかった時は空白になる数式が入っています。 値が見つかった場合、「コピー」して「形式を選択して貼付」のような「値」だけにする方法ありませんか? VBAは初心者でネットを見ながら作れる程度です。 イベントで実行するマクロなど調べてはみたのですが、値が見つかったら実行するマクロや空白でなくなったら実行するマクロなど作れたらと思っています。 詳しい方どうか教えて下さい。

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

  • ベストアンサー
noname#187541
noname#187541
回答No.2

こんにちは。 数式からするとD6に値を入力して検索しているようですね。 ということはWorksheet_Changeイベントを使うといいでしょう. 検索範囲はSheet2としています。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$D$6" Then Exit Sub Dim var As Variant On Error Resume Next With Worksheets("Sheet2") var = WorksheetFunction.VLookup(Range("D6").Value, .Range("$B:$E"), 2, False) Range("B1").Value = var End With End Sub こんな感じでしょうか。

noname#113614
質問者

お礼

Changeイベント、初めて知りました!かなり使えそうです。ありがとうございました。他にもOn Error Resume Nextなど解らない所があるので調べながら使いたいと思います。丁寧に教えて頂きありがとうございました。

その他の回答 (1)

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

単純に「コピー」して「形式を選択して貼付」をマクロの記録で記録して、sheetのChangeイベントで起動すればいかが 複数行あるのであれば、検索からマクロで作成の方が速いと思うけど 質問からアドバイスできるのはこれくらいです

noname#113614
質問者

お礼

Changeイベント、初めて知りました!かなり使えそうです。ありがとうございました。おっしゃる通り「コピー」して「形式を選択して貼付」をマクロの記録で記録するまでは出来たのですが、実行する時点で行き詰ってしまいました。複数行あるので、空白以外を検索して記録マクロを実行したいと思います。ありがとうございました。

関連するQ&A