|
▼真田● さん:
>は、このまま使える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
|
|