| 
    
     |  | おはようございます。 
 >貼り付け後VLOOKUPするのもどうかと思ってます
 ADOのFindメソッドを使ってみました。
 
 >配達者一覧(Access側)
 >地域|配達者
 >大阪|太郎
 >京都|次郎
 >東京|三郎
 
 このテーブルがsample1.mdbというmdbファイルにあるとして・・・。
 (テーブル名やフィールド名も上記のとおりだとして)
 
 Excel側は、新規ブックにて
 
 標準モジュール(Module1)に
 
 '=====================================================
 Sub mk_sample()
 With ActiveSheet
 .Range("a1:b5").Clear
 .Range("a1:b1").Value = Array("地域名", "日々配達者")
 .Range("b2:b5").Value = [{"三郎";"次郎";"一郎";"太郎"}]
 End With
 End Sub
 
 上記mk_sampleを実行してみてください。
 アクティブシートにサンプルデータが作成されます。
 作成されたデータに対して、地域名を設定するVBAを考えます。
 
 
 実際のコードです。
 
 別の標準モジュール(Module2)にADO I/Oプロシジャー群
 
 '================================================================
 Private cn As Object
 Function open_db(dbpath As String) As Long
 On Error GoTo err_open_db
 open_db = 0
 foldnm = ThisWorkbook.Path & "\"
 Set cn = CreateObject("ADODB.Connection")
 cn.ConnectionString = "provider=Microsoft.jet.OLEDB.4.0;" & "Data Source=" & dbpath
 cn.Open
 On Error GoTo 0
 Exit Function
 err_open_db:
 MsgBox Error(Err.Number) & Err.Number
 open_db = Err.Number
 End Function
 '================================================================
 Sub close_db()
 On Error Resume Next
 cn.Close
 Set cn = Nothing
 On Error GoTo 0
 End Sub
 '================================================================
 Function execute_sql(sql As String, grs As Object) As Long
 On Error GoTo err_sql
 close_rs grs
 execute_sql = 0
 grs.Open sql, cn, adOpenStatic, adLockPessimistic
 ret_err_sql:
 On Error GoTo 0
 Exit Function
 err_sql:
 MsgBox Error(Err.Number) & Err.Number
 execute_sql = Err.Number
 Resume ret_err_sql
 End Function
 '================================================================
 Sub close_rs(grs As Object)
 On Error Resume Next
 grs.Close
 End Sub
 
 
 別の標準モジュール(Module3)に、サンプルデータを加工するコード
 
 '===========================================================
 Sub test()
 Dim rs As Object
 Dim rng As Range
 Dim crng As Range
 With ActiveSheet
 Set rng = .Range("b2", .Cells(.Rows.Count, "b").End(xlUp))
 End With
 If rng.Row > 1 Then
 Set rs = CreateObject("adodb.recordset")
 If open_db(ThisWorkbook.Path & "\sample1.mdb") = 0 Then
 If execute_sql("配達者一覧", rs) = 0 Then
 rng.Offset(0, -1).ClearContents
 For Each crng In rng
 rs.Find "配達者 = '" & crng.Text & "'", , adSearchForward, 1
 If rs.EOF <> True Then
 crng.Offset(0, -1).Value = rs!地域
 End If
 Next
 Call close_rs(rs)
 End If
 Call close_db
 End If
 Set rs = Nothing
 End If
 Set rng = Nothing
 Set crng = Nothing
 End Sub
 
 
 testを実行してみてください。
 A     B
 1 地域名  日々配達者
 2 東京    三郎
 3 京都    次郎
 4       一郎
 5 大阪    太郎
 
 
 こんな結果になりました。
 試してみてください。
 
 |  |