- ベストアンサー
自動入力マクロ教えてください
sheet1のB列に数値を入力していますデータは10行目以降に入力されています。 データが1,10.20ならsheet2のB列、2.15.35ならsheet2のC列5.40ならsheet2のD列それ以外はsheet2のE列に自動的に入力したいのですがそのマクロを教えていただけないでしょか。行はsheet1と同じ行に入力します
- みんなの回答 (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)
こんな所でしょうか。 ワークシートのイベントを使います。 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,"")
- harukabcde
- ベストアンサー率15% (94/610)
マクロのトリガは何ですか? 関数の方が楽だと思うけどね
- Wendy02
- ベストアンサー率57% (3570/6232)
>データが1,10.20ならsheet2のB列 B列のどこなんですか?Sheet1と同じ行ですか、それとも、1行目から、それぞれの列に行間を空けずに、データを収めていくのですか?
補足
行はSHEET1と同じ行です。 ご回答よろしくお願いします。