
vbaエクセルマクロ
RemoveDuplicatesについて
重複したものがあれば行を削除するというプログラムでRemoveDuplicatesを使ってマクロを組んでいます。
重複したものがないとわかっているときにRemoveDuplicatesマクロを起動せずに作成したデータと
RemoveDuplicatesマクロを起動させて作成したデータを
(見た目は全く同じもの)
ある仕組みに投入したところ、
両方ともうまく処理が実行できます。
しかし、それぞれ全く同じ場所のある一つのセルを手入力で変更して投入すると
起動せずに作成したものではうまく処理が実行になるのに、起動させて作成したほうではエラーになり処理が実行できません。
重複したものがあれば削除してね、というマクロなので、重複したものがないとき
RemoveDuplicatesを起動しても、しなくても、全く同じデータになると思っているのですが、何かが変わってしまうのでしょうか。
思い当たることありましたら何でもいいので教えてください。
No.1ベストアンサー
- 回答日時:
RemoveDuplicatesメソッドは、指定された範囲内で重複する値を検出し、それらを削除するために使用されます。
つまり、重複が存在しない場合、メソッドは何も行いません。ですから、起動する必要があるかどうかにかかわらず、同じデータになるはずです。しかしながら、あなたが述べたように、手入力で一つのセルを変更しただけでエラーが発生するのは、そのセルが何らかの理由でRemoveDuplicatesメソッドが影響を与える範囲内にあるためかもしれません。可能性があるのは以下の通りです。
RemoveDuplicatesメソッドが適用される範囲が変更された
RemoveDuplicatesメソッドは、範囲内で重複する値を検出するため、範囲を変更すると結果が変わる可能性があります。手入力で変更したセルが、メソッドが適用される範囲に含まれるようになった可能性があります。
データに関連する条件付き書式がある
データに関連する条件付き書式がある場合、手入力で変更したセルが条件付き書式に該当する可能性があります。条件付き書式は、特定の条件に応じてセルを色付けするなどの表示効果を与えます。しかし、この表示効果は、RemoveDuplicatesメソッドが処理するデータと干渉する可能性があります。
マクロで他のプロパティが変更された
RemoveDuplicatesメソッドを実行するマクロは、セルの値だけでなく、フォント、色、罫線などのセルのプロパティにも影響を与える可能性があります。手入力で変更したセルには、フォントや色が変更されている場合があります。このようなプロパティの変更は、RemoveDuplicatesメソッドが正しく動作しない原因になる可能性があります。
上記のような可能性があるため、手入力で変更したセルが、RemoveDuplicatesメソッドが処理する範囲に含まれないようにするか、手入力で変更する前にRemoveDuplicatesメソッドを実行することをお勧めします。また、RemoveDuplicatesメソッドが処理する範囲を明示的に指定することも重要です。
詳しい回答ありがとうございます_(._.)_
RemoveDuplicatesメソッドはマクロの最後に起動するようにしています。
その後は全体をコピー&ペーストしてendで終了です。
手入力で変更するセルは、ある仕組みに投入するときは文字列ではないといけないので、
もしかしてRemoveDuplicatesを起動すると
セル全体の表示形式などに何らかの影響を与えるのかな、と思ったりしました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
- Visual Basic(VBA) vbaエクセルマクロについて RemoveDuplicatesを使わずに、重複行を削除すらマクロを作 3 2023/03/02 22:03
- Visual Basic(VBA) RemoveDuplicatesメソッドについて教えてください。 シート1にシート2から値をもってく 1 2023/02/28 22:43
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) 【Excel】指定した文字列に該当する行を重複しないようにリスト 3 2022/03/30 12:27
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- Visual Basic(VBA) vbaマクロについて 次のようなマクロを組みたいです。 自分は初心者なので全くわかりません。 詳しく 8 2023/05/18 18:38
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mainメソッドのthrows節で設定...
-
エクセルVBAで、条件に一致する...
-
final修飾子を使っているのに、...
-
JSPで<SELECT>の中にDBから持っ...
-
ウィンドウを最前面にできません
-
DataGridViewでセルクリックイ...
-
boolean型のフィールドとゲッタ...
-
VB.netで、シリアル通信のタイ...
-
処理内容がほぼ同じメソッドの...
-
C#で右からnカラム目に文字を挿...
-
VBAでAccessからExcelのセルフ...
-
配列のメソッド
-
離れた列をvbaで数値で選択する...
-
ArrayListのgetメソッドが実行...
-
VB.NET2017 の IntelliSense に...
-
タグチメソッドと実験計画法の違い
-
VBA コピーが出来ません…!
-
【sendkeysメソッドが動かずに...
-
C# 演算 最大値 最小値 表現の仕方
-
C# 2つのフォルダの相対パスを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
【sendkeysメソッドが動かずに...
-
mainメソッドのthrows節で設定...
-
VBA コピーが出来ません…!
-
DataGridViewでセルクリックイ...
-
コマンドプロンプト実行後に画...
-
0歳児の指しゃぶりに関して
-
エクセルVBAにおけるON TIMEメ...
-
javascriptからjavaを呼び出したい
-
配列のメソッド
-
CALLされていないメソッドを見...
-
final修飾子を使っているのに、...
-
Labelコントロールに数字を代入...
-
VBPをダブルクリックするとたま...
-
ウィンドウを最前面にできません
-
処理内容がほぼ同じメソッドの...
-
Application.Wait の参照設定
-
C#.net Define文
-
C# 演算 最大値 最小値 表現の仕方
-
Excel VBA でExcelを終了したい...
おすすめ情報