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)
-
VBA RemoveDuplicatesが動かない
Excel(エクセル)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
6
【Excel VBA】指定行以降をクリアするには?
Visual Basic(VBA)
-
7
VBA RemoveDuplicatesで「アプリケーション定義またはオブジェクト定義のエラーです」
Visual Basic(VBA)
-
8
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
9
VBAをつかってクエリの情報を抽出するには??
Visual Basic(VBA)
-
10
コンボボックス内の文字サイズ変更
Excel(エクセル)
-
11
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
12
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
13
EXCEL VBAで、セルの文字列の前後に文字を入力する方法は?
その他(Microsoft Office)
-
14
エクセルで重複データ(行)を両方削除
Excel(エクセル)
-
15
エクセル重複削除で綺麗に削除されない( ~っ~)/
Excel(エクセル)
-
16
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
17
VBAで重複するデータがあれば1個だけ残して他の重複セルを"(空白)にしたいのですが
Excel(エクセル)
-
18
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
19
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
20
ExcelのVBAでエラー13が出てしまいます。(泣き)
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
final修飾子を使っているのに、...
-
Refreshメソッドの使い方
-
onClickで関数呼出し後に、結果...
-
エクセルVBAにおけるON TIMEメ...
-
マスターページからコンテンツ...
-
C# 演算 最大値 最小値 表現の仕方
-
(String args[])というメッソ...
-
boolean型のフィールドとゲッタ...
-
エクリプス アウトラインビュ...
-
『増加する』メソッド名は?
-
staticメソッドの長所短所
-
eclipse-Tomcatでのデバッグに...
-
drawStringで文字間隔の調整
-
javascriptからjavaを呼び出したい
-
コマンドプロンプト実行後に画...
-
DataGridViewでセルクリックイ...
-
「CA2202: オブジェクトを複数...
-
エクセルのマクロでプリンタを...
-
Excel VBA シェイプの原型のサ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
エクセルVBAにおけるON TIMEメ...
-
【sendkeysメソッドが動かずに...
-
コマンドプロンプト実行後に画...
-
onClickで関数呼出し後に、結果...
-
DataGridViewでセルクリックイ...
-
Labelコントロールに数字を代入...
-
ExcelのxlDialogInsertPictureで。
-
final修飾子を使っているのに、...
-
JSPで<SELECT>の中にDBから持っ...
-
VBPをダブルクリックするとたま...
-
Excel VBA でExcelを終了したい...
-
Refreshメソッドの使い方
-
ウィンドウを最前面にできません
-
javascriptからjavaを呼び出したい
-
VB.netで、シリアル通信のタイ...
-
mainメソッドのthrows節で設定...
-
VBAでSaveAs使用し、指定してい...
-
PDFファイルから別ウィンドウで...
-
Application.Wait の参照設定
おすすめ情報