コード番号を入力することで、複数の関連情報を転記する時に利用します。
使用頻度の高く、重要度の高いサンプルコードです。
ExcelVBAリファレンスに「Findメソッド」の使用例が次のように出ています。
------------------------------
セル範囲内で特定の情報を検索します。
シート 1 のセル範囲 A1:A500 で、値に 2 が含まれているセルを検索し、その値を 5 に変更します。
With Worksheets(1).Range("a1:a500")
Set c = .Find(2, lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = 5
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
------------------------------
上記の例から、次のように書き換えて利用しています。
アクティブシートに振込先コードを入力し、振込先情報シートから関連情報を転記する例です。
Public Const Sht_furikomi As String = "振込先"
Sub 振込先コードto振込先情報()
'検索に利用する変数
Dim Serch_ID As String
Dim Dat_SerchArea As String
Dim c As Range
Application.ScreenUpdating = False
'振込先情報シートで検索するセル範囲(振込先コードがある列)
Dat_SerchArea = "B:B"
'検索する振込先コード番号を取得
Serch_ID = ActiveSheet.Range("F" & ActiveCell.Row).Value
'Serch_ID が無ければ終了(Val関数で0なら入力なしとする)
If Val(Serch_ID) = 0 Then Exit Sub
With Worksheets(Sht_furikomi).Range(Dat_SerchArea)
'lookat:=xlWhole で完全一致、xlPart なら部分一致
Set c = .Find(Serch_ID, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
'振込先情報シートから、アクティブシートに関連情報を転記する
With ActiveSheet
.Range("G" & ActiveCell.Row).Value = Sheets(Sht_furikomi).Range("C" & c.Row).Value '振込先
.Range("M" & ActiveCell.Row).Value = Sheets(Sht_furikomi).Range("E" & c.Row).Value '銀行
.Range("N" & ActiveCell.Row).Value = Sheets(Sht_furikomi).Range("F" & c.Row).Value '支店
.Range("O" & ActiveCell.Row).Value = Sheets(Sht_furikomi).Range("G" & c.Row).Value '種
.Range("P" & ActiveCell.Row).Value = Sheets(Sht_furikomi).Range("H" & c.Row).Value '口座番号
.Range("Q" & ActiveCell.Row).Value = Sheets(Sht_furikomi).Range("I" & c.Row).Value '口座名
End With
End If
End With
End Sub