【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?

Excel2021 でVBAを使っています。
シートを保護した状態で下記のようなRemoveDuplicatesで重複を削除しようとすると
「アプリケーション定義またはオブジェクト定義のエラーです」
というエラーが出ます。シートの保護を解除するとエラーは出ません。

しかしIV列からJB列までの列のロックの部分にはチェックをしていないので不思議に思っています。
なぜエラーが起きているのかご教示お願いいたします。

Sub test()
ActiveSheet.Range("IV:JB").RemoveDuplicates Columns:=Array(1, 3, 4, 5)
End Sub

A 回答 (1件)

こんにちは


専門家でないので私なりの推測ですが、、(そんなの意味ないよw)
RemoveDuplicatesメソッドはフィルタ機能(メソッド)を流用?(一部?)しているのではないかと思います。
フィルタはシートオブジェクトに関係しており、レンジオブジェクトより
上流オブジェクトの影響を受けるのではないかと言う想像です。
専門用語が判れば良いのですが、何分素人なので笑ってください。

回避はお解りと思いますが、保護をVBAで設定すれば良いと思います。
UserInterfaceOnly:=True

全く違うかも、と思いますが、回避方法はOKだと思います。
    • good
    • 1
この回答へのお礼

ありがとうございます、一応前後にUnmerge,Mergeを入れて仮対応をしているのですが原因がわからないのが気持ち悪くて・・。

お礼日時:2021/12/23 11:43

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報