• ベストアンサー

マクロ初心者です。

Microsoft Excel 2010 の質問です。 Sheet1のB2に社員番号を入力させ、ENTERを押した時にSheet1のC2に「Sheet2の社員リスト」を社員番号でLOOKUPさせた結果を表示し、入力者が正しいと判断し、再びENTERを押したとき、Sheet1のB2とC2のデータをSheet3のA2とB2から順番に下に転記したのち、Sheet1のB2をクリアし入力待ちに戻る。ENTERを押してもカーソルは動かない・・・・というマクロを作成したいのですが、初心者のためどのように考えてよいか解りません。 お詳しい方、ご教示願えないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

Sheet1のシートモジュールに下記のコードをコピペ Private Sub Worksheet_Change(ByVal Target As Range) Dim myR As Variant, RET As Long, LR As Long Dim myNum As String, myName As String With Target If .Count > 1 Then Exit Sub If .Address <> "$B$2" Or .Value = "" Then Exit Sub Range("B2").Select myNum = .Value myR = Application.Match(.Value, Sheets("Sheet2").Columns(1), 0) If Not IsError(myR) Then myName = Sheets("Sheet2").Cells(myR, "B").Value Range("C2").Value = myName RET = MsgBox("社員番号:" & myNum & vbCrLf & "社員名:" & myName & vbCrLf & _ "見つかりました。Sheet3に登録しますか ", vbYesNo + vbQuestion) If RET = vbYes Then With Worksheets("Sheet3") LR = .Cells(Rows.Count, "A").End(xlUp).Row + 1 .Cells(LR, "A").Value = myNum .Cells(LR, "B").Value = myName End With End If Else MsgBox "社員番号:" & .Value & " は見つかりません" End If Range("B2:C2").ClearContents End With End Sub

ferrari328gtslf
質問者

お礼

昨日は有難うございました。 あれから実装を試みたのですが、当方標準モジュールしか使用した経験がなく、シートモジュールへのコピーおよびマクロの実行方法が解らず、色々調べたものの未だ実装出来ていません。 シートモジュールへの記述とマクロの実行はどのようにすれば良いのでしょうか?

関連するQ&A