• ベストアンサー

エクセル 複数のセルの値を連動変更する

シートが3つほどあるとします。(シート1,2,3) それぞれのシートのセルA1に「参考」と入力されています。 シート1の「参考」を「決定」に変更すると、 シート2とシート3の「参考」も「決定」になるようにする。 これは、=シート1!A1 で簡単に出来ると思いますが、 シート2またシート3のA1を変更すれば、他のシートも変更される。 セルの同期とでも言うのでしょうか? このようなことは可能ですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

エクセルの基本機能の中では,情報の流れは必ず1方向です。 今回ご相談のケースで言えば,  シート1を変えたら→シート2へ  シート1を変えたら→シート3へ しかありません。 ご相談でヤリタイことは結局  シート1を変えたとき→シート2へ  シート2を変えたとき→シート1へ のように,逆向きに情報を流したいという事ですから,そういうことはエクセルの基本機能では出来ないという事です。 どーしてもそういう双方向の情報のやりとりを実現したければ,マクロを使い  シート1を修正する→マクロが他のシートに自動的に転記する  シート2を修正する→マクロが他のシートに自動的に転記する  シート3を修正する→マクロが他のシートに自動的に転記する といった仕込みをするしかありません。 簡単な手順の例: ブックを,エクセルウィンドウの中で最大化ではない状態にする ブックウィンドウの左上,ブック名の左隣のアイコンを右クリック,コードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub Workbook_SheetChange(byval Sh as object, byval Target as excel.range)  dim h as range  dim w as worksheet  application.enableevents = false  for each h in target   for each w in worksheets    if w.name <> sh.name then     w.range(h.address).value = h.value    end if   next  next  application.enableevents = true end sub ファイルメニューから終了してエクセルに戻る 任意のシートで編集すると,他のシートに自動で反映される #このマクロ自体はあくまでサンプルです。実用的に役に立つモノではありませんので,もしも実際のエクセルでホントに何かこういう事がしたいなら,具体的にどこのセル範囲の範囲で実際にどういう結果が必要なのか,もっと詳しい状況を添えて新しいご相談として投稿し直してください。

ex1990
質問者

お礼

双方向は関数では無理なのですね。 マクロに挑戦してみます。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4844/10253)
回答No.2

目的によっては、Shift+クリックや、Ctrl+クリックで、シートを3つまとめて選択状態にした上で、セルに書き込むと3シート全部に書き込まれると言うことでもいいのかもしれません。

