[[20230719171608]] 『モジュールの削除が出来ない』(エー太) ページの最後に飛ぶ

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

 

『モジュールの削除が出来ない』(エー太)

フォルダ内のサブフォルダ内も含めたすべてのファイルのモジュールを削除したいのですが、
エラーが出てしまいます。どう改善すればよいでしょうか?

 Sub TEST1()

    Dim A
    Dim i As Long
    A = ThisWorkbook.Path & "\test"

    i = 0
    Call TEST2(A, i)

 End Sub
 Sub TEST2(A, i)

    Dim FSO, wb As Workbook
    Set FSO = CreateObject("Scripting.FileSystemObject")
    With ActiveSheet

        Dim B
        'フォルダ内のファイルをループ
        For Each B In FSO.GetFolder(A).Files
            i = i + 1
            .Cells(i, 1) = B 'ファイルパス

            If .Cells(i, 1) Like "*23年度*" Then 
            Set wb = Workbooks.Open(.Cells(i, 1))

             On Error GoTo ErrLabel 'エラーであれば保存せず閉じる

                        With wb.VBProject.VBComponents
                            .Remove .Item("Module1")   ←ここでインデックスが有効ではないというエラー
                        End With

                        wb.Close True
 ErrLabel:
             wb.Close False
            End If
        Next

        Dim C
        'フォルダ内のサブフォルダをループ
        For Each C In FSO.GetFolder(A).SubFolders
            Call TEST2(C, i)
        Next

  End With

 End Sub

< 使用 Excel:Excel2019、使用 OS:Windows11 >


"何"を対象にしているのかによりますが、発想を変えて【マクロ付きブック】なら開いて【通常(マクロなし)】のブックとして別途保存してはどうでしょうか?

(もこな2 ) 2023/07/19(水) 18:00:16


>もこな2さん
アドバイスありがとうございます。フォルダ内のファイルのユーザーフォームは削除したくないので
標準モジュールのみを削除したいです。

(エー太) 2023/07/19(水) 18:23:16


なるほど。ならば【モジュール名を指定】するのではなく、そのプロジェクトの全モジュールを巡回して【標準モジュール】なら削除すればよいのでは?

 【参考】
http://officetanaka.net/excel/vba/vbe/07.htm

(もこな2 ) 2023/07/19(水) 18:33:36


もこなさん、度々ありがとうございます。

なんとか解決出来ましたが、オートメーションエラーになってしまいましたので
処理を分けようと思います。アドバイスしていただきありがとうございます。

(エー太) 2023/07/19(水) 19:14:43


コメント返信:

[ 一覧(最新更新順) ]


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