- ベストアンサー
Excelファイルがマクロを含むか調べるには?
Excell2003で作っていた多量のExcelファイルを、Excel2010で動かす事が必要になってきました。 で、指定フォルダにある複数のExcelファイルが、マクロを含んでいるかどうかを調べたいのです。 加えて、マクロを含んだExcelファイルのファイル名をリストアップしたいのですが、 どの様にしたら良いでしょうか? 適切なマクロなりともご教授いただきたく、よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Excel 2007 または 2010 から実行するならば以下のような感じか。 調べたい対象ファイルの Workbook オブジェクトの HasVBProject プロパティが True なら VBA コードを含んでいるということになる。 Sub hoge() ' VBA を含むファイルのファイル名出力行番号 Dim rowIdx As Long rowIdx = 1 ' これから開くファイルの VBA を無効にする Application.AutomationSecurity = msoAutomationSecurityForceDisable Dim fso As Scripting.FileSystemObject Set fso = New Scripting.FileSystemObject Dim bk As Workbook Dim f As Scripting.File For Each f In fso.GetFolder("D:\test\").Files ' xls ファイルを開いていく If fso.GetExtensionName(f.Name) = "xls" Then Set bk = Workbooks.Open(f.Path) ' VBA を含んでいればファイル名を書き出す If bk.HasVBProject Then ThisWorkbook.Worksheets(1).Cells(rowIdx, 1).Value = bk.Name rowIdx = rowIdx + 1 End If bk.Close End If Next ' VBA に対するセキュリティを元に戻す Application.AutomationSecurity = msoAutomationSecurityLow End Sub
お礼
有り難うございます。これで試してみます。