関連するQ&A

  • 複数のセルの連動について

    初歩的な質問ですみません。 仕事の効率化を図るために以下のようなことを実行したいのですが、方法が 不明ですので、どなたか教えていただけないでしょうか? 具体例にして、質問したいと思います (1).Sheet1のセルA1にある文字を入力 (2).(1)で入力した値がSheet2のセルF5やSheet3のG7に反映される。 です。いろいろHPを参照したのですが、わかりませんでしたのでどうかお願いします。

  • エクセルの複数のセルの値からシート名を自動変更する

    エクセルのシート名を複数のセルから自動で変更する場合のマクロを教えてください。 E6に「平成」、G6に「年」、I6に「月」、K6に「日」と入力されている状態で、 間のF6、H6、J6が空欄となっており、それぞれに年と月と日を入力するような状態となっています。 このF6、H6、J6に入力した年月日情報をシート名にするようなマクロは可能でしょうか? 「28.2.6」のように。もしくは「280206」のように6桁で。 また、F6、H6、J6の3つとものセルに値を入力した場合に、シート名が変更され、 その後に、それかのセルの情報を変更した場合は、その情報に変更されるようになればありがたいです。 下記のQ&Aが近いのですが、複数セルの情報からシート名を変更する方法が分かりません。 http://okwave.jp/qa/q2025849.html よろしくお願いします。

  • (エクセル)値を変更したセルの見つけ方。

    (例)100行×100列にデータ入力されたシートで、そのひとつのセルの値だけ変えた場合、変更前と変更後のファイルを見比べ、そのデータの変更されたセルを特定する方法を教えてください。 (今は、目視でチェックしているので大変、非効率で困っています。)

  • エクセルの他シートのセルの値をセル範囲で指定

    エクセルの他シートのセルの値をセル範囲で指定 お願いします。 sheet1のA1からA3まで1,2,3と入力されていてセルB1にA1:A3と入力されています。 sheet2のA1にsum(sheet1!A1:A3)と入れると6になるのですけれど、 A2にSUM(INDIRECT(sheet1!(B1))と入れると0になってしまいます。 これをどのように解決したらいいですか? よろしくお願いします。

  • Excelで複数ブックの同一セルに同じ値を入力するにはどうすればよいですか?

    windowsXPを使用しています。 Excelで同じフォームのブックが300ほどあります。 この300のブックのA1というセルに、全て同じ値を入力したいのですが、 効率的な方法がありましたら教えていただけますでしょうか。 (社員1名につき1つのブックがあるのですが、社名変更のため、 全てタイトルを変更しなければなりません。 なお、全社員ともフォームは同じですが、ブックの数や、シート名は異なります。) 同じブック内での複数シートへの入力であれば、 作業グループで一度にできると思いますが、異なるブックの場合、 作業グループも使えないため、どうすればよいのか分かりません。 やはり全てのブックを開いて一つ一つコピペするしかないのでしょうか? お忙しいところ恐れ入りますが、よろしくお願いいたします。

  • 一番左のシートのセルA6の値を他の複数のシートに複写する

    VIsta SP1 ExcelXP でマクロ勉強中の超初心者です。 一番左のシートSheet(1)のセルA6に、日付を入力しています。この日付の値を他の複数のシートに入力したいです。そして、Sheet(1)のセルA6の日付が変更されたときでも、その変更後の日付を、表示したいです。IF文で、自分なりにつくると、循環参照になってしまいます。 この場合のIF文はどう作ったらよろしいでしょうか。

  • Excelでの複数シートへの値の入力

    おはようございます。 Excel2000で複数のシートを選択した状態でセルに値を入力すると、他のシートの同じセルに内容が入力されますよね。 この機能の名称はわかりませんが・・・(^_^;) これをヒントに「フォーム内にあるTextBoxに入力された値を各シートのセルに入力しよう」というVBAのソースを作ってみましたが、 実行してみると選択されている1枚目のシートにしか値が入力されません。 汚いソースをみなさんに見せるのは恥ずかしいのですが、 是非実現したいので、どこが間違っているか指摘をいただけると幸いです。 やろうとしていること: フォームのテキストボックスに値を入力し、 コマンドボタンを押すとシートを複数枚選択し、 各シートのセル”A1”(AからDまでを結合)に値を入力する。 ******************************************* Private Sub CommandButton1_Click() 'テキストボックスの値取得と、店名の合成 Dim myTmei As String Dim myTmei2 As String myTmei = TextBox1.Text myTmei2 = "店名" & myTmei 'シートの選択 Sheets(Array(5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46)).Select '値の入力 Range("A1").Select Range("A1").Value = myTmei2 End Sub ****************************************** 結果を見ると、シート自体は選択できているのですが、 その中でも「アクティブになっている(?)シート(1枚目)のセルだけに値を入力しなさいよ。」と書いてしまったようで、 「全てのシートのセル”A1”に入力しなさい。」という部分が書けていないのだと思うのです。 Selectだけじゃ、ダメなのかな・・・ どうかよろしくお願いします。

  • Excel2003 2つのシートから相互にセルの値を変更したいのですが

    Excel2003を使用して2つのシートにあるセルの値を相互に変更できるようにしたいのですが。 例えば Sheet2 のセル A1 に =Sheet1!A1 と入力しておけば Sheet1 のセル A1 に 80 と入力すると Sheet2 のセル A1 は 80 と表示されますが,この状態で Sheet2 のセル A1 に別の値を入力すると,もう Sheet1 のセル A1の値を参照しなくなってしまいます。 そこで教えていただきたいことがあります。 Sheet1 のセル A1 に値(例えば80)を入力すると Sheet2 のセル A1 の値も同じ値(例えば80)になり,逆に Sheet2 のセル A1 に値(例えば80)を入力すると Sheet1 のセル A1 の値も同じ値(例えば80)になるように相互に値が変化できるようにしたいのです。 具体的に私がしたいことは (1) Sheet1 ~Sheet6 の A列 には同じ40人の名簿を使う。 (2) Sheet1 の B列 には国語の得点,同様に Sheet5 まで社会,数学,理科,英語の得点を入力。(本来は複数のテストの合計得点として, K列 にしたいのですが,今回は B列 ということでお願いします。) (3) Sheet1 ~ Sheet5 のセル D1 にそれぞれの教科の合格に必要な得点を入力。 (4) Sheet1 ~ Sheet5 の C列 には =if(B2>=D1,"○","×") のような数式を入力し,合格なら○,不合格なら×を表示するようにする。 (5) Sheet6 の B列 ~ F列 にはそのぞれの教科の○,×が参照されるようにし,B列 ~ F列の42行目にそれぞれの教科の合格に必要な点数が参照されるようにする。 (1)~(5)をすれば, Sheet1 ~ Sheet5 を見れば教科ごとの合格者が分かり, Sheet6 を見たときに誰がどの教科で合格か不合格か分かります。 Sheet6 の全教科の合格者数をみて,それぞれの教科の合格に必要な点数を上げたり,下げたりしたいのです。 Sheet1 ~ Sheet5 に戻れば,合格に必要な点数の上げ下げが可能なのですが, Sheet6の B列 ~ F列 の42行目でも合格に必要な点数の上げ下げをできるようにしたいのです。もちろん Sheet6 で合格に必要な点数を上げ下げしたときには, Sheet1 ~ Sheet5 の合格に必要な点数をも反映されるようにしたいのです。 長文で分かりにくいかもしれませんが,いい方法があれば教えてください。よろしくお願いします。

  • セルの値変更でマクロ実行

    セルに値を入力すると、他のシートで演算され結果がセル"A1"にTRUE、FALSEと表示される関数式ができています。 セル"A1"の変化によりマクロ実行させたいと思います。プログラムの案をお願いします。

  • Excelで一つのセルに複数の値を入力する方法

    Excelで一つのセルに複数の値を入力する方法はありますか? 現在の状況です↓ Seet1   A     B    C 1 項目1 項目2 項目3 2  Seet2   A    B   C 1 1/1  1/2   1/3 2  Sheet1のA2に1/1と入力するとSheet2のA2に項目1と入力され、 さらにSheet1のB2に1/1と入力すると Sheet2のA2に項目1項目2と二つの値が出るようにしたいのです。 今までは項目が二つだったため Aに1/1なら項目1 Bに1/1なら項目2 AとBに1/1と入力されていたら項目1項目2と出す というように無理やりIfで処理していたのですが、 項目名が増えてきたためすべての組み合わせをIfで処理できなくなってしまいました。 やはり関数では無理でしょうか?VBAは勉強し始めたばかりです。 どうか知恵をお貸しください。