
データを入力した後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。
A7:M27の表に入力したデータと,その番号に対応した2つめの表A30:H39のデータを,同一シート内の履歴(転記先)に転記させたいです。転記後は転記元のデータが転記先の履歴に残っていくようにしたいです(添付写真参照)。
詳しい条件としましては,
・転記元のデータは上限10個の項目を入力することができ,毎回データ数が同じとは限りません。(写真では項目4~9の部分を非表示にしています)
・転記元の上の表については1項目につき2行をセル結合して使用,H列I列に関してはセル結合せずにそれぞれデータ入力しています。
・転記先の履歴では1つの項目についてのデータを全て1行で横並びに表示させたいです。
・入力の最終行に必ずつける「以下余白」の転記は不要です。
・転記元にデータ入力→履歴に転記→転記元データクリアの一連の流れを繰り返しできるようにしたいです。
VBA初心者で本やサイトを参考にしても似た事例が見つけられず,知識も浅いため困っています…。
どなたか教えていただけたらとても助かります。
よろしくお願いします。

A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
>A7:M27の表に入力したデータ
画像だとM27でなくL27のように見えます。
どちらが正しいのでしょうか。
いずれにしろ、正確なレイアウトが判らないと回答できません。
No.2
- 回答日時:
画像がよく見えません。
gyao.comへアップされると鮮明な画像が表示されます。
gyao.comへアップされてはいかがでしょうか。
下記はgyao.comへアップしたサンプルです。
画像の内容は本件とは関係ありません。この程度の鮮明な画像になるという例です。
https://gyazo.com/d54a2d86b804590f4d05fc100a862572
No.1
- 回答日時:
こんにちは
添付図がほとんど読めないこともあって、どこにどのように記録したいのかサッパリわかりません。
>本やサイトを参考にしても似た事例が見つけられず~
履歴を残す方法がわかれば、後はできるのかなと想像しました。
以下は、(ひとまず使用していなさそうな)S、T列に記録してゆく例です。
「A7:M27のセル範囲で値を変更したら、そのセル位置と値をS:T列に記録してゆく」
という内容のマクロです。
S列が変更した「セル位置」、T列がその時の「値」をセットにして、下方に記録してゆきます。
上のふたつの情報がわかれば、転記先を質問者様の思う所になるようにすれば、ご質問の内容も実現できるのではないかと想像しました。
※ 変更の対象にしているのは、「手入力やマクロによるセル値の変更」です。
セルに関数等が設定されていて値が変わったとしても、そちらは対象とはしません。
以下、ご参考までに。
(対象シートの、シートモジュールに以下のマクロを記述します)
「セル位置を記録」「セルの値を記録」のコメントの部分でそれぞれの値を記録しています。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, r As Range
If Intersect(Target, Range("A7:M27")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Set r = Cells(Rows.Count, 19).End(xlUp)
If r <> Empty Then Set r = r.Offset(1)
For Each c In Intersect(Target, Range("A7:M27")).Cells
r.Value = c.Address(0, 0) '←セル位置を記録
r.Offset(, 1).Value = c.Value '←セルの値を記録
Set r = r.Offset(1)
Next c
Application.EnableEvents = True
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい
-
二分探索の平均探索回数
-
【エクセル】測定時間がバラバ...
-
配列でデータが入っている要素...
-
アクセス2000で画像データ...
-
多量のSUMIF式を軽くしたい
-
Android携帯をUSBメモリ代わりに
-
ACCESSからEXCELに出力する際、...
-
マクロを使って「円」を消すのは
-
メモ帳(テキストデータ)をExc...
-
Accessで該当データにフラグを...
-
特定のデータの抽出方法を教え...
-
ブレーカー落ちで壊れたりしな...
-
カンマからスラッシュに
-
なぜ通りがけをすると昇順に整...
-
delphi でグラフ表示
-
AIの簡単な仕組みについて
-
ページ数を求めたい
-
C言語の度数分布の問題
-
ユーザーフォームのテキストボ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
【エクセル】測定時間がバラバ...
-
配列でデータが入っている要素...
-
VBA 空白セルを削除ではない方...
-
メモ帳(テキストデータ)をExc...
-
EXCELVBAでSQLserverからデータ...
-
多量のSUMIF式を軽くしたい
-
この行は既に別のテーブルに属...
-
CString型の文字列連結について
-
ACCESSからEXCELに出力する際、...
-
ユーザーフォームのテキストボ...
-
エクセルで2つの時系列のデー...
-
C# でDataTableの更新を高速化...
-
特定のデータの抽出方法を教え...
-
C# ソケット通信でデータ受信時...
-
二分探索の平均探索回数
-
Excel VBAでのオートフィルター...
-
ブレーカー落ちで壊れたりしな...
-
Accessで該当データにフラグを...
-
VBAを使ってOutlookメール本文...
おすすめ情報