- ベストアンサー
Excelの2つのシートで同じ内容を表示する方法
2つのシートにて指定したセルに同じ内容を表示したいのですが、 どちらのシートのセルから入力しても同じ内容が表示できる方法ってあるのでしょうか?(他のシート等を使わずに) わかる方いらっしゃいましたらご回答お願いいたします。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
> となった場合、1行目のA1("$B$2")と4行目のG15("$G$15") を採用すればよろしいのでしょうか? シートBBBに書くほうの例です。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$B$2" And Target.Address <> "$E$5" _ And Target.Address <> "$R$53" _ And Target.Address <> "$G$15" Then Exit Sub Application.EnableEvents = False With Sheets("AAA") .Range("A1").Value = Range("B2").Value .Range("D4").Value = Range("E5").Value .Range("E32").Value = Range("R53").Value .Range("F23").Value = Range("G15").Value End With Application.EnableEvents = True End Sub
その他の回答 (7)
- merlionXX
- ベストアンサー率48% (1930/4007)
merlionXXです。 対象セルの追加および、以下の質問に対応しました。 > シート名を変更しているときはどうしたらよろしいのでしょうか 以下のようにすれば順番は関係なくなります。 シートAAAには Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" And Target.Address <> "$D$4" Then Exit Sub Application.EnableEvents = False Sheets("BBB").Range("B2").Value = Range("A1").Value Sheets("BBB").Range("E5").Value = Range("D4").Value Application.EnableEvents = True End Sub シートBBBには Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$B$2" And Target.Address <> "$E$5" Then Exit Sub Application.EnableEvents = False Sheets("AAA").Range("A1").Value = Range("B2").Value Sheets("AAA").Range("D4").Value = Range("E5").Value Application.EnableEvents = True End Sub
お礼
早速のお返事ありがとうございます。 何度もすみませんが If Target.Address <> "$B$2" And Target.Address <> "$E$5" Then Exit Sub の"$B$2"部分と"$E$5"部分は Sheets("AAA").Range("A1").Value = Range("B2").Value Sheets("AAA").Range("D4").Value = Range("E5").Value が、例えば Sheets("AAA").Range("A1").Value = Range("B2").Value Sheets("AAA").Range("D4").Value = Range("E5").Value Sheets("AAA").Range("E32").Value = Range("R53").Value Sheets("AAA").Range("F23").Value = Range("G15").Value となった場合、1行目のA1("$B$2")と4行目のG15("$G$15") を採用すればよろしいのでしょうか? マクロ使用は初めてなもので申し訳ありません。 ご指導お願いいたします。
- merlionXX
- ベストアンサー率48% (1930/4007)
> 上記の内容の場合シートA1・シートB2の様な箇所が多数あった場合はどのようにしたらよろしいのでしょうか? 80kaiさんこんにちは。merlionnXXです。 シートは2つで、対象とするセルが多数あるのですか? それであれば Sheet2.Range("B2").Value = Range("A1").Value や Sheet1.Range("A1").Value = Range("B2").Value のところの記述を増やすだけで対処できますよ。
お礼
merlionnXXさんこんにちは。 毎回ありがとうございますm(__)m 入力方法なのですが、 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub Application.EnableEvents = False Sheet2.Range("B2").Value = Range("A1").Value Sheet2.Range("E5").Value = Range("D4").Value Application.EnableEvents = True End Sub と Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$B$2" Then Exit Sub Application.EnableEvents = False Sheet1.Range("A1").Value = Range("B2").Value Sheet1.Range("D4").Value = Range("E5").Value Application.EnableEvents = True End Sub という形でよろしいのでしょうか? それと >ただし、シート1は一番左側に、シート2は2番目にあるものとします。 と以前のものにありましたが現在シートが14ありますがしーとが3番目と11番目をリンクさせるときや、シート名を変更しているときはどうしたらよろしいのでしょうか? 何度もややこしいしつもんで大変もうしわけありません。 お時間がありましたらよろしくお願いいたします。
- merlionXX
- ベストアンサー率48% (1930/4007)
> 入力パターン1 > ひな型ファイルを開きシート1のA1に「100」と入力したときに、シート2のB2に「100」と入力出来る様にする。 > 入力パターン2 > ひな型ファイルを開きシート2のB2に「100」と入力したときに、シート1のA1に「100」と入力出来る様にする。 以下の手順でやってみてください。 ただし、シート1は一番左側に、シート2は2番目にあるものとします。 1.シート1のタブを右クリックし、「コードの表示」を選択。 2.出てきたVisualBasicEditor(白い部分)に下記のコードをコピペ。 '*****ここから下をコピペ***** Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub Application.EnableEvents = False Sheet2.Range("B2").Value = Range("A1").Value Application.EnableEvents = True End Sub '*****ここより上までをコピペ***** 3.Alt+F11キーでワークシートへもどります。 4.シート2のタブを右クリックし、「コードの表示」を選択。 5.出てきたVisualBasicEditor(白い部分)に下記のコードをコピペ。 '*****ここから下をコピペ***** Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$B$2" Then Exit Sub Application.EnableEvents = False Sheet1.Range("A1").Value = Range("B2").Value Application.EnableEvents = True End Sub '*****ここより上までをコピペ***** 6.Alt+F11キーでワークシートへもどります。
補足
大変参考になりました。 上記の内容の場合シートA1・シートB2の様な箇所が多数あった場合はどのようにしたらよろしいのでしょうか? このあたりまで詰めてくるとどうしていいものかわからなく困って島します。 ご多忙の中ご回答ありがとうございます。
- taichi99
- ベストアンサー率37% (9/24)
こんばんは 出来上がったシートをコピーするのでもいいような気がしますが、 複数のシートを同時に選択し、文字等を入力すれば同じセルに同じ内容が入力されます。 余白とか、ヘッダー/フッター、レイアウト等のページ設定もいっぺんに設定することができます。 複数のシートの選択は、シート名のところをシフトキーを押しながらクリックすることで選択できます。
- shinkami
- ベストアンサー率43% (179/411)
シフトキーを押下したまま、他のシート名をクリックすると入力対象が 複数になります。
- zap35
- ベストアンサー率44% (1383/3079)
#01です。もしやりたいことが後者であれば、2枚のシートに対して、「シート名を右クリック」して表示される画面に以下のマクロを貼り付けて、マクロ中のシート名を修正すれば相互に修正した内容が反映されます。(実用性があるかはわかりませんが…) Private Sub Worksheet_Change(ByVal Target As Range) Dim Adrs As String On Erorro Goto ERR0 Adrs = Target.Address Application.EnableEvents = False Worksheets("Sheet5").Range(Adrs) = Target.Value ' "Sheet5"の箇所には相手側のシート名を書く ERR0: Application.EnableEvents = True End Sub
- zap35
- ベストアンサー率44% (1383/3079)
補足要求です。意味がよく理解できません。 例えば2つのシートのA1セルが入力するセルだとして、そこに入力された値はどこに表示するのですか? それとも片方シートのA1セルに入力した値を、もう一方のA1セルにも入れるということですか?(これはマクロなら可能ですが、条件がわからないので…)
補足
説明がわかりにくくてすみません。 データ入力のひな型を作っています。 入力パターン1 ひな型ファイルを開きシート1のA1に「100」と入力したときに、シート2のB2に「100」と入力出来る様にする。 入力パターン2 ひな型ファイルを開きシート2のB2に「100」と入力したときに、シート1のA1に「100」と入力出来る様にする。 その時の状況で2つのパターンから入力をしたいのですが、この様な設定は可能でしょうか。 お手数とは思いますがご回答頂けましたら幸いです。
お礼
ありがとうございました。 早速使わせていただきます。 またわからない事がありましたらよろしくお願いいたします。