• ベストアンサー

Excelファイルがマクロを含むか調べるには?

Excell2003で作っていた多量のExcelファイルを、Excel2010で動かす事が必要になってきました。 で、指定フォルダにある複数のExcelファイルが、マクロを含んでいるかどうかを調べたいのです。 加えて、マクロを含んだExcelファイルのファイル名をリストアップしたいのですが、 どの様にしたら良いでしょうか? 適切なマクロなりともご教授いただきたく、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • x-1919
  • ベストアンサー率52% (91/173)
回答No.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

Silmaril
質問者

お礼

有り難うございます。これで試してみます。

関連するQ&A