• ベストアンサー

エクセルでセルに入力したら別セルを別シートにコピー

エクセルで、あるセルに情報を入力したら、同じシート内の別セルの情報を他のシートにコピーしたいと考えています。 例えばシート1のB5に住所を入力したら、シート2のB1、B2にシート1のB1、B4の情報がコピーされるようにしたいです。(添付画像を参照ください) シート2へのコピーは下に追加されていくようにしたいです。 何か良い方法はありませんでしょうか? どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.5

こんばんは VBAのChangeイベントを使ってみてください。 下記のコードをSheet1のシートモジュールに貼り付けてください。 Private Sub Worksheet_Change(ByVal Target As Range)   With Target     If .Count > 1 Then Exit Sub     If .Column <> 5 Then Exit Sub     If .Value = "" Then Exit Sub     Cells(.Row, "A").Resize(, 5).Copy _     Worksheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Offset(1)   End With End Sub

ww00771155
質問者

お礼

できました!! ありがとうございます!!! 質問に不備があったり、道具に使っていると思われたりしてたので、もう返信はもらえないだろうとあきらめていました・・。 とても嬉しいです。 本当にありがとうございました。

その他の回答 (4)

  • msMike
  • ベストアンサー率20% (368/1812)
回答No.4

あの~、その~、私、マクロ音痴なモンでスンマソンm(_._)m 添付図参照 Sheet2 において、 セル A2 に次式を入力 =IFERROR(INDEX(Sheet1!A$1:A$10,SMALL(IF(Sheet1!$E$2:$E$10<>"",ROW($A2:$A10)),ROW(A1))),"") 次式を入力したセル B2 を右隣にオートフィルした後で、範囲 A2:C2 を下方にズズーッとオートフィル =IFERROR(INDEX(Sheet1!D$1:D$10,SMALL(IF(Sheet1!$E$2:$E$10<>"",ROW($A2:$A10)),ROW(A1))),"") 【お断り】上式は何れも必ず配列数式として入力のこと

ww00771155
質問者

お礼

返信が遅れてすみません。 この式も役に立ちそうです!! ありがとうございました!

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

>B1、B4の情報がコピーされるように シート2の画像の内容と、違う例を挙げているのでは。 シート1の住所列(E列?)はどういうデータになっているのか? A列の3のデータなら 3 20 東京都港区 で、3 10 東京都港区ではないのでは。 また>B1、B4ではないのでは? ーー 読者は例示データが、理解の頼りなのだ。しっかり書いて説明して。 == VBAそれも「イベント」という考え方を勉強しないと、できないと思う。 経験ないのでは?。ならば回答者にヒントをもらうのでなくて、道具に使うことになる。 エクセルでは、シートにENTERイベントはないので((ENTERは)データ入力確定に使われる)Changeイベントでとらえる他ないと思うが。 またイベントをとらえるセル範囲を設定する仕方の知識がいると思う。 Deleteキーを押すでも、このイベントが発生したりする。 どこへ回答のVBAコードを書くのとか。 多少勉強しないとむつかしいと思う。

ww00771155
質問者

お礼

説明の不備、知識不足、申し訳ございませんでした。

  • aokii
  • ベストアンサー率23% (5210/22063)
回答No.2

マクロで行う場合は正確な記述が必要ですので、できれば、マクロ記録で操作を自動作成してみてください。

ww00771155
質問者

補足

ご指示いただいました通りマクロ記録を行ってみました。 以下がその内容になります。 どうぞよろしくお願いいたします!! Sub 抽出() ' ' 抽出 Macro ' ' Range("E4").Select ActiveCell.FormulaR1C1 = "東京都港区" ActiveCell.Characters(1, 3).PhoneticCharacters = "トウキョウト" ActiveCell.Characters(4, 2).PhoneticCharacters = "ミナトク" Range("A4,D4,E4").Select Range("E4").Activate Selection.Copy Sheets("Sheet2").Select Range("A2").Select ActiveSheet.Paste Sheets("Sheet1").Select Range("E6").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "北海道札幌" ActiveCell.Characters(1, 3).PhoneticCharacters = "ホッカイドウ" ActiveCell.Characters(4, 2).PhoneticCharacters = "サッポロ" Range("A6,D6,E6").Select Range("E6").Activate Selection.Copy Sheets("Sheet2").Select Range("A3").Select ActiveSheet.Paste Sheets("Sheet1").Select End Sub

  • aokii
  • ベストアンサー率23% (5210/22063)
回答No.1

マクロ以外では難しいです。

ww00771155
質問者

補足

説明が足りず申し訳ありません。 マクロのやり方をお教えいただきたいと考えています。 どうぞよろしくお願いいたします。

関連するQ&A