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

こんにちは。どうしてもできないのでお力をお貸し下さい。

(質問内容)
同じフォームのエクセルのワークシートで、毎日新しい数十件の物流情報が手元に届きます。私の仕事は、一日前に作ったワークシートにその日届いたばかりの新しいワークシートの情報をマージしてお客様へ転送しています。

毎日届くワークシートには前日までの古い物流情報も載って来ます。つまり、新しいワークシートをそのまま転送するのではなく、古いワークシートにマージして、新しいワークシートで内容に変更があった行と、全く新しい追加行のセルだけハイライトして、お客様に当日分の物流情報として分かるようにする必要があります。このワークシートのマージを手作業でやっているため、以下の手作業が発生しています。

1.新しいワークシートの全てのセルをコピーして前日のワークシートの最終行のすぐ後にペーストする。
2.製品番号でソートして同じ製品番号のものを上下で並べる。
3.上下の行をよく比べて、内容の変更のあったものについては、新しい行で古い行を上書きし、その行をハイライトする。全く新しい製品行が追加されている場合は、そのままその行をハイライトする。
4.最後に製品番号で重複するものを削除する。

という風にして、当日届いた情報を前日までのものに追加して、その内容で変更のあったものと、追加行をハイライトする訳です。

この作業をマクロを使って自動化できないでしょうか?少し複雑ですが、何卒宜しくお願いします。

A 回答 (13件中11~13件)

>こんにちは。

どうしてもできないのでお力をお貸し下さい。
>この作業をマクロを使って自動化できないでしょうか?

自動化はVBAでやるしかありませんが、どこまでやって、できないのはどこなのでしょう?
    • good
    • 0
この回答へのお礼

すみません、試行錯誤でEXCELに既についている機能を使ってシートのマージを試みたという意味で、マクロやプログラムはまだ一切組めていません。どうかアドバイスよろしくお願いします。

お礼日時:2005/02/12 05:24

使ったことがないのではっきりとは分かりませんが


次のフリーソフトが有効と思います。

「ベリファイエクセル」 製作者:野見山さん

参考URL:http://www.vector.co.jp/soft/win95/business/se23 …

この回答への補足

何度も試みましたが、どうしてもエラーが複数箇所出てしまいます。更に調査しています。

補足日時:2005/02/12 06:30
    • good
    • 0
この回答へのお礼

ありがとうございます。早速、ダウンロードして解凍し、使ってみました。使い方が悪いのか、まだうまく結果が出てきませんが、時間をかけてやってみます。もし、どうしてもうまくいかないようなら、また質問いたします。

お礼日時:2005/02/12 05:22

細かいコードはご勘弁を。



先ず、自動記録で大枠を作ってはいかがでしょうか。
その際、マウスを極力使わないように。
それから修正していけば良いかと思います。

注意点としては、
1.最終行の取得 これは65536行からのEnd(xlUp)が無難ですね。途中に空白があっても大丈夫。
2.製品番号以外のキーを第2順位で設定。
3.For Eachで製品番号を比較。一致したら列方向に比較ですね。更に一致の場合、色を着ける。上書きという考えより、削除が楽ですね。
4."3."の作業で色を着けた行を配列として取って置く、あるいはどこかに書き出しちゃうのが簡単かな。

実際には「3.」以降の更新行に対する作業を別物として分けた方がスッキリするんでしょうね。
これらの内容で具体的に分からない部分を更に聞いて頂けると答えやすかったりします^^;
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。少し時間をかけてコードを考えて行きたいと思います。プログラミングは初心者なのでちょっと自信がないのですが・・・。

お礼日時:2005/02/12 05:20

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