プロが教えるわが家の防犯対策術!

昨夜から20時間くらい悩んでおります・・・。どなたかよろしくお願いします。

(概要)
エクセルで 「オーダー受付」と「顧客データ」の2つのシートがあります。
●「オーダー受付」のセルには、K3電話番号 K4お名前 K5住所1 K6住所2 と縦に表示用セルを設けています。
●「顧客データ」のセルには、A1 A2 A3 A4 と横に上記データを記録してあり、すでに1万行を超えています。

(やりたい事)
●お客様から電話があったときに「オーダー受付」シートの K3に電話番号をいれマクロを実行すると、「顧客データ」から残りの項目である 名前・住所1・住所2 が転記されるようにしたいです。

●もし新規のお客様で、検索結果なしの場合は引き続きお名前・住所1・住所2 とお尋ねし、後からコピペでデータ一覧へ足しています。この辺の操作は検索・転記が解決してから挑戦しようと思っています。

是非、ご回答ください。

A 回答 (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セルが書き換わったら検索するようにしましたが、手動で起動するなら標準モジュールのマクロだけでもよいです。
    • good
    • 0
この回答へのお礼

zap35さん、早速ありがとうございます。
まったく問題なく動作しました。かなり感激しました!

普段は自動記録で基本動作を作り、細部を修正することでマクロを
活用しています。その程度の知識ですので、zapさんのサンプルで
「なぜ」マクロが動くのか理解はできませんが少しずつ研究します。

おっしゃる通り、K3が書き換わったら検索されました。また、新規と
表示もされるので大変便利です。月曜からはスタッフ全員で活用させて
いただきます。ありがとうございます。

お礼日時:2006/11/04 16:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!