プロが教えるわが家の防犯対策術!

【マクロ】オートフィルタークリアのマクロが保存されている別のエクセルファイルのオートトフィルのしぼりをクリアーしたい


タイトルの件、以下のとおりマクロを作りたいと考えています。
ご存じの方、教授の程、宜しくお願い致します。

【やりたい事】
・エクセルの複数シートに設定されているオートフィルターの
しぼりを、マクロで一発で、クリアしたい。

・マクロ実行のエクセルファイルと、オートフィルターが設置されている
エクセルのファイル【ブック】は別。

・2つのファイルを同じエクセルブック内で開けば、マクロは有効ですが
別ファイル【ブックとして】開くので、有効にならない。
⇒パワーポイントとエクセルを開いたら、同じブック内ではなく
⇒別ファイルとして、開きます。これと同じ開き方です。
⇒エクセルの表示⇒整列⇒上下に並べるをやっても、並ばないです



【オートフィルターが設定されているエクセルファイルの場所】

C:\Users\2020\Desktop\マクロ\オートフィルタークリア_b.xlsx



【全シートをクリアするコード】
Sub 全シートをクリアするコード()

Dim WS As Worksheet

For Each WS In Worksheets
If WS.FilterMode Then
WS.ShowAllData
End If
Next
MsgBox ("全シートのフィルタをクリアしました。")

End Sub

A 回答 (2件)

こんな感じで行けそう。

未確認。

Sub 全シートをクリアするコード()

Dim WB As Workbook
Dim WS As Worksheet
Dim bk As String

bk = "C:\Users\2020\Desktop\マクロ\オートフィルタークリア_b.xlsx"
Set WB = GetObject(bk)

For Each WS In WB.Worksheets
If WS.FilterMode Then
WS.ShowAllData
End If
Next
Set WB =Nothing

MsgBox ("全シートのフィルタをクリアしました。")

End Sub
    • good
    • 0
この回答へのお礼

上記コードを実行したら、別ブックのオートフィルターを
クリアする事が出来ました。

ありがとうございます。

お礼日時:2022/12/24 20:49

こんにちは。



別プロセスで開いたExcelファイルを、他のExcelのVBAから操作するのは
普通には無理だと思いますので、同じプロセスで開くか、同じマクロを
もう1つ用意した方が早いかと思います。

詳しくはないので検索した記事ですが、別プロセスのExcelを閉じるのも
APIを使わないとできない様です。

●VBA 【コピペで使える!】別プロセスの特定Excelを一括終了する方法
https://mmm-program.com/vba-other-excel-close/

記事の中の、Close_Other_Excel(targetBook)のコードを変更すれば可能
かもしれませんが、私には手に負えませんので。。。
    • good
    • 0
この回答へのお礼

別ブックのマクロによる、指示は難しいですね。お返事ありがとうございます。

お礼日時:2022/12/24 20:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!