こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

エクセルで、あるセルに情報を入力したら、同じシート内の別セルの情報を他のシートにコピーしたいと考えています。

例えばシート1のB5に住所を入力したら、シート2のB1、B2にシート1のB1、B4の情報がコピーされるようにしたいです。(添付画像を参照ください)

シート2へのコピーは下に追加されていくようにしたいです。

何か良い方法はありませんでしょうか?
どうぞよろしくお願いいたします。

投稿日時 - 2018-11-06 13:52:25

QNo.9555078

すぐに回答ほしいです

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

こんばんは
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

投稿日時 - 2018-11-06 20:14:38

お礼

できました!!
ありがとうございます!!!

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

投稿日時 - 2018-11-07 09:47:12

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.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))),"")
【お断り】上式は何れも必ず配列数式として入力のこと

投稿日時 - 2018-11-06 18:17:22

お礼

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

投稿日時 - 2018-11-07 09:51:20

ANo.3

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

投稿日時 - 2018-11-06 15:04:12

お礼

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

投稿日時 - 2018-11-06 15:11:28

ANo.2

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

投稿日時 - 2018-11-06 14:29:36

補足

ご指示いただいました通りマクロ記録を行ってみました。
以下がその内容になります。
どうぞよろしくお願いいたします!!


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

投稿日時 - 2018-11-06 14:44:09

ANo.1

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

投稿日時 - 2018-11-06 13:54:57

補足

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

投稿日時 - 2018-11-06 13:58:48

あなたにオススメの質問