【Excel】オートフィルタの位置がずれる

会社で複数のパソコンを使っていると、Excel2010とExcel2003が混在していることがあると思います。そのような場合、Excel2010で保存したxlsファイルをExcel2003で開くと、オートフィルタの位置がずれていることがあります。

現象について詳細は、下記のマイクロソフトのページをご覧ください。
意図しない位置にフィルターが表示される

回避策として、xlsx形式に変更するか、またはオートフィルタを掛け直す、などが出ています。xlsx形式にした場合、Excel2003でファイルを開くには互換機能パックを入れなければなりません。互換機能パックを使いたくない、または、いちいちオートフィルタをはずすのが面倒な場合は、下記のマクロを使用することで自動的にオートフィルタを掛け直すことができます。


Public Sub Workbook_Open()

  Dim sh As Worksheet
  Set sh = ThisWorkbook.Sheets("Sheet1") '対象のシートを指定
  sh.Activate 'シートを選択

  'すでにオートフィルタがかかっていれば一旦解除する
  If sh.AutoFilterMode Then
    sh.Cells.Select '全てのセルを選択
    Selection.AutoFilter 'オートフィルタを解除
  End If

  'シートのレイアウトに合わせて、任意の位置にオートフィルタをかける
  sh.Range("A1").AutoFilter

  sh.Range("A2").Select '任意のセルを選択
  
End Sub

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA