質問お願いいたします。
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 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
NO1です。
>1点目です。
>貼り付けたとき、B1やC1のデータしか反映されませんでした。
⇒多分、複数セルに同時に入力された場合、このような振舞になりますので以下のコードに変更
して下さい。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B1:B10")) Is Nothing Then Exit Sub
For Each a In Range(Target.Address)
Worksheets("Sheet1").Cells(a.Row, "A") = Target.Value
Next
End Sub
>2点目です。
>Sheet1への貼り付け先を変則的に変えるには、
⇒例えば、B10:B20では11セルがあるのでとりあえず、B11:B20として回答します。
Worksheets("Sheet1").Cells(Target.Row, "B").Offset(10) = Target.Value
Cellsの第2引数でB列、Offsetで10行分シフトさせています。
No.1
- 回答日時:
一例です。
(1)Sheet2タブ上で右クリック→コードの表示→以下のコードを貼り付け
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B1:B10")) Is Nothing Then Exit Sub
Worksheets("Sheet1").Cells(Target.Row, "A") = Target.Value
End Sub
(2)Sheet3タブ上で右クリック→コードの表示→以下のコードを貼り付け
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C1:C10")) Is Nothing Then Exit Sub
Worksheets("Sheet1").Cells(Target.Row, "A") = Target.Value
End Sub
ありがとうございます。
理想としていたものにかなり近いものとなっています。
2点質問があります。
1点目です。
貼り付けたとき、B1やC1のデータしか反映されませんでした。もしかしたら私のミスかもしれませんがご確認いただいてよろしいでしょうか?
2点目です。
Sheet1への貼り付け先を変則的に変えるには、
Worksheets("Sheet1").Cells(Target.Row, "A") = Target.Value
の部分をどのように変更すればよろしいでしょうか?
たとえばSheet1のB10~B20へ張り付けるという場合です。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 売上管理シートに入力した売上データを、日報に自動反映させたいと考えています。 売上管理シ 3 2023/04/29 18:08
- Excel(エクセル) Excelで日報を自動で作成したい 売上管理シートに入力した売上データを、日報に自動反映させたいと考 1 2023/04/29 18:07
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Visual Basic(VBA) VBA 別sheetからの転記なのですが 2 2023/05/22 15:55
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- その他(プログラミング・Web制作) python文字化けエラーが発生しているようです 3 2022/04/13 19:41
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Visual Basic(VBA) VBA Userform転記のみ編集可 1 2023/06/29 11:03
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
お肉の下のシートを煮込んでし...
-
エクセルを利用して、日計と累...
-
ミラーフィルム、ミラーシート...
-
excel シート1の奇数(偶数)...
-
条件にマッチする行を抽出するV...
-
指定した条件でTRANSPOSE関数を...
-
エクセルで○のついた項目を抽出
-
エクセルのシートをコピーして...
-
2センチ四方くらいのタイルを...
-
エクセルで1行だけ数式が反映さ...
-
2つのシート間での重複データ...
-
エクセルにて2つの列の組み合わ...
-
エクセルでフラグがたっている...
-
除湿シートの使い方が分かりません
-
チュロス袋の代用
-
毎日の日計を別シートに自動で...
-
Excelの空のセル
-
A1セルに入力したら、入力時間...
-
EXCELで○ヶ月を○年○ヶ月に変換...
-
Excelで同じセルに箇条書きをし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
お肉の下のシートを煮込んでし...
-
エクセルを利用して、日計と累...
-
エクセルのシートをコピーして...
-
2つのシート間での重複データ...
-
毎日の日計を別シートに自動で...
-
エクセルでフラグがたっている...
-
条件にマッチする行を抽出するV...
-
エクセルで1行だけ数式が反映さ...
-
エクセルで2つのシートに同じ名...
-
チュロス袋の代用
-
複数シートのセルの 記号の数...
-
excel シート1の奇数(偶数)...
-
クッキングシート
-
エクセルで○のついた項目を抽出
-
エクセル ○印がついている行を...
-
Excelで複数のシートに列のグル...
-
複数シートの列、幅の一括変更方法
-
エクセルでシート間の相対参照
-
2センチ四方くらいのタイルを...
-
指定した条件でTRANSPOSE関数を...
おすすめ情報