- ベストアンサー
【Excel2003】オートフィルタの下向き三角がおかしいです
オートフィルタをかけると出る、セル右下位置の「下向き三角」について質問です。 特定のファイルのみ、オートフィルタを解除(データ-フィルタ-オートフィルタでチェックをはずす)しても下向き三角が消えません。 チェックをはずした後は、下向き三角をクリックしても無反応です。 再度オートフィルタをかけると、普通に反応して使えるようになります。 オートフィルタを解除したら消えるように、要するにまっとうな表示にさせるにはどうしたらいいでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
確信があるわけではありませんが、特定のファイルだけそのようになるのは、そのファイルが壊れている可能性もありそうです。 全データをコピーして、新しいファイルに移し替えてみてはどうでしょうか。
その他の回答 (1)
- end-u
- ベストアンサー率79% (496/625)
そのシートにシェイプを追加して名前を確認してみてください。 例えば四角形を追加した場合、『四角形 XXXXX』となり、XXXXXの部分はシートごとのシェイプの作成連番になります。 その連番が65536以上の場合、シェイプ連番が大きくなりすぎた事による不具合の可能性があります。 オートフィルタの▼(ドロップダウン)もシェイプの一種で、『Excel2002以前』では オートフィルタのOn/Offの繰り返しの度に、ドロップダウンの作成削除を繰り返す事になります。 そのため広範囲のオートフィルタOn/Off繰り返しは、シェイプの連番加算が早くなります。 困った事に、オートフィルタOffの時、ドロップダウンの連番から65536を引いた番号を持つシェイプが 運悪くシート上に存在した場合、ドロップダウンが削除される替わりにそのシェイプが削除されます。 残ったドロップダウンは、オートフィルタ機能が無く、手動で選択削除ができません。 尤も、2002以前のオートフィルタの仕様なので、そのBookを前バージョンで操作した事がなければ該当しないかもしれません。 対処方法として、 新規シートを追加して、旧シート全体をコピーし、新シートに貼り付けすれば、ドロップダウン以外をコピーできます。 他シートから旧シートを参照している関数などがあった場合は、[置換]などで修正する必要があります。 参考までに、状況を再現するマクロを載せておきます。(ちょっと時間がかかります) Sub test2000() 'xl2000用 Dim i As Long Dim s As Shape Application.ScreenUpdating = False With Sheets.Add .Buttons.Add 100, 30, 80, 20 .Buttons.Add 100, 60, 80, 20 With .Range("A1").Resize(, 254) .Value = 1 For i = 1 To 258 'fix((65536-3)/254) .AutoFilter .AutoFilter Next i End With .Range("G1:IT1").ClearContents .Range("A1").AutoFilter .Buttons.Add 200, 30, 80, 20 i = 1 For Each s In .Shapes i = i + 1 .Cells(i, 1).Value = s.Name Next End With Application.ScreenUpdating = True End Sub マクロを実行するとシートが追加され、いくつかのボタンとオートフィルタが設定されます。 その後、手動でオートフィルタを解除すると再現できます。 一応、2003でも似たような現象を起こせない事もないです。(こちらはもっと時間がかかります) Sub test2003() 'xl2003用 Dim s As Shape Dim i As Long Application.ScreenUpdating = False With Sheets.Add .Buttons.Add 100, 30, 80, 20 .Buttons.Add 100, 60, 80, 20 With .Lines.Add(10, 10, 20, 10) For i = 1 To 65531 .Duplicate.Delete Next i .Delete End With With .Range("A1:F1") .Value = 1 .AutoFilter End With .Buttons.Add 200, 30, 80, 20 i = 1 For Each s In .Shapes i = i + 1 .Cells(i, 1).Value = s.Name Next s End With Application.ScreenUpdating = True End Sub 2003からはオートフィルタのOn/Offはドロップダウンの表示/非表示に変わりましたので シェイプ連番の加算度合はちょっと遅くなり、今回のような不具合が起きる確率は低いです。
お礼
ご回答ありがとうございます。 こんな不具合もあったのですね。勉強になります。 該当ファイルで確認しましたところ、連番の番号は722でした。 今回の場合は、別の要因ということでしょうか?
お礼
ありがとうございます。 やってみます。