- ベストアンサー
Excelのセル内容を一致させる
エクセルでセルの内容を常に一致させておきたいのですが、方法が分かりません。 具体的には二つのセル(Sheet1のセルA1とSheet2のセルB2)の内容を、どちらか一方を変更したら、もう片方も自動的に変更され、常に二つのセルの内容を同じにしておきたいのです。方法が分からないので教えてください。 お願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
VBA(マクロ)でやるしかないですね。 1.sheet1のシートのタブを右クリック、[コードの表示]。 2. 出てきたsheet1のシートモジュールの白い部分に以下のコードを貼付けます。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub With Application .EnableEvents = False Sheets("Sheet2").Range("B2").Value = Target.Value .EnableEvents = True End With End Sub 同様にsheet2のシートモジュールの白い部分に以下のコードを貼付けます。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$B$2" Then Exit Sub With Application .EnableEvents = False Sheets("Sheet1").Range("A1").Value = Target.Value .EnableEvents = True End With End Sub これでご希望のとおりになったはずです。
その他の回答 (5)
- imogasi
- ベストアンサー率27% (4737/17069)
VBAを使って Sheet1のA1セルのChangeイベントでSheet1の値をSheet2のB2にセット、 Sheet2のB2セルのChangeイベントでSheet1のA1の値をSheet2のB2の値にセット するしかありません。関数は循環参照になるでしょう。シート外のセルの参照でも同じです。 上記のコード行数は少ないがイベント・プロシジュアーの考えを学習してからの問題でしょう。
- okormazd
- ベストアンサー率50% (1224/2412)
sheetの関数を使うかぎり、双方向にすると、循環参照になるので、一方通行にしかなりません。第一、数式を入れてあっても新しくデータを入れれば数式はなくなってしまいます。 双方向にするには、VBAを使うしかないですが、どうします?
- watasimori
- ベストアンサー率50% (3/6)
mazda323fさん、kinsan7さんの回答に補足です。 Sheet1の内容をSheet2に反映させる事はできますが、 逆のSheet2の内容をSheet1に反映させる事はできません。 相互関係ではなく、一方通行になります。 私も詳しくはないので、相互に自動変更する方法は存じません。 力になれず申し訳ありません。
- kinsan7
- ベストアンサー率26% (9/34)
変更しない方(自動的に変更される方)のセルに・・・・・ →=(イコール入力) →反映させたいシートの対象のセルをクリック →Enterキー で如何でしょうか。
- mazda323f
- ベストアンサー率52% (13/25)
Sheet2のセルB2に、下記関数を入力すると常にSheet1のA1セルを参照して表示します。これで大丈夫ですか? "=Sheet1!A1" (""は入力しなくて良いです。)