• ベストアンサー

Excelのシート別でのセルのリンク方法

初めまして。 次の質問にお答えして頂ければ助かります。 「Excelで(sheet)別に複数のセルを相互にリンクさせたいのですが方法が分かりません。 ご存知の方がおられましたら教えてください! ***************************************** 【例】 sheet1のA1とsheet2のA2をリンク sheet1のB2とsheet2のB3をリンク        ・        ・        ・ どちらから入力しても、双方に同じ数値が入る ***************************************** よろしくお願い致します。

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

  • ベストアンサー
  • yunkusakz
  • ベストアンサー率34% (41/120)
回答No.1

sheet1のA1で右クリックしてコピー。 sheet2のA2で右クリックして、形式を選択して貼り付けで、左下に「リンク貼り付け」というボタンがあるので、そこをクリック。 そうするとsheet1のA1の数字を入れ替えるたびに sheet2のA2の数値も変わります。

miopachi
質問者

お礼

大変参考になりました。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

写すセルが複数あって規則性がない場合は以下のようにしたらよいと思います。 2つ作ってみました。ただし、2つのイベントの共存は利きません。 シートが、すでに負担になっているようでしたら、SheetActivate側をお使いください。 'SheetActivateを使ったもの '---------------------------------------------------------------- Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim Sh1RngArray As Variant Dim Sh2RngArray As Variant Dim i As Long 'ユーザー設定 '定数のデータ数は必ず同じ数にすること Const Sh1RngData As String = "A1,B2" 'シート1側 Const Sh2RngData As String = "A2,B3" 'シート2側 ' Const Sh1Name As String = "Sheet1" Const Sh2Name As String = "Sheet2"   '   Application.ScreenUpdating = False   Sh1RngArray = Split(Sh1RngData, ",")   Sh2RngArray = Split(Sh2RngData, ",")    If Sh.Name = Sh1Name Then     For i = LBound(Sh1RngArray) To UBound(Sh1RngArray)      Sh.Range(Sh1RngArray(i)).Value = _       Worksheets(Sh2Name).Range(Sh2RngArray(i)).Value     Next i    Else     For i = LBound(Sh1RngArray) To UBound(Sh1RngArray)      Sh.Range(Sh2RngArray(i)).Value = _       Worksheets(Sh1Name).Range(Sh1RngArray(i)).Value     Next i    End If    Application.ScreenUpdating = True End Sub 'SheetChangeイベントのもの '---------------------------------------------------------------- Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim SorShName As String 'ソース Dim OpShName As String '相手先 Dim OptRngData As Variant 'データの移し変え用 Dim rtn As Variant If Target.Count > 1 Then Exit Sub  'まとめて変更はできません。 With Sh  'データ内は、必ず同数にすること Sh1RngData = Array("A1", "B2") 'シート1側 Sh2RngData = Array("A2", "B2") 'シート2側  If .Name = "Sheet1" Then 'シートの名前   OpShName = "Sheet2"   rtn = Application.Match(Target.Address(0, 0), Sh1RngData, 0)   If IsError(rtn) Then Exit Sub   OptRngData = Sh2RngData  Else   OpShName = "Sheet1"   rtn = Application.Match(Target.Address(0, 0), Sh2RngData, 0)   If IsError(rtn) Then Exit Sub   OptRngData = Sh1RngData  End If   Worksheets(OpShName).Range(OptRngData(rtn - 1)).Value _     = Target.Value     End With End Sub '----------------------------------------------------------------

miopachi
質問者

お礼

早速実行させていただきたいと思います。 本当にありがとうございます。

すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

以前に似た質問がありました。 http://okweb.jp/kotaeru.php3?q=1368986

miopachi
質問者

お礼

ありがとうございます。

すると、全ての回答が全文表示されます。
  • yunkusakz
  • ベストアンサー率34% (41/120)
回答No.2

No.1です。 失礼しました。 相互にリンクという事は、 sheet1のA1に入力した数値がsheet2のA2に反映され sheet2のA2に入力したらsheet1のA1に反映される、っていう事ですね? それでしたらわかりません。 良く読まずにうっかり回答してしまいました。ごめんなさい。

すると、全ての回答が全文表示されます。

関連するQ&A