• ベストアンサー

自動入力マクロ教えてください

sheet1のB列に数値を入力していますデータは10行目以降に入力されています。 データが1,10.20ならsheet2のB列、2.15.35ならsheet2のC列5.40ならsheet2のD列それ以外はsheet2のE列に自動的に入力したいのですがそのマクロを教えていただけないでしょか。行はsheet1と同じ行に入力します

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

ワークシートの最下部のシート[タブ](Sheet1/Sheet2...)のところを右にクリックし、コードの表示から以下を貼り付けてください。画面が開いたら、閉じるときは、一番上の「×」で閉じてください。 >データが1,10.20なら sheet2 の B 列、 >2.15.35なら sheet2 の C 列 >5.40ならsheet2 の D 列 >それ以外は sheet2 の E 列に は、それぞれ、  1 ,  10,  20 →B列  2 ,  15,  35 →C列  5 ,  40    →D列  それ以外     E列 と読み換えましたので、もし違っているようでしたら、ご指摘ください。 なお、以下は、リンクではありませんので、現在の設計では、シート1で、入力したセルを削除しても、シート2側が消えていることはありません。 '------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub  If Not Intersect(Target, Range("B10", Range("B65536"))) Is Nothing Then  '適用範囲   With Worksheets("Sheet2")  'ワークシート2   Select Case Target.Value    Case 1, 10, 20     .Cells(Target.Row, "B").Value = Target.Value    Case 2, 15, 35     .Cells(Target.Row, "C").Value = Target.Value    Case 5, 40     .Cells(Target.Row, "D").Value = Target.Value    Case Else     .Cells(Target.Row, "E").Value = Target.Value   End Select   End With  End If End Sub '-------------------------------------------------

その他の回答 (3)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

こんな所でしょうか。 ワークシートのイベントを使います。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row >= 10 And Target.Column = 2 Then If Target.Value = "" Then Exit Sub ElseIf Target.Value = 1 Or Target.Value = 10 Or Target.Value = 20 Then Sheets("Sheet2").Range("B" & Target.Row) = Target.Value ElseIf Target.Value = 2 Or Target.Value = 15 Or Target.Value = 35 Then Sheets("Sheet2").Range("C" & Target.Row) = Target.Value ElseIf Target.Value = 5 Or Target.Value = 40 Then Sheets("Sheet2").Range("D" & Target.Row) = Target.Value Else Sheets("Sheet2").Range("E" & Target.Row) = Target.Value End If End If End Sub 関数だと、 =IF(OR(Sheet1!B10=1,Sheet1!B10=10,Sheet1!B10=20),Sheet1!B10,"")

回答No.2

マクロのトリガは何ですか? 関数の方が楽だと思うけどね

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

>データが1,10.20ならsheet2のB列 B列のどこなんですか?Sheet1と同じ行ですか、それとも、1行目から、それぞれの列に行間を空けずに、データを収めていくのですか?

tkoo
質問者

補足

行はSHEET1と同じ行です。 ご回答よろしくお願いします。

関連するQ&A

専門家に質問してみよう