- ベストアンサー
エクセルでオーダー受付時に顧客データを転記する方法
- エクセルで、「オーダー受付」と「顧客データ」の2つのシートがあります。オーダー受付シートには、電話番号・お名前・住所などのデータを記録しています。顧客データシートにも同じデータを縦に記録してあり、すでに1万行を超えています。
- お客様からの電話があったときに、オーダー受付シートの電話番号に番号を入力し、マクロを実行すると、顧客データシートから名前・住所などのデータが自動的に転記されるようにしたいです。
- 新規のお客様の場合は、顧客データシートで検索結果がない場合には、お名前・住所などのデータを別途入力し、後からデータ一覧に追加する操作も行いたいと考えています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
何がどうダメなのかわかりませんが、サンプルをのせます。 たぶん検索する際のオブジェクトの指定が曖昧になっていてエラーになったのではないかと推察しますが… 「オーダー受付シート」のマクロ記述 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$K$3" Then Call KokyakuSearch End If End Sub 「標準モジュール」のマクロ記述 Option Explicit Sub KokyakuSearch() Dim LastR As Long, res With Worksheets("顧客データ") LastR = .Range("A1").End(xlDown).Row res = Application.Match(ActiveSheet.Range("K3"), _ Range(.Cells(1, 1), .Cells(LastR, 1)), 0) If IsNumeric(res) Then Range("K4") = .Cells(res, 2) Range("K5") = .Cells(res, 3) Range("K6") = .Cells(res, 4) Else Range("K4") = "新規" Range("K5:K6").ClearContents End If End With End Sub 「オーダー受付」シートのK3セルが書き換わったら検索するようにしましたが、手動で起動するなら標準モジュールのマクロだけでもよいです。
お礼
zap35さん、早速ありがとうございます。 まったく問題なく動作しました。かなり感激しました! 普段は自動記録で基本動作を作り、細部を修正することでマクロを 活用しています。その程度の知識ですので、zapさんのサンプルで 「なぜ」マクロが動くのか理解はできませんが少しずつ研究します。 おっしゃる通り、K3が書き換わったら検索されました。また、新規と 表示もされるので大変便利です。月曜からはスタッフ全員で活用させて いただきます。ありがとうございます。