| 
    
     |  | VBAで実行するなら・・・。 
 
 Sub Sample()
 Dim Int_Row As Long, Int_Key As Long
 
 Dim Rng_Key As Range
 'Sheets("SHEET1").Cells(65536, 2).End(xlUp).Row : シート1の B65536 を基点に上方向に値を持つ最後の行の行番号を返します。
 '変数 Int_Row は 1〜 B列の最終行迄1づつカウントアップ
 For Int_Row = 1 To Sheets("SHEET1").Cells(65536, 2).End(xlUp).Row Step 1
 'A列が空白で無い場合には SHEET2のA列にて同じ値を持つセルを検索し 変数 Rng_Key に 格納
 If Sheets("SHEET1").Cells(Int_Row, 1).Value <> "" Then
 Set Rng_Key = Sheets("SHEET2").Columns(1).Find(Sheets("SHEET1").Cells(Int_Row, 1).Value)
 'SHEET2のA列にて同じ値を持つ行が無かった場合 変数 Int_Key に0を 格納
 If Rng_Key Is Nothing Then
 Int_Key = 0
 Else
 'SHEET2のA列にて同じ値を持つ行が有った場合 変数 Int_Key に B 列の値を 格納
 Int_Key = Rng_Key.Offset(0, 1).Value
 End If
 'Rng_Key Objectの開放
 Set Rng_Key = Nothing
 End If
 'SHEET1の Int_Row 行 B列の値が 空白でない場合
 If Sheets("SHEET1").Cells(Int_Row, 2).Value <> "" Then
 '変数 Int_Key を Int_Row 行 C列に書き出し
 Sheets("SHEET1").Cells(Int_Row, 3).Value = Int_Key
 End If
 Next Int_Row
 End Sub
 
 |  |