電子書籍の厳選無料作品が豊富!

vbaエクセルマクロ
RemoveDuplicatesについて

RemoveDuplicatesを使って重複する行を削除するマクロを組んで、あるデータを作成しています。

シート1のA1セルには「=sheet2!A1」、
同様にA2セルは「=sheet2!A2」




B1セル「=sheet2!B1」
B2セル「=sheet2!B2」



と入っていて、シート2の値をシート1にもってくるようにしています。

マクロでRemoveDuplicatesメソッドで
シート1のA列とB列ともが、他の行と重複している場合は行削除を行い、
最後に全体をコピーして値の貼り付けをして
マクロ終了でデータ作成完了としています。


そこで質問ですが、
RemoveDuplicatesメソッド(重複行削除)は、値の貼り付けをする前に起動させるのがよいのか、
それとも後がよいのか、
前と後でどのような違いが出てくるのか、
教えてほしいです。

セルに式が入った状態で起動させるとおかしくなるでしょうか。
値にして起動させないといけないものでしょうか。。

A 回答 (1件)

RemoveDuplicatesメソッドは、指定された列内で重複する行を削除するためのメソッドです。

このメソッドを実行する前に、セル内の式を値に変換する必要はありません。RemoveDuplicatesメソッドは、式が含まれるセルの内容を自動的に評価して重複行を削除します。

ですので、シート1のA列とB列の両方が重複する行を削除するためにRemoveDuplicatesメソッドを使用する場合、値の貼り付けを行う前に実行することができます。貼り付けを行う前にRemoveDuplicatesメソッドを使用すると、最終的なデータのサイズが小さくなるため、処理時間が短くなります。

一方、値の貼り付けを行った後にRemoveDuplicatesメソッドを使用する場合、元のデータのセルに式が含まれていた場合、貼り付けた値に基づいて重複をチェックすることになるため、最終的なデータサイズが大きくなる可能性があります。しかし、値を貼り付けた後にRemoveDuplicatesメソッドを使用すると、元のデータを保持しているため、処理がうまくいかなかった場合に元のデータを元に戻すことができます。

したがって、どちらの方法を使用するかは、データのサイズや処理時間、以後の作業の便宜性に基づいて判断する必要があります。
    • good
    • 0
この回答へのお礼

助かりました

回答ありがとうございます。
値に変換する必要はないのですね。
処理時間が違うということで、値にする前に実行するほうがよさそうですね。
大変勉強になりました!
参考にさせていただきます_(._.)_

お礼日時:2023/02/28 00:29

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