Excelで、F列にお客様番号と使用料を入力し、F列のお客様番号とB列のお客様番号が一致した時、F列に入力した使用料がC列に転記されていくようにしたいです。
Excelで、F列にお客様番号と使用料を入力し、F列のお客様番号とB列のお客様番号が一致した時、F列に入力した使用料がC列に転記されていくようにしたいです。 添付画像の例だと、使用料「20」がC4に転記されるようにしたいです。 関数でも、VBA(ユーザーフォーム?)でも構わないのですが、何か方法はありますでしょうか? VLookupなど考えてみたのですが、良い方法に辿り着けず… お知恵をお借りしたいです。 よろしくお願いいたします。
Excel | Visual Basic・57閲覧・500
ベストアンサー
関数では無理です。関数は変更後を残しておくことができません。F2のお客様番号を変更するとC列の使用量は消えます。 VBA ならできます。 ' Private Sub Worksheet_Change(ByVal Target As Range) ' If Target.Address <> "$F$3" Then End End If ' Set Target = [B:B].Find([F2], LookIn:=xlValues, LookAt:=xlWhole) ' If Target Is Nothing Then MsgBox "お客様番号がありません", vbCritical End End If Application.EnableEvents = False Target.Offset(, 1) = [F3] Application.EnableEvents = True End Sub シートモジュールに入れて下さい。 SheetBのシート名の所を右クリック、コードの表示を選び、そこに入力して下さい。
質問者からのお礼コメント
お二方、どちらの方法でもできました! 自分では考えつかなかったVBAでの方法をご教授くださった方をベストアンサーとさせて頂きます。 ありがとうございました。
お礼日時:7/7 9:44