- 締切済み
別シートの差異データ等をコピーしてくるマクロ
現状、Xlookupやフィルター、区切り位置を駆使している作業がありますが、非常に間違えるリスクが高く、 それをマクロ化したいのですが、ご助力をお願い致します。 メインブック① ブック② 検索ワード お互いのJ列+K列を結合して見比べる 但し、上記は見た目数字だが、数値や文字列が混じっている。 ブックは名前が変わる場合があるため、都度選択したいです。 検索ワードが①にあって②に無い場合、①の対象を行ごとデリート。 ②にあって①に無い場合、行ごとコピーし、①に貼り付け。 ブック③ 検索ワードJ列で前後ワイルドカード ブック①のA,C,E列にブック③B,D,Fのデータを書き込む。 ざっくり、この様な処理になります。 何卒ご助力をお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- HohoPapa
- ベストアンサー率65% (455/693)
VBAのサンプルコードを提示するのはやぶさかではないものの 期待する仕様などがよくわからないのです。 以下に疑問点を列挙します。 ・疑問点01 >お互いのJ列+K列を結合して見比べる メインブック①、ブック②の各レコードが J列+K列を結合してみると、レコードがユニーク(重複しない)ですか? ・疑問点02 メインブック①、ブック②の各レコードは、 J列、K列順に並んでいますか? それとも並んでいないですか? ・疑問点03 並んでいない場合、並べ替えていいですか? ・疑問点04 >上記は見た目数字だが、数値や文字列が混じっている これがどのような状態なのかを理解できません。 ・疑問点05 >②にあって①に無い場合、行ごとコピーし、①に貼り付け これは、①の末尾に追記すればいいんですか? ・疑問点06 2つのブックがあるわけですが、 シートの指定がありません、 シート名は固定的ですか、それとも変動しますか? 更に、複数シートを対象にしますか? ・疑問点07 >ブック③ >検索ワードJ列で前後ワイルドカード >ブック①のA,C,E列にブック③B,D,Fのデータを書き込む。 これが全く理解できません。 ・疑問点08 >ブックは名前が変わる場合があるため、都度選択したいです。 ブックの一覧表がどこかにあって、そこから選択するんですか? それとも、VBAでエクスプローラーを開き そこからブックを選択させたいですか? ・疑問点09 VBAをどの程度扱えますか? といっても、答えにくいでしょうから ご自身が挑戦したコードをポストしてみてください。 それを見れば、ある程度洞察でき、 どの程度手抜きな説明で済むのか、想像できます。 ・疑問点10 ①、②のデータは、列数は最大いくつですか? ぶっちゃけ、 >ざっくり、この様な処理になります といった要求仕様では、コーディングを開始することはできません。 また、VBAで何度もやり直しができるようにするため、 >検索ワードが①にあって②に無い場合、①の対象を行ごとデリート。 >②にあって①に無い場合、行ごとコピーし、①に貼り付け。 といった具合に、①、②を直接書き換えるのではなく 求める結果を新たなブックに作成する仕様のほうが扱い易いと思います。 つまり、新たなブック④を用意し、 ・①にあって、②にあるレコードを④に転記する ・②にあって①に無いレコードを④に追記する といった動作です。 ずばり、 このスレッドは閉じ、新たなスレッドを立て、 シート①、②、③のシートサンプルを提示し 要求仕様をより具体的に説明し どの部分の処理がわからないのかを説明し、 仕掛かりのコードを提示したほうがいいと思います。 もし、 VBAのイロハすら扱えないまま、このフォーラムで情報をもらい、 ゴールを目指そうとしているのであれば、相当無謀です。
- kon555
- ベストアンサー率51% (1848/3569)
ザックリすぎて何とも言えないのですが、ここまで複数の手順が絡み、かつ条件分岐が多いマクロをこうしたサイトで作成してもらうのは無理だと思います。 もし誰か親切な人が居たとして、そもそも上手く動かないか、ちょっとした条件の違いで破綻するか、になってしまいます。 ただ内容的にはそこまで難易度が高いわけではなさそうですから、個人的には貴方自身がVBAについて学び、スキルを身に着けてしまうというのが手っ取り早いと思います。 こうした系統のExcel業務が多いなら必ず役立ちますし。 またご自身である程度組めるようになれば、不明点や行き詰り程度ならこうしたサイトでも充分的確な回答が期待できます。 一応、私が勉強する上で役立ったサイトをご紹介しておきます。 http://officetanaka.net/index.stm https://excelvba.pc-users.net/
- imogasi
- ベストアンサー率27% (4737/17070)
質問者は、VBAのスクリプト書いたことあるのか?でなければ、ヒントを与える程度では出来ないのでは。 仕事のシステム課題を、無料で丸投げすることになり、このコーナの許容範囲かどうか、割り切れない。システム業者に頼むべきだと思う。 ーー 質問の文章での疑問点、 (1)と(2)に同じキーで存在する行がもしあれば、望む完成形データはどうする。 質問文の>上記は見た目数字だが、数値や文字列が混じっている。 とはどういうこと? キー項目(J列とK列)の中でのことか?その他の列でのことだろう。後者なら、取り立てて言う必要なし、と思う。 寧ろ、キー列のデータの少数例ぐらい、挙げるべきかと思う。 ーー MSアクセスなどや、そのVBAなら、ファイルマッチング(照合)はよくある処理タイプとして、実例解説もWEBにある。特にVBAを使わない方法で。 Googleで「アクセス データマッチング」などで照会。一例は 2つのテーブルの共通フィールドを比較して一方にしかないデータを抽出する https://hamachan.info/access2019-hikaku/ ーー そちらを考えたらどうか。エクセル<ーー、ーー>アクセスのデータインポート・エクスポートは簡単にできるように、なっている。 エクセル関数では、複雑になりそうに思うし、できるのかどうか。 (1)旧くからある、処理方式では、別ブックの当該シート(A、Bとして)を、それぞれ同じキー列(J+K列結合)でソート。 (2)両者をマッチングのアルゴリムズで突合し、キーについて、A>B,A=B,A<Cの3タイプの処理に分けて処理する。