• 締切済み

エクセルVBAでセル変化したら別のセルへコピーする

おはようございます。VBAをはじめて浅い初心者です。 あるセルに数字および文字列が入力されたら違うセルへコピーしたいのですがどのようにすればできますか。 Private Sub Worksheet_Change(ByVal Target As Range)とか 使用してつくればいいのですか?教えてください。

みんなの回答

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

補足しておきます。 もし、同じシートの中に行をコピィする場合 以下は、変更があった行を1行目に入れるですが、 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row > 1 Then Rows(1).Value = Rows(Target.Row).Value End If End Sub の用に値を入れる行と変更があった場合に実行する行を分けておかないと 永久ループになりますので注意してください。 以下は、ダメ事例です。 Private Sub Worksheet_Change(ByVal Target As Range) Rows(1).Value = Rows(Target.Row).Value End Sub

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

変更があった行を Sheet2の同じ行に入れる例 Private Sub Worksheet_Change(ByVal Target As Range) Worksheets("Sheet2").Rows(Target.Row).Value = Rows(Target.Row).Value End Sub 変更があった列を Sheet2の同じ列に入れる例 Private Sub Worksheet_Change(ByVal Target As Range) Worksheets("Sheet2").Columns(Target.Column).Value = Columns(Target.Column).Value End Sub

dirtyflogs
質問者

お礼

ありがとうございます。何度もお手数をかけて申しわけないです。 初心者にわかりやすく勉強にもなりました。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

一例です。 シートの名前のタブを右クリックして コードの表示 をクリック Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then Cells(Target.Row, 2).Value = Target.Value End If End Sub をコピィ 1列目のセルに変更があったら、2列目にも同じ内容をいれる です。

dirtyflogs
質問者

お礼

ありがとうございました。無事うまくいきました。 ちなみに行と列を一括で違う行と列にコピーしたい場合はどうすればいいですか?

  • yossy0426
  • ベストアンサー率24% (32/130)
回答No.1

どうもです。 一度マクロを作成してみては? やりたい事を一連の流れで記録して中をみればやりたい事が見えてくると思います。

関連するQ&A

専門家に質問してみよう