Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


37295 / 76732 ←次へ | 前へ→

【44610】Re:オートフィルターを元に戻す
発言  けんけん  - 06/11/24(金) 10:43 -

引用なし
パスワード
   飛ばない豚さん

ご返信ありがとうございます。

>ひとつ確認です。
>フィルタの状態を保持したまま解除する事は
>> If Sheet1.AutoFilterMode = True Then
>>   Sheet1.AutoFilterMode = False
>>   inAF = 1
>> End If
>これで出来ましたか?

上記のコードでフィルタの状態は解除できました!
で、ヘルプをその後探してみたところ、
フィルタを再設定する、といったようなコードがAutoFilter オブジェクトに
記載されていました。
それを活用して、以下とする事で、再設定することが出来ました。

〜〜〜以下コード〜〜〜

  Dim inAF As Integer
  Dim vaAF() As Variant
  Dim stAFRange As String

  With Thisworkbook.ActiveSheet
    '■■■オートフィルターの解除&退避■■■
    If .FilterMode = True Then
      inAF = 1
      stAFRange = .AutoFilter.Range.Address
      With .AutoFilter.Filters
        ReDim vaAF(1 To .Count, 1 To 3)
        For i = 1 To .Count
          With .Item(i)
            If .On Then
              vaAF(i, 1) = .Criteria1
              If .Operator Then
                vaAF(i, 2) = .Operator
                vaAF(i, 3) = .Criteria2
              End If
            End If
          End With
        Next
      End With
      .AutoFilterMode = False
    End If

    (中略)

    '■■■オートフィルターを戻す■■■
    If inAF = 1 Then
      For i = 1 To UBound(vaAF(), 1)
        If Not IsEmpty(vaAF(i, 1)) Then
          If vaAF(i, 2) Then
            .Range(stAFRange).AutoFilter _
              Field:=i, _
              Criteria1:=vaAF(i, 1), _
              Operator:=vaAF(i, 2), _
              Criteria2:=vaAF(i, 3)
          Else
            .Range(stAFRange).AutoFilter _
              Field:=i, _
              Criteria1:=vaAF(i, 1)
          End If
        End If
      Next
    End If
  End With
1 hits

【44589】オートフィルターを元に戻す けんけん 06/11/22(水) 17:39 質問
【44591】Re:オートフィルターを元に戻す 飛ばない豚 06/11/22(水) 18:33 回答
【44592】Re:オートフィルターを元に戻す けんけん 06/11/22(水) 18:59 質問
【44609】Re:オートフィルターを元に戻す 飛ばない豚 06/11/24(金) 10:21 発言
【44610】Re:オートフィルターを元に戻す けんけん 06/11/24(金) 10:43 発言

37295 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free