ShowAllDataメソッドを使っていますか?
ShowAllDataメソッドは、フィルターモードを解除し隠れているすべてのセルを表示するメソッドです。
今回は、ShowAllData メソッドでエラーが出たときの対処方法について徹底的に説明します。
ShowAllData のエラー原因と対処方法
ShowAllDataメソッドで考えられるエラー原因
ShowAllDattaメソッドは、フィルターモードで表が折り畳まれているときに、フィルターモードを解除してすべてのセルを表示するメソッドです。
ShowAllDataメソッドで考えられるエラー表示は以下のものです。
- 実行時エラー’1004’
- 実行時エラー’9’
それぞれについて説明していきます。
エラー対処サンプルコードは後半に紹介します。
実行時エラー’1004’ ShowAllDataメソッドが失敗しました。
実行時エラー’1004’の原因は、以下のことが挙げられます。
- フィルターモードが解除されている
- そもそもフィルターが設置されていない
フィルターモードが解除されている
ShowAllDattaメソッドは、フィルターモードで表が折り畳まれているときに、フィルターモードを解除してすべてのセルを表示するメソッドです。
したがって、フィルターモードが解除されているときにShowAllDataを実行するとエラー’1004’になってしまいます。
対処方法は、
- フィルターモードが実行されている状態でShowAllDataを使用する
- Ifステートメントでフィルターモードの実行の有無を判断してからShowAllDataを実行する
ということが挙げられます。
Ifステートメント を使ってフィルターモードの有無を判断するサンプルコードは、後半に紹介しています。
そもそもフィルターが設置されていない
「フィルターが設定されている状態」とは、以下のように逆三角形のもの(フィルター)が表示されている状態のことを指します。
これが表示されない状態は当然「フィルターが設置されていない状態」です。
フィルターが設置されていない状態のときにShowAllDataを実行すると、エラー’1004’になってしまいます。
対処方法は、フィルターが設置されている状態にするということが挙げられます。
実行時エラー’9’ インデックスが有効範囲にありません。
実行時エラー’9’の原因は、ShowAllDataを使う対象の物がないことです。
対象の物が無いとは、指定したワークシートが存在しないことが挙げられます。
対処方法は、ShowAllDataを使う対象の物(ワークシート)が存在するかを確認することが挙げられます。
ShowAllDataメソッドのエラー対処サンプルコード
ShowAllDataのエラー対処サンプルコードを紹介します。
Sub フィルターモード解除()
If ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
End If
End Sub
ShowAllDataメソッドは、
WorkSheetオブジェクト.ShowAllData
と記述して使用します。
まず、2行目の「If ActiveSheet.FilterMode Then」で、フィルターモードが解除されていないかを確認します。
もし、フィルターモードが実行されていれば、「ActiveSheet.ShowAllData」を実行し、フィルターモードを解除します。
【まとめ】ShowAllData のエラー原因と対処方法方法
今回は、ShowAllData のエラー原因と対処方法について解説しました!
ShowAllDataのエラー原因は、
- フィルターモードが解除されている
- そもそもフィルターが設置されていない
- 対象のシートが無い
ということが挙げられます。
対処するには、If ActiveSheet.FilterMode Thenのように、Ifステートメントでフィルターモードの有無を判断する方法がおすすめです。
ShowAllDataの対処方法は簡単なので、ぜひ試してみてくださいね!
コメント