[[20040826085208]] 『オートフィルタ』(popo) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『オートフィルタ』(popo)

 オートフィルタは一行一行しか対応してないのですか?今、A2とA3のセルを結合(以下A4とA5、A6とA7・・・・)しているのですが、A2には文字が入っていると認識されて、A3は空白のセルとなってしまうのです。A列には日付が入っていて、オートフィルタを使って分けたいと思っているのですが・・・


 オートフィルタは簡易なデータベース機能です。
データベースとセルの結合は非常に相性が悪いので、
併用しないような運用が必要です。
フィル多機能を使うなら、一行に完結したデータの集合でなければなりません。
セル結合したレイアウトが必要なら、一行一データのデータベースから
関数などで所定の位置へデータを抽出するようなつくりが必要です。
 
(簡易な回避手段として、一列追加して、A列の内容を一行一行に入力
してその追加した行でフィルタをかけるという方法はあります。
B列を追加して、A2:A3を結合しているのなら、A2の内容をB2、B3へそれぞれ入力)
(KAMIYA)

 他に方法はないですかね?
(popo)

 そのままのレイアウトを保ったままであれば、強引なマクロになります。
A列の最下端セルにでも=NOW()などの揮発性関数を入力して
おいてください。安定性、操作性、表示性に問題があります。
データの保持は保障しませんので、試す場合には元データは
自己責任で保存しておいてください。
 
  Private Sub Worksheet_Calculate()
  REM TEST_20040826
  Dim MyCtr
  Dim MyRow As Long
  Dim C As Range
      Application.EnableEvents = False
      On Error Resume Next
      If Me.AutoFilterMode Then
          With Me.AutoFilter
              MyCtr = WorksheetFunction.Substitute(.Filters(1).Criteria1, "=", "")
              If MyCtr = "" Then
                  Application.EnableEvents = True
                  Exit Sub
              End If
          End With
          Cells.AutoFilter
          MyRow = Range("B65536").End(xlUp).Row
          Range("A1:A" & MyRow).Copy
          Range("B1:B" & MyRow).Insert CopyOrigin:=True
          Application.CutCopyMode = False
          For Each C In Range("B2:B" & MyRow)
              C.MergeCells = False
              If C.Value = "" Then C.Value = C.Offset(-1, 0).Value
              If C.Value = MyCtr Then
                  C.EntireRow.Hidden = False
              Else
                  C.EntireRow.Hidden = True
              End If
          Next C
          Range("B1:B" & MyRow).Delete
          Cells.AutoFilter
      End If
      Application.EnableEvents = True
  End Sub
 
上記マクロは「似た表示」を「腕力」で何とかしているものと
ご了解ください。
なお、先にも書いたとおり、私はセル結合を含むシートをデータベースとして
使用することに反対の立場ですので、本来ならこのようなマクロを
公表すべきではないと思っています。したがって、使用法、手直しなど
このマクロについてはフォローはいたししかねますので、ご了承ください。
コードを見てわからない場合は使用をおやめください。
(常用するには不安定すぎてデータを壊す可能性があるため。)
マクロを使いこなせない場合はデータベースのほうを工夫すべきであると
いうのが私の結論です。
(KAMIYA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.