[[20170218104427]] 『自動反映』(たろ。) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『自動反映』(たろ。)

AブックとBブックがあります。

Aで打ち込んだ文字をBブックに反映させる方法は分かるのですが、Aブックは日々更新されます。

Aで打ち込んだ文字はBブックの反映された行に重ならないように反映できますか?反映された次の行に順々反映されるようにしたいのです。

どうか宜しくお願い致します。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


こんにちは。

>Aで打ち込んだ文字をBブックに反映させる方法は分かるのですが
どのようにされていますか?

(γ) 2017/02/18(土) 10:57


rさんこんにちは。

思いつくのは=で飛ばす方法、リンク貼り付けぐらいしか思いつかないです。
(たろ。) 2017/02/18(土) 11:02


 いつ、どんなタイミングで Aブック(の、しかるべきシート)に入力されたものを Bブック(のしかるべきシート)に反映させるかは、後回しにして

 ・Bブック(のしかるべきシート)の現在の最終データ行を把握する。
 ・その行の次の行にAブックに入力したものを書きこむ

 ということになります。

 この Bブック(のしかるべきシート)の現在の最終データ行 の取得には、そのレイアウトがどうなっているのかにより
 適切な取得方法をとる必要があります。
 どんなレイアウトでも、こうこう記述すれば、問題ない というコードはありませんので。

 ★Bブックのレイアウトを具体的に教えてください。

 次に、なやましいのですが、

 ・いつ自動反映するか?

 Aブック(のしかるべきシート)のセルに入力したとたんに自動処理?
 テクニック的には可能ですが、たとえば あるセルに ABC と入れた。その瞬間に?
 でも、続けて、その同じ行の隣のセルに XYZ といれた。その瞬間にも走りますから、Bブックには重複して書き込まれてしまう。

 ・どこに反映するか?

 新規データであれば、Bブック(のしかるべきシート)のデータ最終行の次の行に追加すればいいのですが
 人間ですから間違い入力はつきもの。 Aブック(のしかるべきシート)で入力し、すでに Bブック(のしかるべきシート)に反映済みのものがあったとします。
 これは 追加ではなく、転記済みの行に対して修正をしなければいけませんね。

 じゃぁ、どの行なんだ? どこかに照合キーのようなものがないと判定できませんよね?

 ・さらに

 照合キー自体を ABC として入力した。Bブックに ABC として反映された。
 しまった、XYZ だった ということで Aブック側で XYZ になおした。
 おそらく Bブックに XYZ データが『追加』される。
 でも、それとは別に転記済みの ABC を消さなければいけませんね。

 こういった、入力におけるストーリーを、よくよく吟味し、流れを整理したうえで
 さぁ、どんな構えにしようかということを決めていく必要があります。

 ★Aブック側のレイアウトも具体的に説明してください。

 ● 単に コピペでやろうとか、別の転記記述でやろうとか、そういった テクニック以前に、しっかりと
   要件を整理し、その上で仕様を考えていく必要がありますよ。

( β) 2017/02/18(土) 11:06


βさんこんにちは。
自動反映したいタイミングはAブックに打ち込んだ瞬間です。

Aブックのレイアウトは

 列A〜M

9
10
11
12
13
この範囲に文字を打ち込みます。

Bブックのレイアウトは

 列B〜N

3
4
5
6
7

今まではAブックで打ち込んだ文字をコピー&ペーストで対応してました。
順々ペーストした行の下にまたペーストする感じです。

説明が下手ですいません。。。

(たろ。) 2017/02/18(土) 11:22


すでに指摘があったように、
修正があったときの取扱とか、全然検討されていないですね。
 
仮にコードでやると言っても、
基本は Changeイベントプロシージャを使った、コピーペイストということになるでしょうが、
それは大した話ではありません。
 
ポイントはそんなことではないのです。
色々な例外事象にどう対応するかといったことでしょう。
 
そもそも、自動反映する目的は何でしょうか。
 
単なる履歴を蓄積する目的であれば、
リアルタイムに反映する必要はなく、
一日単位で日にち毎のシートにコピーしていくといったことを
考えた方がいいんじゃないかと思います。
 
単なる履歴ではなく、自動反映先には履歴以外のそれ自体で意味があるものなら、
そのシートの構造をきちんと説明する必要がありますね。

(γ) 2017/02/18(土) 11:50


 γさんからも指摘いただいていますが、私がアップしたコメントをよ〜〜〜く読んでください。
 そのうえで、たろ。さんの頭の中を整理したうえで、どういった流れにしようかを考えてください。

 たとえば(指摘しているのはこれだけじゃないですが)Aブックの A9 に abc と打ち込んだ。
 その瞬間に処理すると Bブックの最終行の次の行が 20行目だったとすると、B20 に abc と書きこまれる。
 でも、きっと Aブックの B9 に、続けて xyz と入力する。
 そうすると、Bブックの B21 に abc、C21 に xyz と書きこまれてしまいますよ。

 そうではなく、さぁ、1行入力が終わったから、これを Bブックに追加しよう といった流れが必要でしょ?

 まったく異なるポイントで。

 もし、Aブックの内容が、ずっと消えずに追加されたり修正されたりしていく。
 そういうことであれば、入力したものを反映 ということではなく、Bブック側に、ぎっしりと 外部参照数式を埋め込んでおけば
 それで、いいのかもしれません。

 いやいや、Aブック側に入力したものは、いつか削除され、新たに入力するんだ。あくまで、それを Bブックに「追加」ないしは『置換』していくんだということなら
 全く別の組み立てになります。

 いずれにしても、γさんや私がコメントしたことを『すべて』吟味したうえで、レスお願いします。

( β) 2017/02/18(土) 12:01


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.