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も見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
VBAでダブルコーテーション入りの数式をセルにセットしたい
Visual Basic(VBA)
-
EXCEL VBAで、セルの文字列の前後に文字を入力する方法は?
その他(Microsoft Office)
-
-
4
VBA RemoveDuplicatesが動かない
Excel(エクセル)
-
5
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
6
【Excel VBA】指定行以降をクリアするには?
Visual Basic(VBA)
-
7
VBA RemoveDuplicatesで「アプリケーション定義またはオブジェクト定義のエラーです」
Visual Basic(VBA)
-
8
vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使
Visual Basic(VBA)
-
9
VBAをつかってクエリの情報を抽出するには??
Visual Basic(VBA)
-
10
コンボボックス内の文字サイズ変更
Excel(エクセル)
-
11
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
12
VBAにてメッセージボックスを最前面に表示させる
その他(プログラミング・Web制作)
-
13
エクセルのセル内に全角数字を入力したいのにエンターを押すと自動で半角になってしまいます。
Excel(エクセル)
-
14
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
15
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
16
メッセージボックスを前面に表示させるには?
Visual Basic(VBA)
-
17
エクセル重複削除で綺麗に削除されない( ~っ~)/
Excel(エクセル)
-
18
配列でデータが入っている要素を求める方法
Visual Basic(VBA)
-
19
エクセルで重複データ(行)を両方削除
Excel(エクセル)
-
20
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
DataGridViewでセルクリックイ...
-
コマンドプロンプト実行後に画...
-
【sendkeysメソッドが動かずに...
-
オートシェイプの位置がずれる...
-
AdapterView<?> parent この部...
-
VB.NET デリゲートへのコールバ...
-
サーブレット DBにある生年月...
-
Excel VBAにて
-
掲示板で、テキストフィールド...
-
boolean型のフィールドとゲッタ...
-
エクセルVBAにおけるON TIMEメ...
-
struts使用時のメソッド
-
VB.netで、シリアル通信のタイ...
-
オーバーロードの「あいまい」...
-
シンボルを解決できません。 ...
-
canvasに描画したものを全て削...
-
VB.NET/256色でのBMPファイル保存
-
タブコントロールの問題 (VB)
-
計算プログラムでの平方根の求め方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
Labelコントロールに数字を代入...
-
final修飾子を使っているのに、...
-
エクセルVBAにおけるON TIMEメ...
-
コマンドプロンプト実行後に画...
-
mainメソッドのthrows節で設定...
-
DataGridViewでセルクリックイ...
-
javascriptからjavaを呼び出したい
-
VBPをダブルクリックするとたま...
-
onClickで関数呼出し後に、結果...
-
ExcelのxlDialogInsertPictureで。
-
Refreshメソッドの使い方
-
JSPで<SELECT>の中にDBから持っ...
-
【sendkeysメソッドが動かずに...
-
ウィンドウを最前面にできません
-
(String args[])というメッソ...
-
C# 演算 最大値 最小値 表現の仕方
-
Excel VBA シェイプの原型のサ...
-
VB.netで、シリアル通信のタイ...
-
boolean型のフィールドとゲッタ...
おすすめ情報