• ベストアンサー

Excel 別シートのセル参照

Excel で、二つのシート間でセル参照したいのですが、シートに書き込んでおくコマンドの書き方を教えてください。 (操作) Sheet2 でA列のどこかのセルをダブルクリックしたとき、B列およびC列の該当行の値を、Sheet1 の二つの固定セルにそれぞれ表示させる。 よろしくお願いします。

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

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

>Sheet2 でA列のどこかのセルをダブルクリックしたとき、 >B列およびC列の該当行の値を、Sheet1 の二つの固定セルにそれぞれ表示させる。 ご質問の説明とサンプルの絵が違ってますが,ご自分のヤリタイ事に合わせて適宜応用してください。 シート2のシート名タブを右クリック,コードの表示を選ぶ 現れたシートに下記をコピー貼り付ける(類似のマクロ複数を試すときは,必ず全て消して1つずつ行う) private sub worksheet_beforedoubleclick(byval Target as excel.range, Cancel as boolean)  if application.intersect(target, range("A:A")) is nothing then exit sub  if target = "" then exit sub  cancel = true  worksheets("Sheet1").range("B2").value = cells(target.row, "B").value  worksheets("Sheet1").range("C4").value = cells(target.row, "C").value end sub ファイルメニューから終了してエクセルに戻り,シート2のB列のセルをWクリックする

awazo
質問者

お礼

keithinさん 粗雑な質問でご迷惑をおかけしました。 ありがとうございました。

awazo
質問者

補足

keithinさん ありがとうございます。 >シートに書き込んでおくコマンドの書き方を教えてください。 これは言葉の使い方が違っていたと思います。 「シートモジュールの記述を教えてください。」 とお願いしなければならなかったと思います。 やりたいことは、 Sheet2で、たとえばB2をダブルクリックすれば、 ____Sheet1 B2の値がSheet2のC2と同じに、そして ____Sheet1 C4の値がSheet2のD2と同じに なるようにしたいのです。 参照という図中の言葉も間違いでした。 よろしくお願いします。

その他の回答 (2)

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

えーーっと? >シートモジュールの記述を教えてください。」とお願いしなければならなかったと思います。 後から寄せられた回答No2の方への同じ返答をコピー貼り付けされてますが,そちらの的外れな指摘と同じ内容と思われたのですね? ちょっと大変不愉快です。 それにしても >やりたいことは 回答した内容でナンの間違いもなくアナタのヤリタイ事は実現されているのですが,いったいどうして補足が出たのですか? もしや実際に試してもいないで,返事を書いたのですか? それとも,実際に試したら「ココが動作が違った」のでしたら,その点を具体的に補足してみたらどうでしょうか? そもそも。 1.アナタの補足: >Sheet2で、たとえばB2をダブルクリックすれば、 ____Sheet1 B2の値がSheet2のC2と同じに、そして ____Sheet1 C4の値がSheet2のD2と同じに 2.アナタのご質問: >Sheet2 でA列のどこかのセルをダブルクリックしたとき、 >B列およびC列の該当行の値を、Sheet1 の二つの固定セルにそれぞれ表示させる。 3.アナタの図の説明:  Sheet2でB列のセルをダブルクリックしたときに,C列とD列のセルがシート1の所定のセルに表示される どれ一つとして同じのがありません。「たとえば」で説明なんかどうでもイイと思っているので,こういう整合のない説明になります。 なので回答もあくまでこの1つに合わせた「たとえば」です。ちなみに回答は2番のアナタのご質問に合わせてあります。 参考にして,実際のエクセルに合わせてご自分でキチンと自作してやってください。

awazo
質問者

お礼

keithinさん 図を描いたときに列記号を間違えました。 A列ダブルクリックでうまく動作しました。 ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

質問文は Sheet1のB2とC4に適宜値を入れて、Sheet2のC列の行をクリックすれば、Sheet1のB2の値とC4の値を、クリックした行のB,C列にセットしたい、と表現すること。 ーー VBAでイベントというものを使うことになる。VBAを勉強したことはあるのか。 >シートに書き込んでおくコマンドの書き方を教えてください。 を見ると経験無いのでは。 ーー Sheet2の下記イベントに(シートモジュール) 参考 http://excel-macro.16office.com/kanri/hyouji.html Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 1 Then 'A列の場合 Target.Offset(0, 1) = Sheets("Sheet1").Range("B2") Target.Offset(0, 2) = Sheets("Sheet1").Range("C4") End If End Sub 値をセット後はSheets("Sheet1").Range("B2")などはクリアしたほうが良いのかな。

awazo
質問者

お礼

imogasiさん 補足でお名前を間違え大変失礼しました。お詫びします。 (結果) Sheets2 の A列 をクリックすると、Sheets2 に書き込んであったその行の B列 と C列 の値が消えてしまいます。 Sheet1 には何も現れません。

awazo
質問者

補足

mogasiさん ありがとうございます。 >シートに書き込んでおくコマンドの書き方を教えてください。 これは言葉の使い方が違っていたと思います。 「シートモジュールの記述を教えてください。」 とお願いしなければならなかったと思います。 やりたいことは、 Sheet2で、たとえばB2をダブルクリックすれば、 ____Sheet1 B2の値がSheet2のC2と同じに、そして ____Sheet1 C4の値がSheet2のD2と同じに なるようにしたいのです。 参照という図中の言葉も間違いでした。 よろしくお願いします。

関連するQ&A