dポイントプレゼントキャンペーン実施中!

質問お願いいたします。

1つのexcelファイルにて、特定のシートのベースにし、その他のシートで入力された値がベースシートとデータを常に双方向で同期するマクロの組み方を教えて頂きたいです。
ただし、双方向で同期させるのは最新の入力があったシート同士のみとしたいです。
環境はwindows vista、 excel2007です。

具体的な例を示します。
ベースシートをsheet1とする。
sheet1のA1~A10とsheet2のB1~B10やsheet3のC1~C10を双方向でリンクさせたいです。
sheet1は未入力としておき、sheet2にデータを入力すると、sheet1に反映させ双方向で同期させます。
次にsheet3に入力するとsheet1のデータ部分に上書きし同期させます。
ただし、このときsheet2とsheet3はリンクさせたくありません。
同期を取るのは一番新しい入力があったsheet同士のみにしたいです。


当方excel初心者のため拙い説明となっておりますが、わかりにくい部分がございましたら追記させていただきます。
どうぞよろしくお願いします。

A 回答 (1件)

「同期する」というよりは、sheet2、sheet3が変更されたら一方的にデータをsheet1にコピーしてあげればよいのではないでしょうか?


入力ミスなども拾ってしまう可能性があるので(反映しなくても良いはずの変更も拾ってしまう)、お望みの通りかどうかはよくわかりませんが…


◇sheet2への設定例(sheet2のマクロに設定)
(sheet3へも範囲を変えて同様の設定をする)
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim c As Range
 For Each c In Target
  If Not (Intersect(Range("B1:B10"), c) Is Nothing) Then
   Sheets("sheet1").Cells(c.Row, 1).Value = c.Value
  End If
 Next c
End Sub
    • good
    • 0

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