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も見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
VBAで重複するデータがあれば1個だけ残して他の重複セルを"(空白)にしたいのですが
Excel(エクセル)
-
VBA RemoveDuplicatesで「アプリケーション定義またはオブジェクト定義のエラーです」
Visual Basic(VBA)
-
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
-
4
【Excel VBA】指定行以降をクリアするには?
Visual Basic(VBA)
-
5
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
6
vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使
Visual Basic(VBA)
-
7
VBAでダブルコーテーション入りの数式をセルにセットしたい
Visual Basic(VBA)
-
8
Worksheets メソッドは失敗しました。のエラー処理のやり方
Visual Basic(VBA)
-
9
Excelの条件付き書式設定の太い罫線
Excel(エクセル)
-
10
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
11
VBAをつかってクエリの情報を抽出するには??
Visual Basic(VBA)
-
12
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
13
コンボボックス内の文字サイズ変更
Excel(エクセル)
-
14
VBAにてメッセージボックスを最前面に表示させる
その他(プログラミング・Web制作)
-
15
エクセルのセル内に全角数字を入力したいのにエンターを押すと自動で半角になってしまいます。
Excel(エクセル)
-
16
EXCEL VBAで、セルの文字列の前後に文字を入力する方法は?
その他(Microsoft Office)
-
17
メッセージボックスを前面に表示させるには?
Visual Basic(VBA)
-
18
マクロ 特定のセル値のみクリアする
Visual Basic(VBA)
-
19
エクセル重複削除で綺麗に削除されない( ~っ~)/
Excel(エクセル)
-
20
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
javascriptからjavaを呼び出したい
-
VBPをダブルクリックするとたま...
-
JSPで<SELECT>の中にDBから持っ...
-
エクセルVBAにおけるON TIMEメ...
-
Refreshメソッドの使い方
-
final修飾子を使っているのに、...
-
Application.Wait の参照設定
-
drawStringで文字間隔の調整
-
onClickで関数呼出し後に、結果...
-
Labelコントロールに数字を代入...
-
配列のメソッド
-
Javaはmainメソッドからじゃな...
-
タブコントロールの問題 (VB)
-
[VBA]GetSaveAsFilenameメソッ...
-
【sendkeysメソッドが動かずに...
-
worksheets & rows メソッドは...
-
エクセルのマクロでプリンタを...
-
VBAでコピーコマンドを実行する...
-
javaの中でaddElementは何ですか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
mainメソッドのthrows節で設定...
-
final修飾子を使っているのに、...
-
Labelコントロールに数字を代入...
-
onClickで関数呼出し後に、結果...
-
DataGridViewでセルクリックイ...
-
JSPで<SELECT>の中にDBから持っ...
-
コマンドプロンプト実行後に画...
-
Refreshメソッドの使い方
-
エクセルVBAにおけるON TIMEメ...
-
boolean型のフィールドとゲッタ...
-
javascriptからjavaを呼び出したい
-
VBPをダブルクリックするとたま...
-
配列のメソッド
-
【sendkeysメソッドが動かずに...
-
Excel VBA でExcelを終了したい...
-
VB.netで、シリアル通信のタイ...
-
worksheets & rows メソッドは...
-
Application.Wait の参照設定
-
(String args[])というメッソ...
おすすめ情報