プロが教えるわが家の防犯対策術!

VBAにて別ブック間の値の転記に関する質問です。
次のようなことは可能でしょうか?

《画像の説明》
ブック①(画像:①出荷日)は出荷日ベースでの表となります。
・1日1ブックとして保存し出荷がある日の数だけブックが存在します。
・新たに出荷が決まると追加記入をします(画像①のC20~D21)。
・手入力はこちらのブックとなります。

ブック②は販売者ベースのブックとなります。
・1ブックではありますが集計日毎にシート分けをしシート名を集計日にしたいと思います。
(画像にはありませんが空いているセル(G2等)に集計日を入れます)
・画像の8行目が空欄なのは注文の予定があるものの最終の確定が出てないため販売者の名前だけが入れてある状態です。
・販売者は都度手入力をします。
・販売者の欄は出荷が決まった順番で入力しますので本来は同一人物でもランダムに並んでいます。
・ブック②とは別に販売商品ベース等の同様の別ブックがありますので、マクロ実行時のブック②を開く際は選択方式で開きたいです。

《やりたい事》
ブック①に記載した転記したい値のみをブック②の選択(セルの場所が都度変更となる)したセルに転記したい。
以下は例となります。
【A】 
新たに出荷が決まったのでブック①のC20~D21へ「ぶどう・山梨・L・2020/12/10」を手入力。

記入した欄の横(F20辺り)にあるマクロボタンをクリック。

今回は販売者別のブックへ転記したいので『②販売者別』ブックを選択し開く。

今回の出荷分は山本さんだったのでブック②のD9(赤枠のセル)をクリックし選択し、ブック①に入力した「ぶどう・山梨・L・2020/12/10」を転記または代入。
【B】
予定で止まっていたものが出荷が確定したので、ブック①のNo4(セルC12~D13)をブック②のD8を選択しD8~G8へ転記。

現在、ブック①の値を一度変数に入れて代入しようとしましたがブック②を開いた段階でアクティブになっているセル(本来貼り付けたい場所ではない)に値が代入されてしまい思うような結果を得られていません。
転記するブックが決まっている、転記するセルの場所が決まっていれば良いのでしょうが
・転記させるブックが都度変わる。 また書式がブックごとに違う。
・転記させるセルの場所が都度変わる。
ということを考えると
転記したいデータのみを取得し、転記させたい場所を都度選んで転記させる方法が良いのかと思っています。

実際に扱っているブックは企業情報が入っており開示できないためサンプルをつくりましたが矛盾等があればすみません。

長文となってしまい申し訳ありません。
ご指導よろしくお願いします。

「VBA 別ブックの値を都度選択したセルに」の質問画像

質問者からの補足コメント

  • へこむわー

    こんにちは
    ご指導ありがとうございます。

    ご指摘の通り、表計算ソフトの有効的な使い方ではないかと思います。
    手書きのノートの鉛筆をキーボードに置き換えたような使い方をしています。
    ただ社内的に長いことこの手法でやっており、「表計算ソフト?」といった方にもわかる物である必要があります。
    その為、視認性重視の「お絵描き」のような使い方になっています。
    爆発的に視認性・利便性に優れた物を作れない限りこの手法のままかと感じています。
    この「お絵描き」が単純作業ではあるものの意外と時間が掛かり、私の担当では社外委託する部分が他担当者に比べ圧倒的に多い事もあり「少しでも時間短縮できないか」との思いから今回の質問に至りました。
    ご指摘にあった「マスターデータ」も色々な人が関わる表なので「対応出来るかな?」といった感想です。
     
    お時間をいただきありがとうございます。

    No.2の回答に寄せられた補足コメントです。 補足日時:2020/12/13 12:35

A 回答 (2件)

こんにちは



>次のようなことは可能でしょうか?
飛ばし読みをしただけですが、充分に可能でしょう。

しかしながら、単なる転記機能だけで、しかも手操作と混合のようなので、かなり危ない気がします。
いちいち手操作とのインターフェースが絡むので、転記は1行のコードで済むのに、UIに数百行を費やすということになりかねません。
それを省くと、誤操作をした際になにもできないということになり、「使い物にならない機能」となりそうです。

そもそもになりますが、2行を1データにするとか、シートを細かく分けるなども、表計算ソフトを活用する上でのネックとなりやすい要因になっています。
「マスターデータ」のような発想はとれないのでしょうか?
仮に、1シートに収まらないくらいのデータ量なのであれば、既に、エクセルで扱う範囲を越えている可能性がありますので、アクセスなどを検討した方がよいのかもしれません。
この回答への補足あり
    • good
    • 0

もっと内容を整理すべきですね


読む気がしません

それと まず 自分で考えたコードを提示すべきです
もしくは 最低限
日本語でコードを書くべきです
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!