みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2008-05-19 11:56:19

QNo.4033593

困ってます

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

こんにちは。

数式からすると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

こんな感じでしょうか。

投稿日時 - 2008-05-19 13:10:02

お礼

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

投稿日時 - 2008-05-20 10:20:36

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

単純に「コピー」して「形式を選択して貼付」をマクロの記録で記録して、sheetのChangeイベントで起動すればいかが

複数行あるのであれば、検索からマクロで作成の方が速いと思うけど

質問からアドバイスできるのはこれくらいです

投稿日時 - 2008-05-19 12:53:36

お礼

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

投稿日時 - 2008-05-20 10:27:27

あなたにオススメの質問