|    | 
     ▼真田● さん: 
 
>は、このまま使えるVBAなのでしょうか? 
 
いえいえ、サンプルというかコードの雛形というか、考え方です。 
 
>マクロの記録で処理すると原因不明のエラーが出やすいので 
>使用は控えたいところです。 
 
そのまま使えることもありますが、それは、例外かもですね。 
通常は、固定領域であったり、固定のシートになっていたり 
なによりも Select とか Selection がてんこ盛りに生成されますから 
お化粧直しをして使います。 
 
でも、コードの雛形を提供してくれるありがたい機能ですよ。 
 
【このまま使えるか】というコメントも、その一端ですけど、 
雛形を自分の要件に合わせてチューニングするようにしていかないと 
【そのままコピペで自分の要件をカバーして満足すり結果が得られるコード】 
だけを求めると、なかなか身につきませんよ。 
 
ということで、以下も【サンプル】です。 
新規ブックで試してください。 
まず、MakeData を実行してください。I列、J列にリストを作成します。 
 
次にSampleを実行してください。 
I列、J列のリスト範囲を自動的に判定取得して、その領域に対して 
変数 s で検索をかけています。 
最初はリスト内に存在する値、次にリスト内に存在しない値で 
VLOOKUPをかけています。 
 
Sub MakeData() 
  Dim i As Long 
   
  Cells.Clear 
   
  For i = 1 To 100 
    Cells(i, "I").Value = "a" & i 
    Cells(i, "J").Value = "x" & i 
  Next 
     
End Sub 
 
Sub Sample() 
  Dim z As Variant 
  Dim s As String 
   
  s = "a60" 
   
  z = Application.VLookup(s, Range("I1", Range("I" & Rows.Count).End(xlUp)).Resize(, 2), 2, False) 
  If IsError(z) Then 
    MsgBox s & " は見つかりません" 
  Else 
    MsgBox "結果は " & z & " でした" 
  End If 
   
   
  s = "a999" 
   
  z = Application.VLookup(s, Range("I1", Range("I" & Rows.Count).End(xlUp)).Resize(, 2), 2, False) 
  If IsError(z) Then 
    MsgBox s & " は見つかりません" 
  Else 
    MsgBox "結果は " & z & " でした" 
  End If 
   
End Sub 
 | 
     
    
   |