こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

Excell2003で作っていた多量のExcelファイルを、Excel2010で動かす事が必要になってきました。

で、指定フォルダにある複数のExcelファイルが、マクロを含んでいるかどうかを調べたいのです。
加えて、マクロを含んだExcelファイルのファイル名をリストアップしたいのですが、
どの様にしたら良いでしょうか?

適切なマクロなりともご教授いただきたく、よろしくお願いします。

投稿日時 - 2013-06-17 16:37:49

QNo.8137952

すぐに回答ほしいです

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

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

投稿日時 - 2013-06-18 23:42:38

お礼

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

投稿日時 - 2013-06-20 09:53:11

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問