質問: excel - マクロ・シート間の照合 すみません、どなたか教えてください。 「シートa」と「シートb」とで、商品リストのデータを照合したいのです。 「シートa」を元に、ある一部の商品リストに変更をかけたものが「シートb」になります。 【例】 商品番号 商品名 001 orange abc 002 orange bbb 003 apple big 004 banana 5 チェックする点は、入力されている文字列、大文字、小文字、スーペース等が変更になったかどうかチェックします。 変更は何度も入るため「シートb」を元に「シートc」をチェックする→「シートc」を元に「シートd」をチェックする、という流れになっていきます。 今までは以下の関数を使ってチェックしていましたが、この関数だと毎回書き変える上に、a3以降のセルにコピーする作業が発生するので手間がかかってなりません。 ●照合用のシートz!a2=if('シートa'!a2&'シートb'!a2="","",exact('シートa'!a2,'シートb'!a2)) どなたかよい方法を教えてください。よろしくお願いします。 できれば、ボタンを押してマクロ実行、というのが理想なのですが...。
回答: 作ってみました。 現在開いているシートと、ひとつ前(左側)のシートを比較し、 一致していないセルの背景を赤くします。 ----------------------------- sub シート比較() dim i, j, endofrow, endofcol as integer set ws2 = activesheet.previous endofrow = activesheet.usedrange.rows.count endofcol = activesheet.usedrange.columns.count for i = 1 to endofcol for j = 1 to endofrow if activesheet.cells(j, i).value <> ws2.cells(j, i).value then activesheet.cells(j, i).interior.colorindex = 3 end if next next end sub ----------------------------- 比較対象は常に1つ前のシートになりますので、 2つ前のシートと比較したい場合などは、シートの順番を並べ替えて対応 してください。 不具合があれば、補足にご記入ください。 お役に立てば良いのですが・・・。